This is user-generated content. It could be inaccurate, out of date, or just plain wrong!

If you would like to improve it, please contact me to get an account

Magic Tones don't work with xxx

From Hobbyist Software

Jump to: navigation, search

Phone Technician introduces a new 'Magic Tones' feature that lets you define new ringtones which can (amongst other things) play mp3s from your sd card.

Generally, these magic tones are available to other apps as well as it effectively replaces the built in tones library, however this does rely on those other apps following some standard coding practices to use the library and some apps do fail to play magic tones, or even crash.

Unfortunately other than warning users of incompatibilites, I can't think of a way to make Magic Tones work with these apps - so this page is intended to list which apps have problems and clarify what the apps would have to do to 'play nice' with Magic Tones.

Apps with problems

  • Datebk6. Tested version 6.0a,s5 - Magic Tones don't play, but no instability.
    • Datebk author has said that he'll add this to his list of things to look at
    • in the meantime if you unckeck 'Datebk handles alarms' then you'll get the sound from the standard calendar which can use magic tones.
  • Mobile Clock. Tested version 3.9.00 - Magic Tones don't play and app crashes with 'Chunk Overlocked'. Developer has created a fixed version, but it may not be released yet...
  • Chatter. Magic Tones show, but don't play.
  • MegaClock. Magic Tones show, but don't play.
  • "Your Call Pro" from Iambic- it takes total control of your answer screen and prevents custom ringtones. I have had limited success with Ringo, but Magic Tones and LightWav both do nothing with this program installed. Workaround: you can disable the three stages of screens in YourCall, so disabling the first screen works about 80% of the time. You lose functionality, but things play together better.

How to fix problems

It is really easy for an app to work properly with Magic Tones - it just has to follow the standard procedure for finding and loading libraries. I will happily write to any developer if you let me know that their app isn't working however they may be more likely to respond if you the customer email them directly!

This is some sample code that will work to get the Tones Library and work with Magic Tones. The key is that it checks whether the library is loaded before loading it's own copy.

//Gets reference to tone library. 
//No need to unload library when done 
//Tones Lib is left loaded by system apps like the phone app anyway.
UInt16 getToneLibrary(void)
UInt16 		libRefHolder;
Err			err;

//important to check if library is already loaded!!!
err = SysLibFind (tonesLibName, &libRefHolder);

if (err)
	err = SysLibLoad (tonesLibType, tonesLibCreator, &libRefHolder);
	ErrNonFatalDisplayIf (err,"Failed to load tones library");

return libRefHolder;