1 /*************************************************************************** 2 sound.h - description 3 ------------------- 4 begin : Fri Jul 21 2000 5 copyright : (C) 2000 by Immi 6 email : cuyo@pcpool.mathematik.uni-freiburg.de 7 8 Modified 2003,2004,2006,2011 by the cuyo developers 9 10 ***************************************************************************/ 11 12 /*************************************************************************** 13 * * 14 * This program is free software; you can redistribute it and/or modify * 15 * it under the terms of the GNU General Public License as published by * 16 * the Free Software Foundation; either version 2 of the License, or * 17 * (at your option) any later version. * 18 * * 19 ***************************************************************************/ 20 21 #ifndef SOUND_H 22 #define SOUND_H 23 24 25 class Str; 26 27 /* Wichtig: include inkompatibel.h muss _vor_ dem nachfolgenden stehen. */ 28 #ifdef CUYO_SOUND 29 #include <mikmod.h> 30 #endif 31 32 /* Namen der Sample-Dateien stehen in sound.cpp */ 33 #define sample_nix (-1) 34 #define sample_links 0 35 #define sample_rechts 0 36 #define sample_dreh 1 37 #define sample_fall 2 38 #define sample_land 3 39 #define sample_explodier 4 40 #define sample_menuclick 5 41 #define sample_menuscroll 6 42 #define sample_levelwin 7 43 #define sample_levelloose 8 44 45 #define fix_sample_anz 9 46 47 #define spieler_niemand 2 48 49 enum SoundOrt { 50 so_fenster, 51 so_lfeld, /* auch bei Einzelspieler */ 52 so_rfeld, 53 so_lsemi, 54 so_rsemi, 55 so_global 56 }; 57 58 namespace Sound { 59 60 void init(); 61 void destroy(); 62 63 /** Sollte aufgerufen werden, wenn sich Pref->sound 64 m�glicherweise ge�ndert hat */ 65 void checkePrefsStatus(); 66 67 68 /** Spielt die angegebene Mod-Datei immer wieder ab. 69 Bei na = "" wird nix abgespielt. */ 70 void setMusic(Str na); 71 72 /** L�dt den angegebenen Sample und liefert eine Nummer zur�ck, 73 mit dem man ihn abspielen kann. */ 74 int ladSample(Str na); 75 76 /** Gibt alle Samples wieder frei, die mit ladSample geladen worden 77 sind, au�er die, die init() geladen hat. Sollte nach Levelende 78 aufgerufen werden, wenn die Levelsounds nicht mehr gebraucht werden. 79 (Aber erst, wenn die ld-Dateien einzeln geladen werden.) */ 80 void loescheUserSamples(); 81 82 /** Spielt das Sample mit der angegebenen Nummer (die entweder eine 83 der obigen Konstanten ist oder von ladSample zur�ckgeliefert wurde). 84 so,xz,xn bestimmen die x-Position f�r Stereo-Effekte. 85 Dabei ist xz/xn ein Bruch, 0 f�r den linken und 1 f�r den rechten 86 Rand von so. Bei so=so_global werden xz und xn ignoriert. */ 87 void playSample(int nr, SoundOrt so, int xz=1, int xn=2); 88 89 } 90 91 #endif 92