No more shouting Symbian emulator
THE most annoying "feature" in Symbian emulator tools is their habit of setting Windows wave volume to the maximum. Typically this means that you are listening to MP3 with headphones as usual with decent volume, but when you launch the emulator, your head will blow apart and your ears start to bleed...
To prevent tinnitus being the leading work-related injury of the Symbian programmers, I created a simple Microsoft detours workaround. By disabling waveOutSetVolume API call, the stupid emulator has no means to mess with your volume settings. The actual magical DLL is here!
To use it, download Detours and compile library (using nmake in top directory)..
Now you can start the emulator using withdll (from samples):
c:\sdk\detours\bin\withdll.exe /d:ei_heliseva_symbaali.dll \Epoc32\release\winscw\udeb\epoc.exe
Or, for long time fix - after this the volume is gone forever:
c:\sdk\detours\bin\setdll.exe /d:ei_heliseva_symbaali.dll \Epoc32\release\winscw\udeb\epoc.exe
You could also add this to your own EXE application build cycle...
Enjoy the new, ear pleasuring Symbian!
To prevent tinnitus being the leading work-related injury of the Symbian programmers, I created a simple Microsoft detours workaround. By disabling waveOutSetVolume API call, the stupid emulator has no means to mess with your volume settings. The actual magical DLL is here!
To use it, download Detours and compile library (using nmake in top directory)..
Now you can start the emulator using withdll (from samples):
c:\sdk\detours\bin\withdll.exe /d:ei_heliseva_symbaali.dll \Epoc32\release\winscw\udeb\epoc.exe
Or, for long time fix - after this the volume is gone forever:
c:\sdk\detours\bin\setdll.exe /d:ei_heliseva_symbaali.dll \Epoc32\release\winscw\udeb\epoc.exe
You could also add this to your own EXE application build cycle...
Enjoy the new, ear pleasuring Symbian!
2 Comments:
Additional info:
- install platform sdk (currenly known as windows sdk) with vista headers. also select to install c++ compiler (i installed visual studio express c++ but this should not be required)
- compile detour by running nmake, this will produce required setdll.exe
- run the setdll.exe call inside detour\bin as instructed, things wont work otherwise
- copy ei_heliseva_symbaali.dll and detour.dll to epoc32\release\winscw\udeb, otherwise epoc.exe wont be started
I couldn't compile the ei_heliseva_symbaali.dll from the example project. This is most likely caused by visual studio express suckage. One should build makefile by hand if one wishes to compile this using free tools.
Luckily this thing is not needed with newest SDK, as they don't set the wave volume anymore.
Thanks for the more detailed instructions. The dll is actually created with Visual Studio Express, so if you have it properly configured, just rebuilding the project should generate the DLL.
Nice to know that Symbian is (slowly) advancing, maybe they read this article and became their senses.
ps. the same technique works for other windows applications as well
Post a Comment
Links to this post:
Create a Link
<< Home