Jump to content

RotationService - Version 1.7.4


Guest qbus

Recommended Posts

Hello,

Some time ago PaSSoA released new version of his ROM.
He added option to change the today plugin from Manila to rlToday when screen rotation occures.
Unfortunatly he used MortScript which was working in a loop and checking the rotation state every second.
This was causing instant 3% CPU utilization.

That was something I didn't like so I start to wonder if it is possible to create events-based application.
I start to write and voila...

My application is running in the background, using 0% (that's why it's better then MortScript) of CPU while sleeping.
Application needs .NET Compact 2.0 framework or later to work.

Features of RotationService:
Configurable list of plugins to show on homescreen in portrait/landscape modes

Ability to start and/or kill processes when switching to portrait/landscape mode /also with special TodayProcess mode - see changelog/

Two modes of controling Omnia's autorotate funcion (using accelerometer):

RotationService automatically enables autorotate feature only for applications on whitelist (all others have autorotate disabled)
RotationService automatically disables autorotate feature for applications on blacklist (all others have autorotate enabled)
Support for irritating Manila's behaviour of auto screen rotation to portrait (there are still some issues but I think the best way to resolve them is to modify Manila not to rotate the screen)

Fixed angles for chosen applications

Each angle (0, 90, 180, 270) can have it's own settings (180 angle is not working on i900 but should work on i910)
Changelog:

1.7.4:
- Bugfixes

1.7.3:
- Bugfixes

1.7.2:
- Bugfixes

1.7.0:
- Posibility to split orientation into angles (for example different rules for 90 and 270 degrees). Just create new element directly under RotationService and call it <Portrait180> or <Landscape270>. The one without numbers will become rules for 0 and/or 90 angles.
- Removed TodayProcess attribute from ProcessesToKill list. Now you can define processes which will be treated like today screen in separate section called TodayProcesses. When such process will be in foreground and rotation occures it will be automatically killed and full rotation will be made (like on Today Screen). This is usefull for applications like iFonz.

1.6.0:
- New way of process killing when switching orientation. I hope it is able to kill Manila process before it rotates the screen in all circumstances now - if not please give me a report in this thread.
- New attribute for Process element in ProcessesToKill configuration collection "TodayProcess". If the process is in foreground and rotation occures it will be treated like today screen and all rotation events will occure (useful for applications like iFonz).
- All attributes in config file use CamelHumps notation (with uppercased first letter - angle is now Angle and orientationOnly changed to OrientationOnly).
- Config file validation with error descriptions in message box while loading service.

1.5.0:
- New parameter in Fixed Angle Apps section called "orientationOnly". It makes service to allow application to work in two angles (90 and 270) in landscape mode
- "Please wait..." info screen will not appear if no changes to today plugins/processes will be made when switching from one orientation to the other (for users who use RotationService only for black/whitelisting auto rotation applications)

1.4.0:
- ability to disable/enable internal Date plugin on today screen
- config file is now renamed to RotationService.xml (was conf.xml) and the whole application can be safely put in \Windows folder (for ROM cookers)
- ability to start chosen applications after rotation event

1.3.1:
- application tries to be more user-friendly for Samsung Online Widget (however it is still not not advisable to use them together)

1.2.2:
- some small fixes
- support for AppToDate

1.2.1:
- processes/exec names are now case-insensitive;
- changing plugins on today screen application now disables all of them and later enables only chosen ones (before it was disabling only plugins defined in config file in opposite section)

1.2.0:
- fix for NullReferenceException error when using wkTask

