Line data Source code
1 0 : /* 2 : 3 : OOMusicController.h 4 : 5 : Singleton controller for music playback. 6 : 7 : 8 : Oolite 9 : Copyright (C) 2004-2013 Giles C Williams and contributors 10 : 11 : This program is free software; you can redistribute it and/or 12 : modify it under the terms of the GNU General Public License 13 : as published by the Free Software Foundation; either version 2 14 : of the License, or (at your option) any later version. 15 : 16 : This program is distributed in the hope that it will be useful, 17 : but WITHOUT ANY WARRANTY; without even the implied warranty of 18 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 : GNU General Public License for more details. 20 : 21 : You should have received a copy of the GNU General Public License 22 : along with this program; if not, write to the Free Software 23 : Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 24 : MA 02110-1301, USA. 25 : 26 : */ 27 : 28 : #import "OOCocoa.h" 29 : #import "OOSoundSource.h" 30 : 31 : @class OOMusic; 32 : 33 : 34 0 : #define OOLITE_ITUNES_SUPPORT OOLITE_MAC_OS_X 35 : 36 : 37 0 : typedef enum 38 : { 39 : kOOMusicOff, 40 : kOOMusicOn, 41 : kOOMusicITunes, 42 : 43 : #if OOLITE_ITUNES_SUPPORT 44 : kOOMusicModeMax = kOOMusicITunes 45 : #else 46 : kOOMusicModeMax = kOOMusicOn 47 : #endif 48 : } OOMusicMode; 49 : 50 : 51 0 : @interface OOMusicController: NSObject 52 : { 53 : @private 54 0 : OOMusicMode _mode; 55 0 : NSString *_missionMusic; 56 0 : OOMusic *_current; 57 0 : uint8_t _special; 58 : } 59 : 60 0 : + (OOMusicController *) sharedController; 61 : 62 0 : - (void) playMusicNamed:(NSString *)name loop:(BOOL)loop; 63 0 : - (void) playMusicNamed:(NSString *)name loop:(BOOL)loop gain:(float)gain; 64 : 65 0 : - (void) playThemeMusic; 66 0 : - (void) playDockingMusic; 67 0 : - (void) playDockedMusic; 68 : 69 0 : - (void) setMissionMusic:(NSString *)missionMusicName; 70 0 : - (void) playMissionMusic; 71 : 72 0 : - (void) justStop; 73 0 : - (void) stop; 74 0 : - (void) stopMusicNamed:(NSString *)name; // Stop only if name == playingMusic 75 0 : - (void) stopThemeMusic; 76 0 : - (void) stopDockingMusic; 77 0 : - (void) stopMissionMusic; 78 : 79 0 : - (void) toggleDockingMusic; // Start docking music if none playing, stop docking music if currently playing docking music. 80 : 81 0 : - (OOSoundSource *) soundSource; 82 : 83 0 : - (NSString *) playingMusic; 84 0 : - (BOOL) isPlaying; 85 : 86 0 : - (OOMusicMode) mode; 87 0 : - (void) setMode:(OOMusicMode)mode; 88 : 89 : 90 : @end