author | rubidium |
Thu, 01 Feb 2007 15:49:12 +0000 | |
changeset 5893 | 7e431a4abebb |
parent 5587 | 167d9a91ef02 |
child 6247 | 7d81e3a5d803 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
0 | 3 |
#ifndef SOUND_H |
4 |
#define SOUND_H |
|
5 |
||
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
6 |
#include "helpers.hpp" |
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
7 |
|
0 | 8 |
typedef struct MusicFileSettings { |
9 |
byte playlist; |
|
10 |
byte music_vol; |
|
11 |
byte effect_vol; |
|
12 |
byte custom_1[33]; |
|
13 |
byte custom_2[33]; |
|
3052
ebb8c7a94e5f
(svn r3641) - Rename MusicFilesettings 'btn_down' to more sensible 'playing'
Darkvater
parents:
2186
diff
changeset
|
14 |
bool playing; |
0 | 15 |
bool shuffle; |
1584
7122e759d56c
(svn r2088) - Fix: [ 1155158 ] Make extmidi command a config option in addition to the compile-time MIDI switch. Patch by macbaine.
pasky
parents:
1496
diff
changeset
|
16 |
char extmidi[80]; |
0 | 17 |
} MusicFileSettings; |
18 |
||
19 |
VARDEF MusicFileSettings msf; |
|
20 |
||
4656
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
21 |
typedef struct FileEntry { |
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
22 |
uint32 file_offset; |
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
23 |
uint32 file_size; |
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
24 |
uint16 rate; |
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
25 |
uint8 bits_per_sample; |
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
26 |
uint8 channels; |
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
27 |
uint8 volume; |
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
28 |
uint8 priority; |
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
29 |
} FileEntry; |
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
30 |
|
1496
15d859a626e8
(svn r2000) Split the sound system into backend (mixer.[ch]) and frontend (sound.[ch])
tron
parents:
337
diff
changeset
|
31 |
bool SoundInitialize(const char *filename); |
4656
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
32 |
uint GetNumOriginalSounds(void); |
0 | 33 |
|
337
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
34 |
typedef enum SoundFx { |
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
35 |
SND_BEGIN = 0, |
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
36 |
SND_02_SPLAT = 0, // 0 == 0x00 ! |
337
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
37 |
SND_03_FACTORY_WHISTLE, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
38 |
SND_04_TRAIN, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
39 |
SND_05_TRAIN_THROUGH_TUNNEL, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
40 |
SND_06_SHIP_HORN, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
41 |
SND_07_FERRY_HORN, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
42 |
SND_08_PLANE_TAKE_OFF, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
43 |
SND_09_JET, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
44 |
SND_0A_TRAIN_HORN, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
45 |
SND_0B_MINING_MACHINERY, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
46 |
SND_0C_ELECTRIC_SPARK, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
47 |
SND_0D_STEAM, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
48 |
SND_0E_LEVEL_CROSSING, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
49 |
SND_0F_VEHICLE_BREAKDOWN, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
50 |
SND_10_TRAIN_BREAKDOWN, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
51 |
SND_11_CRASH, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
52 |
SND_12_EXPLOSION, // 16 == 0x10 |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
53 |
SND_13_BIG_CRASH, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
54 |
SND_14_CASHTILL, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
55 |
SND_15_BEEP, // 19 == 0x13 |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
56 |
SND_16_MORSE, // 20 == 0x14 |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
57 |
SND_17_SKID_PLANE, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
58 |
SND_18_HELICOPTER, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
59 |
SND_19_BUS_START_PULL_AWAY, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
60 |
SND_1A_BUS_START_PULL_AWAY_WITH_HORN, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
61 |
SND_1B_TRUCK_START, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
62 |
SND_1C_TRUCK_START_2, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
63 |
SND_1D_APPLAUSE, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
64 |
SND_1E_OOOOH, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
65 |
SND_1F_SPLAT, // 29 == 0x1D |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
66 |
SND_20_SPLAT_2, // 30 == 0x1E |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
67 |
SND_21_JACKHAMMER, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
68 |
SND_22_CAR_HORN, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
69 |
SND_23_CAR_HORN_2, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
70 |
SND_24_SHEEP, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
71 |
SND_25_COW, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
72 |
SND_26_HORSE, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
73 |
SND_27_BLACKSMITH_ANVIL, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
74 |
SND_28_SAWMILL, // 38 == 0x26 ! |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
75 |
SND_00_GOOD_YEAR, // 39 == 0x27 ! |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
76 |
SND_01_BAD_YEAR, // 40 == 0x28 ! |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
77 |
SND_29_RIP, // 41 == 0x29 ! |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
78 |
SND_2A_EXTRACT_AND_POP, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
79 |
SND_2B_COMEDY_HIT, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
80 |
SND_2C_MACHINERY, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
81 |
SND_2D_RIP_2, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
82 |
SND_2E_EXTRACT_AND_POP, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
83 |
SND_2F_POP, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
84 |
SND_30_CARTOON_SOUND, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
85 |
SND_31_EXTRACT, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
86 |
SND_32_POP_2, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
87 |
SND_33_PLASTIC_MINE, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
88 |
SND_34_WIND, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
89 |
SND_35_COMEDY_BREAKDOWN, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
90 |
SND_36_CARTOON_CRASH, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
91 |
SND_37_BALLOON_SQUEAK, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
92 |
SND_38_CHAINSAW, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
93 |
SND_39_HEAVY_WIND, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
94 |
SND_3A_COMEDY_BREAKDOWN_2, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
95 |
SND_3B_JET_OVERHEAD, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
96 |
SND_3C_COMEDY_CAR, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
97 |
SND_3D_ANOTHER_JET_OVERHEAD, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
98 |
SND_3E_COMEDY_CAR_2, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
99 |
SND_3F_COMEDY_CAR_3, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
100 |
SND_40_COMEDY_CAR_START_AND_PULL_AWAY, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
101 |
SND_41_MAGLEV, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
102 |
SND_42_LOON_BIRD, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
103 |
SND_43_LION, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
104 |
SND_44_MONKEYS, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
105 |
SND_45_PLANE_CRASHING, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
106 |
SND_46_PLANE_ENGINE_SPUTTERING, |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
107 |
SND_47_MAGLEV_2, |
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
108 |
SND_48_DISTANT_BIRD, // 72 == 0x48 |
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
109 |
SND_END |
337
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
110 |
} SoundFx; |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
111 |
|
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
112 |
/** Define basic enum properties */ |
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
113 |
template <> struct EnumPropsT<SoundFx> : MakeEnumPropsT<SoundFx, byte, SND_BEGIN, SND_END, SND_END> {}; |
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
114 |
typedef TinyEnumT<SoundFx> SoundFxByte; |
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
115 |
|
337
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
116 |
void SndPlayTileFx(SoundFx sound, TileIndex tile); |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
117 |
void SndPlayVehicleFx(SoundFx sound, const Vehicle *v); |
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
118 |
void SndPlayFx(SoundFx sound); |
4656
9c1d8c4d3e60
(svn r6532) - Feature: Add support for NewGRF sound effects. Currently sound priority isn't supported.
peter1138
parents:
3052
diff
changeset
|
119 |
void SndCopyToPool(void); |
337
cbe0c766c947
(svn r513) Merge revisions 402, 416, 417, 478, 479, 511, 512 from map to trunk
tron
parents:
0
diff
changeset
|
120 |
|
0 | 121 |
#endif /* SOUND_H */ |