1.1.0:
- ability to define processes which will have fixed angle defined in config file (and disabled auto rotation). Check the config file how to define them (it's very simple).

Everything is configured by RotationService.xml file which is has comments with descriptions of each section.

To exit application just run it from Programs Menu - small Control Panel for Rotation Service will appear.
To reread the config file you need to choose Reload from Rotation Service Control Panel.

Application automaticaly installs and put a shortcut to StartUp and Programs menus.
After installation you need to edit RotationService.xml file in application directory.


I'll stop implementing new features for next few days/weeks so please do not post them for a while (only bugs reports).
Lots of new ones were implemented (and not deeply tested) for last few days so I want to focus on bugfixing now.


HOW TO CHECK EXECUTABLE NAME FOR APPLICATION:
- Download FdcTaskmanager from this site: http://www.dotfred.net/TaskMgr.htm
- Install it
- Launch
- You will see lists of processes running on your Omnia
- Choose the record which you think can be the program you are looking for
- Choose Activate from Context Menu
- If the program's window appear you know the process name B) Edited by qbus
Link to comment
Share on other sites

I've just updated the attachment.

Application has now config file (Config.xml).

The structure of it is very simple:

It has two main section - Portrait and Landscape which contains elements specific for orientation.

There is important only one thing:

Names of processes are defined as substrings of FULL PATH to EXE file of process.

Link to comment
Share on other sites

Guest Michael122w

Love your work, qbus! B)

It is an interesting set up that you have going - but seems to be slowing my omnia down a little - could be the 2 MB of memory that it is taking up. But not a major prob.

On rotation, there is a significant lag every time I change direction - regardless of the screen I am in . It would be nice if it didn't kick in when the homescreen wasn't active.

Edited by Michael122w
Link to comment
Share on other sites

Love your work, qbus! B)

It is an interesting set up that you have going - but seems to be slowing my omnia down a little - could be the 2 MB of memory that it is taking up. But not a major prob.

This is strange - on my Omnia the application occupies 400 KB memory and I haven't seen any slow downs...

Which tool are you using to check the memory occupation?

On rotation, there is a significant lag every time I change direction - regardless of the screen I am in . It would be nice if it didn't kick in when the homescreen wasn't active.

Yes - this is becouse it is changing doing it's work every time you rotate the screen.. It is a one-time event, if it won't be fired on rotation then going back to clean screen will leave you with the plugins for other orientation.

Link to comment
Share on other sites

Love your work, qbus! B)

It is an interesting set up that you have going - but seems to be slowing my omnia down a little - could be the 2 MB of memory that it is taking up. But not a major prob.

On rotation, there is a significant lag every time I change direction - regardless of the screen I am in . It would be nice if it didn't kick in when the homescreen wasn't active.

I've updated the attachment in first post.

Now RotationService works only if homescreen is visible. If not, then it only buffers the current mode and triggers plugins change immediately when the homescreen appears.

There is only one issue I need to resolve. When Manila is running, leaving application in landscape mode causes screen to rotate to portait (becouse of Manila).

It would be very, very cool if someone figure out how to disable Manila's auto-rotation "feature"... B)

Link to comment
Share on other sites

I've updated the attachment in first post.

Now RotationService works only if homescreen is visible. If not, then it only buffers the current mode and triggers plugins change immediately when the homescreen appears.

There is only one issue I need to resolve. When Manila is running, leaving application in landscape mode causes screen to rotate to portait (becouse of Manila).

It would be very, very cool if someone figure out how to disable Manila's auto-rotation "feature"... B)

it is hexing i guess B), anyone who is cabable can help

Link to comment
Share on other sites

it is hexing i guess B) , anyone who is cabable can help

It would make the application to run faster (no need to manually kill manila anymore) and the application detection will work without any issues (I'm thinking of implementing the posibility to define Omnia's autorotation application white and blacklists).

Link to comment
Share on other sites

I've just uploaded new version which can control Omnia's autorotation accelerometer feature depending on foreground application. Please check the first post of the thread for more info.

Link to comment
Share on other sites

Guest Michael122w
I've just uploaded new version which can control Omnia's autorotation accelerometer feature depending on foreground application. Please check the first post of the thread for more info.

Wow - I really like this latest version. I have dumped M2D now - preferring Samsung Today 2 instead - but I have still got this little baby controlling all of my rotation. No longer do I need to run a crude mortscript in the background. I am guessing that a config tools is coming down the track - as it would be a great addition (instead of editing xml).

Great work!

Edit: Oh - is there anyway to include the normal homescreen (ST2) into the WhileList?

Edited by Michael122w
Link to comment
Share on other sites

Wow - I really like this latest version. I have dumped M2D now - preferring Samsung Today 2 instead - but I have still got this little baby controlling all of my rotation. No longer do I need to run a crude mortscript in the background. I am guessing that a config tools is coming down the track - as it would be a great addition (instead of editing xml).

