|
API Guide Home (Online version only) |
![]() |
00001 /****************************************************************************** 00002 * Copyright (c) 2004 palmOne, Inc. or its subsidiaries. 00003 * All rights reserved. 00004 *****************************************************************************/ 00005 /** 00006 * @ingroup Tone 00007 * 00008 */ 00009 00010 /** 00011 * @file TonesLib.h 00012 * @brief Public 68K include file that controls the MIDI tones on a device. 00013 * 00014 * Notes: 00015 * 00016 * The calling application should always load this library with 00017 * SysLibLoad() before use, even if it is already open by another 00018 * application(ie, SysLibFind() returns a valid refnum). When 00019 * the application is done with the library, it should be 00020 * unloaded with SysLibRemove(). We do this because there is 00021 * no good way to synchronize loading and unloading of libraries 00022 * among multiple applications. It also greatly simplifies internal 00023 * synchronization. 00024 */ 00025 00026 #ifndef __TONESLIB__H__ 00027 #define __TONESLIB__H__ 00028 00029 #ifdef __cplusplus 00030 extern "C" { 00031 #endif 00032 00033 /// Minimum db version of TonesLibrary database that implements escalation 00034 /// Done this way since we have no GetLibVersion() API. 00035 #define kTonesLibVersionEscalation 10 00036 00037 /// Open and initialize the Tones library instance. 00038 /// 00039 /// @param refNum: IN: Library reference number from SysLibLoad. 00040 /// @return Library error code. 00041 Err TonesLibOpen (UInt16 refNum) 00042 SYS_TRAP (sysLibTrapOpen); 00043 00044 /// Close the Tones library instance. 00045 /// 00046 /// @param refNum: IN: Library reference number from SysLibLoad. 00047 /// @return Library error code. 00048 Err TonesLibClose (UInt16 refNum) 00049 SYS_TRAP (sysLibTrapClose); 00050 00051 /// Standard function to receive Palm OS wake up notification. 00052 /// 00053 /// @param refNum: IN: Library reference number from SysLibLoad. 00054 /// @return Library error code. 00055 Err TonesLibWake (UInt16 refNum) 00056 SYS_TRAP (sysLibTrapWake); 00057 00058 /// Standard function to receive Palm OS sleep notification. 00059 /// 00060 /// @param refNum: IN: Library reference number from SysLibLoad. 00061 /// @return Library error code. 00062 Err TonesLibSleep (UInt16 refNum) 00063 SYS_TRAP (sysLibTrapSleep); 00064 00065 /// Get the list of tone names. 00066 /// 00067 /// @param refNum: IN: Library reference number from SysLibLoad. 00068 /// @param list: IN: Pointer to the list of tone names to return. 00069 /// @param listLength: OUT: Count of how many tone names are in the list. 00070 /// @return Library error code. 00071 Err TonesLibGetToneList (UInt16 refNum, ToneItemPtr * list, UInt16 * listLength) 00072 SYS_TRAP (tonesLibTrapGetToneList); 00073 00074 /// Get the list of tone IDs. 00075 /// 00076 /// @param refNum: IN: Library reference number from SysLibLoad. 00077 /// @param list: IN: Pointer to the list of tone IDs to return. 00078 /// @param listLength: OUT: Count of how many tone IDs are in the list. 00079 /// @return Library error code. 00080 Err TonesLibGetToneIDs ( UInt16 refNum, ToneIdentifier ** list, UInt16 * listLength) 00081 SYS_TRAP (tonesLibTrapGetToneIDs); 00082 00083 /// Get the name of a certain tone given its ID. 00084 /// 00085 /// @param refNum: IN: Library reference number from SysLibLoad. 00086 /// @param toneId: IN: Tone ID of the tone name to get. 00087 /// @param name: I/O: Pointer to the returned tone name. 00088 /// @param maxLength: IN: Size of the name buffer in bytes. 00089 /// @return Library error code. 00090 Err TonesLibGetToneName (UInt16 refNum, ToneIdentifier toneId, CharPtr name, UInt16 00091 maxLength) 00092 SYS_TRAP (tonesLibTrapGetToneName); 00093 00094 /// Get the tone data size given its ID. 00095 /// 00096 /// @param refNum: IN: Library reference number from SysLibLoad. 00097 /// @param toneId: IN: ID number of the tone. 00098 /// @param sizeP: OUT: Size of the specified tone. 00099 /// @return Library error code. 00100 Err TonesLibGetToneSize (UInt16 refNum, ToneIdentifier toneId, UInt32* sizeP) 00101 SYS_TRAP (tonesLibTrapGetToneSize); 00102 00103 /// Play a tone given its ID. 00104 /// 00105 /// @param refNum: IN: Library reference number from SysLibLoad. 00106 /// @param toneId: IN: ID of the tone to play. 00107 /// @param playCount: IN: Number of times you want the tone repeated. 00108 /// @param volume: IN: Volume level at which you want the tone played. 00109 /// @param vibrate: IN: Vibrate mode to use when playing the tone. 00110 /// @param blocking: IN: Controls whether the tone play is a blocking call 00111 /// or play in the background and return immediately. 00112 /// @return Library error code. 00113 Err TonesLibPlayTone (UInt16 refNum, ToneIdentifier toneId, UInt16 playCount, 00114 ToneVolume volume, ToneVibrateType vibrate, Boolean blocking) 00115 SYS_TRAP (tonesLibTrapPlayTone); 00116 00117 /// Add a MIDI tone to the system tone database. 00118 /// 00119 /// @param refNum: IN: Library reference number from SysLibLoad. 00120 /// @param midiTone: IN: The data buffer handle where the midi tone data is located. 00121 /// @param toneName: IN: Name of the tone. 00122 /// @param protectedTone: IN: Save tone as protected record in the tone database. 00123 /// @return Library error code. 00124 Err TonesLibAddMidiTone (UInt16 refNum, MemHandle midiTone, CharPtr toneName, 00125 Boolean protectedTone) 00126 SYS_TRAP (tonesLibTrapAddMidiTone); 00127 00128 /// Create new tone and return the pointer to the start of the sound stream. 00129 /// 00130 /// @param refNum: IN: Library reference number from SysLibLoad. 00131 /// @param streamP: OUT: Pointer to the sound stream of the new tone. 00132 /// @param toneType: IN: Type of the tone. @see ToneType. 00133 /// @param toneName: IN: Name of the tone. 00134 /// @param protectedTone: IN: Save tone as protected record in the tone database. 00135 /// @return Library error code. 00136 Err TonesLibToneCreate (UInt16 refNum, UInt32* streamP, ToneType toneType, 00137 CharPtr toneName, Boolean protectedTone) 00138 SYS_TRAP (tonesLibTrapToneCreate); 00139 00140 /// Write sound data to the stream returned by TonesLibToneCreate(). 00141 /// 00142 /// @param refNum: IN: Library reference number from SysLibLoad. 00143 /// @param stream: IN: Reference to the steam returned by TonesLibToneCreate(). 00144 /// @param dataP: IN: Pointer to the Tone(Sound) data. 00145 /// @param size: IN: Size of the data to be written. 00146 /// @return Library error code. 00147 Err TonesLibToneWrite (UInt16 refNum, UInt32 stream, const void* dataP, Int32 size) 00148 SYS_TRAP (tonesLibTrapToneWrite); 00149 00150 /// Close the reference to the tone stream. 00151 /// 00152 /// @param refNum: IN: Library reference number from SysLibLoad. 00153 /// @param stream: IN: Reference to the steam returned by TonesLibToneCreate(). 00154 /// @return Library error code. 00155 Err TonesLibToneClose (UInt16 refNum, UInt32 stream) 00156 SYS_TRAP (tonesLibTrapToneClose); 00157 00158 /// Display UI to manage tones. Users can delete, play, or send a tone from this UI. 00159 /// 00160 /// @param refNum: IN: Library reference number from SysLibLoad. 00161 /// @return Library error code. 00162 Err TonesLibManageTones (UInt16 refNum) 00163 SYS_TRAP (tonesLibTrapManageTones); 00164 00165 /// Delete a tone given its ID. 00166 /// 00167 /// @param refNum: IN: Library reference number from SysLibLoad. 00168 /// @param toneId: IN: ID of the tone to be deleted. 00169 /// @return Library error code. 00170 Err TonesLibDeleteTone (UInt16 refNum, ToneIdentifier toneId) 00171 SYS_TRAP (tonesLibTrapDeleteTone); 00172 00173 /// Create the default tone database if it does not exist, and verify that all the tones 00174 /// in a database are resident on the device. 00175 /// 00176 /// @param refNum: IN: Library reference number from SysLibLoad. 00177 /// @return Library error code. 00178 Err TonesLibInitTonesDB (UInt16 refNum) 00179 SYS_TRAP (tonesLibTrapInitTonesDB); 00180 00181 /// Get the sound preference for a type of (application) sound. 00182 /// 00183 /// @param refNum: IN: Library reference number from SysLibLoad. 00184 /// @param soundType: IN: Type of (application: email, SMS, phone call, etc) sound. 00185 /// @param soundPrefs: OUT: Preference settings for a type of sound. 00186 /// @return Library error code. 00187 Err TonesLibGetSoundPrefs (UInt16 refNum, SoundPrefType soundType, SoundPreference * soundPrefs) 00188 SYS_TRAP (tonesLibTrapGetSoundPrefs); 00189 00190 /// Set the sound preference for a type of (application) sound. 00191 /// 00192 /// @param refNum: IN: Library reference number from SysLibLoad. 00193 /// @param soundType: IN: Type of (application) sound. 00194 /// @param soundPrefs: IN: Preference settings for the type of sound. 00195 /// @return Library error code. 00196 Err TonesLibSetSoundPrefs (UInt16 refNum, SoundPrefType soundType, SoundPreference * soundPrefs) 00197 SYS_TRAP (tonesLibTrapSetSoundPrefs); 00198 00199 /// Display the UI to select tones and return the tone type, tone name, and handle to 00200 /// the tone data. 00201 /// 00202 /// @param refNum: IN: Library reference number from SysLibLoad. 00203 /// @param toneType: OUT: Type of tone. 00204 /// @param toneH: OUT: Handle to the tone selected. Must be freed by the caller. 00205 /// @param name: OUT: Name of the tone. 00206 /// @return Library error code. 00207 Err TonesLibPickTone (UInt16 refNum, ToneType * toneType, MemHandle *toneH, Char 00208 * name) 00209 SYS_TRAP (tonesLibTrapPickTone); 00210 00211 /// Stop the playback of the current tone. 00212 /// 00213 /// @param refNum: IN: Library reference number from SysLibLoad. 00214 /// @return Library error code. 00215 Err TonesLibStopTone (UInt16 refNum) 00216 SYS_TRAP (tonesLibTrapStopTone); 00217 00218 /// Get the sound-on volume of a sound type. 00219 /// 00220 /// @param refNum: IN: Library reference number from SysLibLoad. 00221 /// @param soundType: IN: Type of (application) sound. 00222 /// @param soundOnVolumeP: OUT: Volume of the sound. 00223 /// @return Library error code. 00224 Err TonesLibGetSoundOnVolume (UInt16 refNum, SoundPrefType soundType, 00225 ToneVolume* soundOnVolumeP) 00226 SYS_TRAP (tonesLibTrapGetSoundOnVolume); 00227 00228 /// Set the sound-on volume of a sound type. 00229 /// 00230 /// @param refNum: IN: Library reference number from SysLibLoad. 00231 /// @param soundType: IN: Type of (application) sound. 00232 /// @param soundOnVolume: IN: Volume of the tone. 00233 /// @return Library error code. 00234 Err TonesLibSetSoundOnVolume (UInt16 refNum, SoundPrefType soundType, 00235 ToneVolume soundOnVolume) 00236 SYS_TRAP (tonesLibTrapSetSoundOnVolume); 00237 00238 /// Display the UI to create and/or manages tones. 00239 /// 00240 /// @param refNum: IN: Library reference number from SysLibLoad. 00241 /// @param flags: IN: Set to kTonesDialogFlagNonModal to hide the Done button from the dialog. 00242 /// @return Library error code. 00243 Err TonesLibDoDialog (UInt16 refNum, UInt32 flags) 00244 SYS_TRAP (tonesLibTrapDoDialog); 00245 00246 /// No definition. 00247 /// 00248 /// @param refNum: IN: Library reference number from SysLibLoad. 00249 /// @return Library error code. 00250 Err TonesLibRecordTone (UInt16 refNum) 00251 SYS_TRAP (tonesLibTrapToneRecord); 00252 00253 /// Query or toggle whether ring tones are escalated in volume when played. 00254 /// 00255 /// @param refNum: IN: Library reference number from SysLibLoad. 00256 /// @param set: IN: true if setting, false if querying. 00257 /// @param value: IN: Value to set if setting, queried value if querying. 00258 /// @return Library error code. 00259 Err TonesLibEscalateRingTones (UInt16 refNum, Boolean set, Boolean *value) 00260 SYS_TRAP (tonesLibTrapEscalateRingTones); 00261 00262 /// Play a ring tone given its ID. The difference between this and PlayTone is 00263 /// that tones played this way are affected by TonesLibEscalateRingTones(). 00264 /// 00265 /// @param refNum: IN: Library reference number from SysLibLoad. 00266 /// @param toneId: IN: ID of the tone to play. 00267 /// @param playCount: IN: Number of times you want the tone repeated. 00268 /// @param volume: IN: Volume level at which you want the tone played. 00269 /// @param vibrate: IN: Vibrate mode to use when playing the tone. 00270 /// @param blocking: IN: Controls whether the tone play is a blocking call 00271 /// or play in the background and return immediately. 00272 /// @return Library error code. 00273 Err TonesLibPlayRingTone (UInt16 refNum, ToneIdentifier toneId, UInt16 playCount, 00274 ToneVolume volume, ToneVibrateType vibrate, Boolean blocking) 00275 SYS_TRAP (tonesLibTrapPlayRingTone); 00276 00277 // Save a copy of undeletable tones into a separate hidden db 00278 // so that we can copy them back to main MIDI db. This is in case that delete 00279 // protected tones got lost during recovery hot sync where MIDI db from the 00280 // computer profile was copied over to the device. 00281 // Called from SoundPhone Panel at SyncStart notification 00282 // 00283 // @param refNum IN: Library reference number from SysLibLoad. 00284 // @return Library error code 00285 Err TonesLibSaveUndeletableTones(UInt16 refNum) 00286 SYS_TRAP (tonesLibTrapSaveUndeletableTones); 00287 00288 // After hot Sync has finished copy back delete protected tones from 00289 // backup db to main MIDI db. See TonesLibSaveUndeletableTones also. 00290 // Called from SoundPhone Panel at SyncFinish notification 00291 // 00292 // @param refNum IN: Library reference number from SysLibLoad. 00293 // @return Library error code 00294 Err TonesLibCopyBackUndeletableTones(UInt16 refNum) 00295 SYS_TRAP (tonesLibTrapCopyBackUndeletableTones); 00296 00297 #ifdef __cplusplus 00298 } 00299 #endif 00300 00301 #endif // __TONESLIB__H__
| Top | Palm Developer Network © 2004-2008, Palm, Inc. All rights reserved. Generated on Fri Jun 13 10:06:55 2008 for Palm API Guide |