[APP][01-26-09][*VGA+]SplashScreenRandomizer 1.4.0 All form factors & image formats!
Splash Screen Randomizer 1.4.0 Swap for a random splash screen at startup. Supports all major form factors and image formats!
AppToDate should be working for all versions
Updated to 1.4.0 on 01-26-09
Notable Changes
Major form factor support added(QVGA,VGA,WVGA[testers needed]). Screen layout and image importing is now dynamic
IO Mode switches on automaticaly on first run if your phone is windows mobile 6.0 or below (i.e < 5.2.19000)
OpenFile 2.0 included (my extended Mobile Practices codebase)
File attributes on default splash are adjusted to work better with IO Mode
Better error handling added
lots of backend improvements and UI Tweaks
Richer UI coming soon
Intro
Splash Screen Randomizer is comprised of two applications. The first is a very small application[SplScrnRnd] that runs at startup and either replaces your splash screen file or changes the associated registry setting to a random file from a folder of your choice. This gives you a new splash screen each time you boot! The second app[SplScrnRnd Settings], as it's name would suggest is a tool to adjust SplScrnRnd's settings and customize the splash screens that you load. By default you'll be greeted with a random image each time you boot, but you can choose to use a specific screen you like or import your own images and randomize those!
How To Use
When you install Splash Screen Randomizer It will create a folder in \My Documents\Splashes (You can change this folder after install if you want) Depending on which version you download you may have 2 splash screens or 13 in your splashes folder. The normal version only includes the splash screen by black_shadow69 splash.black. While the other has one of nuthin's splash screens, some of mine, and a whole bunch of black_shadow69's.
You can change the Splashes directory, import files, or adjust settings by launching "SplScrnRndStg" From Start --> Programs.
Note to Cooks: At any point, you can change the settings manually by editing the .xml file in the same directory as SplScrnRnd.exe and Randomizer.dll. You can cook SplScrnRnd.exe into your roms without even including SplScrnRndStg.exe or OpenFile.dll
As always you can drag .png or .bmp images into your splashes folder to add them into the loop.
To use an image that is not .bmp or .png:
Method 1
Choose 'Import/Multi...' from the main settings screen
Choose 'Import File' or 'Import Folder' (whichever is appropriate).
SSR will scan the folder or file and will attempt to scale the image appropriately(if you don't like the way it's scaled copy it manually as a .png or .bmp into your Splashes folder).
Method 2
You can also check "Use Specific Screen" to always use a specific splash. This will scale the image and save it to your splashes directory with a .png extension(if it's not already in your splash directory).
Quirks or Issues[01-26-09]
The default version of SSR comes with a splash screen in 320x240(96dpi) and 640x480(192dpi). you can delete one or both if they dont fit your screen. or move it and import it
Note1 you can download splashes.zip and import the entire folder to automatically scale them appropriately for your phone.
Note2 In the next build Ill prompt to automatically resize the default splashes for the current screen on first run.
Multi Mode is not supported in IO Mode
Future Thoughts(Feel Free to add your own)[01-26-09]
Only two versions will be out next. SSR will offer to reformat the splashes for your screen on first start for next build(sound good?)
The interface should scale appropriately now for all form factors, but Ill be creating more custom layouts for each format soon
Rich UI with suport for current WM theme? or would you guys rather have full control of the layout ie. template for controls and images(seems a bit much)?
Credits
Black_Shadow69 Nearly all of the splash screens included in the larger version come from this thread http://forum.xda-developers.com/showthread.php?t=382745
nuthin The larger version also includes a Merlin splash screen I did a while back with a backdrop that was done by nuthin and released with the core kitchen
José Salazar of mobile practices for speeding things up with the base code for the open file control in SSR
http://www.mobilepractices.com/2008/02/custom-openfiledialog-implementation.html
Les Smith of KnowDotNet for speeding things up with the base code for the persistent settings
http://www.knowdotnet.com/articles/cfcsetting.html
l3v5y Registry Tip: See Here
Older Changes
Updated to 1.3.0 on 07-27-08
Added IO Mode - IO mode is for backwards compatibility, it will replace your default screen when the app is run instead of changing the registry setting. If you had problems with the more recent releases of SSR this should smooth things out for you [*See "Quirks Or Issues" for more info*]
Added Support for AppToDate an excellent app to keep your programs up to date.
Recommended Install Method if you use AppToDate to minimize download size
Download Splash Screen Randomizer Without Splashes OR view the attached .txt file and save it in "\Application Data\AppToDate\SplashScreenRandomizerA2D.xml" on your device(The icon will come with the installer after you update)
Download Splashes.Zip and extract them into your splashes folder(default is "\My Documents\Splashes"
Run AppToDate and SSR as usual
Updated From 1.0 to version 1.2.5 on 4-13-08
Changes From 1.0 to 1.2.5
Now use ANY of the major image formats(.bmp,.gif,.jpg,.jpeg,png,.tif) as your splash screen(the image is scaled and saved as a .png in your splashes folder)
The settings screen is now drawn dynamically(i.e. no scrollbars should be displayed when in portrait or landscape mode)
.bmp and .png files will be displayed/randomized if they are in your splashes folder
option added to replace your default splash(original splash is saved to your splashes folder)
Optimized code in several places and reduced overall size
Due to it's size, the default splash included with the smaller version is black_shadow69's black version below
If you had 0.7.5 you should uninstall it first and delete the directory called "SplashScreenRandomizerSetup" in your program files(you don't have to do that from 1.0 on)
Changes From 0.7.5 to 1.0
You can now preview the next boot splash or randomize a new one from settings
You can pick an individual splash screen to use(this will remove the randomizer link from startup until the "single file" option is unchecked)
You can now reset the picture back to the original setting by pressing the "Reset"
The splash are no longer copied from the splash folder to the windows folder. The registry values that point to the file in the windows folder are now changed to point to the file in the splash folder. This does improve startup speed because less io traffic is happening Credit for reg links:l3v5y
The OpenFile dialog has been slimmed down and tweaked a bit to allow context sensitive clicking(i.e. "right click" gives "Enter Folder, Select Folder, and Select File “respectively)
Attachments
SplashScreenRandomizerA2D.xml.txt: This is the AppToDate file i used to test AppToDate support in the version without splashes. You can save it in "\Application Data\AppToDate\SplashScreenRandomizerA2D.xml" and run apptodate to get the newest version that way
SplashScreenRandomizerSetup.1.4.0.New.Updated.1.26.09.CAB is the newest install file for SSR. It includes two splash screens (320x240.splash.black.png and 640x480.splash.black.png) these can be discarded or reimported if they dont fit your screen.
SplashScreenRandomizerSetup.1.4.0.WithSplashes(VGA).New.Updated.1.26.09.CAB is the newest full install file for SSR. It includes 13 splash screens for 640x480(192dpi)
Splashes.zip: Zip of the extra splashes included in the "WithSplashes" versions of SSR 1 is 320x240 96 dpi the other is 640x480 192 dpi (you can import the folder to scale them to your screen)
Enjoy
Nice...werD...Thank you have enclosed me...
I will try the tool...
Thanks again werD.....
very nice idée thank you very much
Pretty cool.
Thank you very much for sharing.
awsome....Now, my prophet have use this apps....
Thanks again werD....
Just an idea... Could you set it to change a registry entry to change the image that is loaded rather than changing the actual image?
This would also allow two different images to be loaded. This would remove the need for swapping files and should in theory be faster, although the code may be slightly more complicated.
Code:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Splash Screen]
"MSBitmap"="\\windows\\welcomehead.96.png"
"MSTimeout"=dword:00007530
"CarrierBitmap"="\\windows\\welcomehead.96.png"
"CarrierTimeout"=dword:00007530
EDIT: I've just written a simple app that should change "MSBitmap" and "CarrierBitmap" values.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
l3v5y said:
Just an idea... Could you set it to change a registry entry to change the image that is loaded rather than changing the actual image?
This would also allow two different images to be loaded. This would remove the need for swapping files and should in theory be faster, although the code may be slightly more complicated.
Click to expand...
Click to collapse
Thanks Good call, i didn't realize it was a reg setting as well
Next version is going great thus far. I came here to release it, but i'm going to wait and do some registry hacking now instead
1.0 Released
Splash Screen Randomizer 1.0. Swap for a random splash screen at startup
Updated From 0.7.5 to version 1.0 on 4-11-08
If you had 0.7.5 you should uninstall it first and delete the directory called "SplashScreenRandomizerSetup" in your program files(you don't have to do that from 1.0 on)
Changes From 0.7.5 to 1.0
You can now preview the next boot splash or randomize a new one from settings
You can pick an individual splash screen to use(this will remove the randomizer link from startup until the "single file" option is unchecked)
You can now reset the picture back to the original setting by pressing the "Reset"
The splash are no longer copied from the splash folder to the windows folder. The registry values that point to the file in the windows folder are now changed. This does improve speed a bit Credit:l3v5y
The OpenFile dialog has been slimmed down and tweaked a bit to allow context sensitive clicking(i.e. "right click" gives "Enter Folder, Select Folder, and Select File"respectively)
Quirks or Issues
The current Welcome splash screen is replaced(instead of backed up) when the program first runs Resolved in 1.0(splash files are no longer copied or replaced)
The assembly incorrectly show 1.0 actual version is 0.7.5 Resolved in v 1.0
Future Thoughts(Feel Free to add your own)
1.0 is here: Depending on the feedback is where I take this one. We may get a bit more dynamic with them or provide static watermarks or we may be done that's really up to you guys
Credits
Black_Shadow69 Nearly all of the splash screens included in the larger version come from this thread http://forum.xda-developers.com/showthread.php?t=382745
nuthin The larger version also includes a Merlin splash screen I did a while back with a backdrop that was done by nuthin and released with the core kitchen
José Salazar of mobile practices for speeding things up with the base code for the open file control in SSR
http://www.mobilepractices.com/2008/02/custom-openfiledialog-implementation.html
Les Smith of KnowDotNet for speeding things up with the base code for the persistent settings
http://www.knowdotnet.com/articles/cfcsetting.html
l3v5y Registry Tip: See Here
OpenNetCf I used their Registry library and got 1.0 converted from IO to Registry in no time http://www.opennetcf.com/
You can download the updates and read the rest of the story here: http://forum.xda-developers.com/showthread.php?p=2101246#post2101246
I've used the .NET CF 2.0 registry functionality which is built into most ROMs and so needs no extra files at all.
The problem with the registry is that I haven't yet found out why it won't read the timeout values. By default they are set so high that only the MSBitmap can be shown.
I have one point to make though, BMP files can be used as well as pngs! They can be anywhere, and can be any size (although a 10MB file might take too much RAM) but only the top left area is shown with one pixel of the file being one pixel of the screen. Undersized images are placed in the top left of the screen.
The load order for the two files is:
MSBITMAP is loaded and displayed
Waits for time set by MStimeout
CarrierBitmap is loaded and displayed'
Waits for time set by Carriertimeout
Overlays MSBITMAP on top of CarrierBitmap (only observed if msBitmap is smaller than carrierBitmap)
Today Screen loads
Changing the timeouts/both registry keys could allow for greater variation in the splash screens.
I'll try and work out why I can't get the reg keys for timeout to work, and I shall also see if transparency in the *.pngs has any effect when the two splash sreens are overlayed.
lol, I was up late last night, i guess i should have dug deeper. cf 2.0 has a lot built in (edit:was hiding in Microsoft.Win32; identical code one less file good call)
I knew MSBitmap was the one getting displayed with the default timeout(or no timeout values at all), but I was setting CarrierBitmap as well in case of some device oddities or differing oem implementations. Please do let me know when you figure out the magic numbers for the dual splash screens i'll gladly open up the option to use multiple randoms or one random and one constant or whatever else we can scheme up.
I'm going to enable bmp in the filter as well, i reckon I'll probably be cleaning up some things from my sunrise coding session too , I'll swap the reg calls over to the built in classes, I also need to speed up the settings classes that call and save data (i haven't had a chance to look too deep into the code yet but I already know i can speed it up significantly), Ive also got some more great new features planned out and in the works so stay tuned.
Again, i appreciate your input please l3v5y keep it up.
What programming language is this written in?
As far as I can tell, the timeouts are in hundredths of seconds, but 30,000 (which is the default value for everything I've checked) seems too long! However, it all depends on how long the ROM takes to boot up. After both timeouts have ended, the MSBitmap is overlayed on top of the CarrierBitmap, so it doesn't matter if the ROM takes longer to boot up than the two timeouts.
I'm guessing it's really obvious, but how do you get the file location from the open file dialog? I have managed to get the dialog do everything BUT give me the file location!!!
I think I have managed to get the timeouts to load/be set properly although I need to test it on my prophet and not just the emulator...
This is in vb.net with some C# mixed in from the openfiledialog and csettings. I dont have much trouble bouncing from one to the other but I tend to use vb.net the most. the dialog had me a little twisted too at first but it's the FileName property. I also added a constructor parameter for directory search and public folder property which made things pretty easy.
Well... I have managed to change the timeout settings from my little front end!
Thanks for the FileName tip it works!
For anyone that's interested, the source and the .exe are attached.
changing the values is no problem. i was just wondering what some good timings were to balance them out. Imaging madness atm over here, was hopin for a short cut
The timings depend on the speed of the boot up process. I'm not being very helpful am I?
All input is appreciated I did a lot of optimizing yesterday and merged the code base for both apps involved with splash screen randomizer(the small module that runs at startup and the settings app that does the heavy lifting). Ive added some new features but in the interest of not overwhelming you guys with almost daily releases, i'd like to get some input on what some other wants might be.
The main feature i've added to the next build so far has been the ability to use ANY major image format(.bmp,.gif,.jpg,.jpeg,png,.tif) as a splash screen. I've been digging it so far, but I was thinking the ability to add a string of text or a logo as a watermark might make it nicer. It could also allow cooks to include multiple splashes with credits and build text without having to do a whole lot of editing(a batch update watermarker maybe?).
..who knows though, I need to focus a bit more on getting WordStreamer to a 1.0 stage, so i'd like to pack in a few lasting features with this next release
Check out the attached pic for a preview of what's to come so far in the next release
Edit: latest build is here http://forum.xda-developers.com/showthread.php?t=383838
Does the splash screen system in WM allow for those formats? How are you going to get multiple (more than two) splashscreens?
EDIT: Should've tried it first! the conversion is working well, although it's not too clear what to do...
Just added 1.2.5..
@l3v5y
I had a custom splash screen button that when clicked showed a form that you could add images and add string text to the image as well. that was pretty straightforward but I took it out in the interest of size a lack of interest in it. I guess i should've just removed the the string option and left the image preview and such enabled. in the next build I'll bring some of those features back
I haven't had a chance to play with multiple splash screens option yet. But short of allowing the user to tweak the timeout values after I find some that work well on my wizard and emus, im not sure how I would need to implement it further other than allowing a few options for which one(if any) remains static while the other changes. Did you have any ideas? what timeout values work well for you? about how long does it take for your phone to boot?
Thanks
1.2.5 is Released
Changes From 1.0 to 1.2.5
Now use ANY of the major image formats(.bmp,.gif,.jpg,.jpeg,png,.tif) as your splash screen(the image is scaled and saved as a .png in your splashes folder)
The settings screen is now drawn dynamicaly(i.e. no scrollbars should be displayed when in portrait or landscape mode)
.bmp and .png files will be displayed/randomized if they are in your splashes folder
option added to replace your default splash(original splash is saved to your splashes folder)
Optimized code in several places and reduced overall size
Due to it's size, the default splash included with the smaller version is black_shadow69's black version below
Future Thoughts(Feel Free to add your own)
1.2.5 is here: Let me know what you think. I decided to leave out the option for adding watermarks and text strings when you make splash screens, If people express a want for it, I'll add it into a future build.
I also thought it might be nice to batch convert and import some pictures to your splashes folder. Let me know what you think
If this is in the wrong forum please move. I did a search for this but all I kept coming up with is reg locations, and the splash screen for the nbh which isnt what I am looking for.
I just cooked my own rom, but I wanted to change the htc quietly brilliant screen to something I wanted, No problems, then I found the Windows Customization (Orange) screen in two locations: 1 under oemdrivers the other under sys: Redist_dpi_192_resh_480_resv_800 change that. I also went and replaced the wav file in the operator pkg folder to what I wanted.
Flashed the Rom, Boot screen fine, but no sound, okay moving on, windows customization screen, my screen comes up, first bar completes, flickers my screen still, second bar completes, upon the second bar the phone changes the screen back to the windows orange setup screen. WTF? Went looking doing searches for png, bmp, jpg, etc, nothing.
So questions:
1) Why isnt the wav working? its a wav file, 9 seconds name is: HTC-QuietlyBrilliantBoot.wav bitrate 128, file size 90.1kb. Original stock file: Same filename, 5 seconds, bitrate 1411, file size 861kb
2) Where is that other orange screen located so I can change it, I only found two.
Anyone have the Answer???
Okay forget the sound question, I fixed it, seems the wave editor save it as xxx.wav.wav rom doesnt like that.
But still dont know where the orange screen is located other then the two locations I stated, thats the only thing left I cant find
I was wondering if it was possible to change the boot logo (NOT the boot animation).
I managed to extract two identical files from my phone's oeminfo that seem to contain the boot logo.
However, I can't figure out the format.
The file has no header and is approximately the right size to be a 1080 x 1920 24bpp bitmap. So I wrote a little program to open it as if it was a 24bpp bitmap and convert it to PNG so I could get a look, and got some nonsense (I'd post it here but I can't because I'm a new user).
It was... clearly the right file but not quite the right format. I could see the Huawei logo but it had wavy horizontal distortions as if the number of bytes per line was variable, and many horizontal streaks on the Huawei flower where the brightness was correct but the hue was wrong. Oddly, the "Powered by Android" at the bottom of the image is pixel perfect, so I know at least that part is a normal 24bpp bitmap.
Any thoughts?