Great work!

Edit: Oh - is there anyway to include the normal homescreen (ST2) into the WhileList?

I think that this is owned by shell32.exe system, so you need to add this process to whitelist.

PS I've updated the attachment in first post - removed some bugs (probably one which hang my Omnia lat night so I had to do soft-reset) and optimize the code a little.

Link to comment
Share on other sites

Guest pdaphonemaster

Hi,

Sounds like a great utility.

However, I have stayed away from cooked roms since I kinda like Samsung widget interface. So, I guess your utility will not work on stock roms that run on earlier version of NET compoenet. So, Samsung widget and your utility will not co-exist.

Can your utility be modified to work with stock roms? Just curious.

Thanks.

Link to comment
Share on other sites

The "Please Wait" isnt it a bit slow? B)

I guess it a sleep event? Can you make it faster?

I don't know what do you have on mind.

"Please wait" screen is being shown when application starts to change today plugins (changing value's registry) and is disposed when SendMessage to shell to refresh the today screen finishes its work B).

There is no sleep event at all B)

Link to comment
Share on other sites

Hi,

Sounds like a great utility.

However, I have stayed away from cooked roms since I kinda like Samsung widget interface. So, I guess your utility will not work on stock roms that run on earlier version of NET compoenet. So, Samsung widget and your utility will not co-exist.

Can your utility be modified to work with stock roms? Just curious.

Thanks.

Yes, that was my laziness that I've created it 3.5.

I'll try to modify it so it will work on .NET 2.0.

EDIT: I've made a downgrade to .NET 2.0 - please try to run the application now. Also get the latest version as I removed another bug B).

EDIT2: I've just created CAB installer.

Edited by qbus
Link to comment
Share on other sites

Guest FREAKed

this is pretty useful stuff but my problem is i want allmost all programs to flip, i only have few of them that i need not to move. So, is there a way to just put few ones in the blacklist and everything else flips as usual?

Link to comment
Share on other sites

this is pretty useful stuff but my problem is i want allmost all programs to flip, i only have few of them that i need not to move. So, is there a way to just put few ones in the blacklist and everything else flips as usual?

Just remove the section in config.xml and in section define processes for which you want to disable auto rotation.

Link to comment
Share on other sites

thanks, just what i needed

Cool B)

I've just upgraded installer to new version (again B)). It does not remove any bugs but makes the application to be more consistant.

Orientation changes done on other then today screen are temporary - if you return to homescreen it will flip back to the orientation which was last time (the same behaviour as Manila2D).

This means that every orientation changes which involves plugin changes (and last for some time) is always done by user on today screen.

I'm still wondering what else can be added B). I'm thinking of config editor - what do you think?

Link to comment
Share on other sites

Guest FREAKed

well i was just playing with it for a while and i noticed that if i wanted to have rotation on today screen (i dont use manilla) i cant. What i mean if i remove shell32.exe from blacklist than theoretically it should work normal, but every time i flip the phone on today screen the application crashes, it doesn't happen on any other screen. Config editor would be nice, so you can browse the apps you want to include/exclude and just add them in config through the app.

edit: i would try to fix the problem myself, but i just started to mess with wm, have no experience yet even though i am quite familliar with c++ so in the near future you can expect help from me too

Edited by FREAKed
Link to comment
Share on other sites

Guest Michael122w
I'm still wondering what else can be added B) . I'm thinking of config editor - what do you think?

It would be nice to define the orientation for the programs excluded in the Blacklist. At the moment If I switch to a black list program (say S2U2) when I am in landscape mode - then it is stuck in landscape - even though I want it to be in portrait! So if we could have an option in the xml file to identify portrait or landscape it would be great B)

Link to comment
Share on other sites

It would be nice to define the orientation for the programs excluded in the Blacklist. At the moment If I switch to a black list program (say S2U2) when I am in landscape mode - then it is stuck in landscape - even though I want it to be in portrait! So if we could have an option in the xml file to identify portrait or landscape it would be great B)

I was thinking about that B) but I want to clean up everything and correct bugs before I'll start to implement new features.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.