Wing Commander
Reconstructed Win32 source (1996)
Loading...
Searching...
No Matches
ix.h
Go to the documentation of this file.
1/**
2 * @file
3 * @ingroup ixlib
4 * @brief The library's classes and shared declarations.
5 *
6 * ix is Origin Systems' audio library, in C++; its development tree was
7 * `D:\Rnd\Prj\ix`. The shipped debug build preserves assert `__FILE__` and
8 * `__LINE__` anchors for most of its source files, but they do not establish
9 * every object boundary; linker INT3 fill and library order do. In link
10 * order:
11 *
12 * ixlog.cpp 4426a0-44274f
13 * streamer.cpp 442750-443b0f
14 * thread.cpp 443b10-4446ff
15 * streamfile.cpp 444700-44490f
16 * dsp.cpp 444910-44518f
17 * dsps.cpp 445190-445f5f
18 * mixer.cpp 445f60-44679f
19 * dspv.cpp 4467a0-446f73
20 * dspmix.asm 446f74-4471ff
21 * system.cpp 447200-447a1f
22 * sound.cpp 447a20-4486af
23 * sample.cpp 4486b0-4492c5
24 * lzo1x.cpp 4614c0-46162f
25 * ixfile.cpp 461630-4617bf
26 *
27 * The static debug CRT follows from 4492e0; LINK's second library pass
28 * places the LZO decoder and the file module between two of its members.
29 */
30#ifndef IX_H
31#define IX_H
32
33#include <windows.h> /* CRITICAL_SECTION, used by the stream/voice state below */
34#include <stdio.h> /* FILE, held by developer-mode stream-file objects */
35
36/* --------------------------------------------------------------------------
37 * Diagnostics. Every ix module reports through this one variadic printer, and
38 * the calls come in pairs:
39 * ix_log_printf("Fatal [%s - %d]:\n", __FILE__, __LINE__);
40 * ix_log_printf("human readable message");
41 * Fatal paths then call exit(-1). 107 call sites; keep __FILE__/__LINE__
42 * accurate, they are the module map.
43 * -------------------------------------------------------------------------- */
44void ix_log_printf(const char *fmt, ...); /* 0x004426A0 */
45
46/* --------------------------------------------------------------------------
47 * DSP voice. Array at 0x005981A8, stride 32 bytes; count at 0x00598600.
48 * Field offsets are confirmed from the accessor bodies.
49 * -------------------------------------------------------------------------- */
52 IX_VOICE_FLAG4 = 0x04, /* set elsewhere; meaning not yet established */
53 IX_VOICE_16BIT = 0x08, /* set by ix_dspv_set_bits_per_sample(16) */
54 IX_VOICE_STEREO = 0x10 /* set by ix_dspv_set_channels(2) */
55};
56
57extern "C" void ix_dspv_mix(void *outputBuffer, unsigned int outputBytes); /* 0x00446F74 */
58
59/* Private state makes these records non-aggregate. VC++ 4.20 then emits the
60 * empty $E2/$E1 initializer pair for each global array, including its CRT
61 * registration. An explicit constructor instead emits calls absent from the
62 * original. The existing free functions retain access through friendship. */
63struct IxVoice { /* 32 bytes; offsets confirmed from the accessors */
64private:
65 unsigned int flags; /* +0x00 */
66 unsigned char *cursor; /* +0x04 current read pointer */
67 unsigned char *start; /* +0x08 buffer start */
68 unsigned char *end; /* +0x0C buffer end */
69 short field_10; /* +0x10 not yet identified */
70 short rate; /* +0x12 (freq << 8) / 22050 */
71 unsigned short volume; /* +0x14 */
72 unsigned char leftGainHi; /* +0x16 high byte of leftGain */
73 unsigned char rightGainHi; /* +0x17 high byte of rightGain */
74 short leftGain; /* +0x18 */
75 short rightGain; /* +0x1A */
76 short panAngle; /* +0x1C 0..0x7F, wraps at +-0x40 */
77 short panPos; /* +0x1E 0..0xFF, indexes the pan table */
78
79 friend void ix_dspv_set_active(int);
80 friend void ix_dspv_clear_active(int);
81 friend void ix_dspv_clear_flag4(int);
82 friend unsigned int ix_dspv_get_flags(int);
83 friend void ix_dspv_set_flag4(int, int);
84 friend void ix_dspv_set_buffer(int, unsigned char *, int);
85 friend int ix_dspv_get_position(int);
86 friend void ix_dspv_set_position(int, int);
87 friend void ix_dspv_set_volume(int, short);
88 friend void ix_dspv_set_pan(int, unsigned short);
89 friend void ix_dspv_set_frequency(int, unsigned int);
90 friend void ix_dspv_set_bits_per_sample(int, int);
91 friend void ix_dspv_set_channels(int, int);
92 friend void ix_dspv_recalc_mix(int);
93 friend void ix_dspv_mix(void *, unsigned int);
94 friend void ix_dsp_set_master_volume(unsigned short);
95 friend void ix_dsps_alloc(int, unsigned int, int, int, int);
96 friend void ix_dsps_prepare(int);
97 friend void ix_dsps_play(int);
98 friend void ix_dsps_stop(int);
99 friend void ix_dsps_set_volume(int, unsigned short);
100 friend int ix_dsps_get_buffer_free(int);
101};
102
103/* Voice and stream counts, defined by dspv.cpp and dsps.cpp. */
104extern int nVoiceCount; /* 0x00598600 */
105extern int nStreamCount; /* 0x00598130 */
106
107/* Sample and sound layouts are fixed by system.cpp/sound.cpp field accesses. */
108struct IxSample {
109 unsigned int flags; /* +0x00 */
110 unsigned char *buffer; /* +0x04 */
111 unsigned int sampleCount; /* +0x08 */
112 unsigned int bitsPerSample; /* +0x0C */
113 unsigned int channels; /* +0x10 */
114 unsigned int bytesPerFrame; /* +0x14 */
115 unsigned int rateNumerator; /* +0x18 */
116 unsigned int rateDenominator; /* +0x1C */
117 unsigned int frequency; /* +0x20 */
118 unsigned int loopStart; /* +0x24 */
119 unsigned int loopEnd; /* +0x28 */
120 IxSample *previous; /* +0x2C */
121 IxSample *next; /* +0x30 */
122
123 void ix_sample_construct(void);
124 void ix_sample_destruct(void);
125 int ix_sample_load_aiff(void *data, int bytes);
126 int ix_sample_load_wav(void *data, int bytes);
127 int ix_sample_load_raw(void *data, int bytes, int frequency,
128 int bitsPerSample, int channels);
129 long ix_sample_convert_from_ieee_extended(unsigned char *bytes);
130};
131
133 IX_SAMPLE_READY = 0x00000001,
134 IX_SAMPLE_LOOPING = 0x00000002,
135 IX_SAMPLE_LOADING = 0x80000000
136};
137
149
150struct IxSound {
151 unsigned int flags; /* +0x00 */
152 IxSample *sample; /* +0x04 */
153 int voice; /* +0x08 */
154 unsigned int startTime; /* +0x0C */
155 unsigned int stopTime; /* +0x10 */
156 unsigned int priority; /* +0x14 */
157 int pitchOffset; /* +0x18 */
158 unsigned short volume; /* +0x1C */
159 unsigned short pan; /* +0x1E */
160 unsigned char basePriority; /* +0x20 */
161 IxSound *previous; /* +0x24 */
162 IxSound *next; /* +0x28 */
163
164 void ix_system_sound_init(IxSample *newSample,
165 unsigned char newBasePriority,
166 unsigned int initialVolume,
167 int newPitchOffset,
168 unsigned short newPan);
169 void ix_system_sound_construct(IxSample *newSample,
170 unsigned char newBasePriority);
172 void ix_system_sound_set_volume(unsigned short newVolume);
173 void ix_system_sound_set_pan(unsigned short newPan);
174 void ix_system_sound_set_frequency(int newPitchOffset);
175 void ix_system_sound_set_priority(unsigned char newBasePriority);
176 void ix_sound_reprioritise(void);
177 void ix_sound_set_delete_on_stop(int enabled);
178};
179
180
181/* Sound-system state (system.cpp). The voice counts and list heads come
182 * first: VC++ 4.20 orders the sound member's list-head comparisons by these
183 * declaration positions. */
184extern IxSound *pIdleSoundList; /* 0x0059860C */
185extern IxSound *pPlayingSoundList; /* 0x0059861C */
186extern IxSound *pQueuedSoundList; /* 0x00598620 */
187extern int nActiveVoices; /* 0x00598614 */
188extern int nSystemVoices; /* 0x00598618 */
189extern unsigned int dwSoundStateFlags; /* 0x00598608 */
190extern IxSample *pSamples; /* 0x00598610 */
191
192extern void *(__cdecl *pIxMalloc)(unsigned int);
193extern void (__cdecl *pIxFree)(void *);
194
195/* Master volume and the stereo pan table (two shorts per position). */
196extern unsigned short nMasterVolume; /* 0x0047198C */
197extern short asPanGains[]; /* 0x00597D28 */
198extern CRITICAL_SECTION csMixer; /* 0x005985E8 */
199
200#define IX_MIXER_BASE_RATE 22050 /* 0x5622, the divisor in set_frequency */
201
202/* The ix source tree lived on D: -- each assert site carries its own copy of
203 * this literal (the build did not use /Gf, so identical strings are not
204 * merged; writing it out per site is what matches). */
205#define IX_DSPV_FILE "D:\\rnd\\prj\\ix\\win95\\dsp\\dspv.cpp"
206
207void ix_dspv_set_active(int voice); /* 0x004467C5 flags |= ACTIVE */
208void ix_dspv_clear_active(int voice); /* 0x00446829 flags &= ~ACTIVE */
209void ix_dspv_clear_flag4(int voice); /* 0x0044688E */
210unsigned int ix_dspv_get_flags(int voice); /* 0x004468F2 */
211void ix_dspv_set_buffer(int voice, unsigned char *p, int len); /* 0x0044698F */
212int ix_dspv_get_position(int voice); /* 0x00446A2B cursor - start */
213void ix_dspv_set_position(int voice, int off); /* 0x00446AA0 cursor = start + off */
214void ix_dspv_set_volume(int voice, short vol); /* 0x00446B18 */
215void ix_dspv_set_pan(int voice, unsigned short a); /* 0x00446B8C */
216void ix_dspv_set_frequency(int voice, unsigned int hz); /* 0x00446CB1 */
217void ix_dspv_set_bits_per_sample(int voice, int bps); /* 0x00446D2C 8 or 16 */
218void ix_dspv_set_channels(int voice, int ch); /* 0x00446DF5 1 or 2 */
219void ix_dspv_set_flag4(int voice, int on); /* 0x00446956 */
220void ix_dspv_recalc_mix(int voice); /* 0x00446EBF */
221
222/* --------------------------------------------------------------------------
223 * DSP stream. Array at 0x00598138, stride 0x38; count at 0x00598130.
224 * Streams occupy voice slots AFTER the regular voices:
225 * voice[voice_count + stream_index].
226 * -------------------------------------------------------------------------- */
232
233struct IxStream { /* 0x38 bytes */
234private:
235 unsigned int flags; /* +0x00 */
236 unsigned char *buffer; /* +0x04 */
237 unsigned int size; /* +0x08 */
238 unsigned int writePos; /* +0x0C */
239 unsigned int playPos; /* +0x10 */
240 int pending; /* +0x14, negative after an underrun */
241 unsigned char *lockPtr; /* +0x18 */
242 int lockLen; /* +0x1C */
243 CRITICAL_SECTION cs; /* +0x20, 24 bytes */
244
245 friend void ix_dsps_alloc(int, unsigned int, int, int, int);
246 friend void ix_dsps_free(int);
247 friend void ix_dsps_prepare(int);
248 friend void ix_dsps_play(int);
249 friend void ix_dsps_stop(int);
250 friend void ix_dsps_set_volume(int, unsigned short);
251 friend unsigned int ix_dsps_get_flags(int);
252 friend int ix_dsps_get_buffer_free(int);
253 friend void ix_dsps_lock(int, unsigned int,
254 unsigned char **, unsigned int *);
255 friend void ix_dsps_unlock(int);
256};
257
258
259extern IxStream streams[]; /* 0x00598138 */
260extern int nAllocatedStreams; /* 0x00598134 */
261
262extern IxVoice aVoices[]; /* 0x005981A8 */
263extern int nVoicesAllocated; /* 0x00598604 */
264
265#define IX_DSPS_FILE "D:\\rnd\\prj\\ix\\win95\\dsp\\dsps.cpp"
266void ix_dsps_alloc(int stream, unsigned int size, int frequency,
267 int bitsPerSample, int channels); /* 0x004451B5 */
268void ix_dsps_free(int stream); /* 0x0044546B */
269void ix_dsps_prepare(int stream); /* 0x00445582 */
270void ix_dsps_play(int stream); /* 0x004456D8 */
271void ix_dsps_stop(int stream); /* 0x00445808 */
272void ix_dsps_set_volume(int stream, unsigned short vol); /* 0x00445906 */
273unsigned int ix_dsps_get_flags(int stream); /* 0x00445A0B */
274int ix_dsps_get_buffer_free(int stream); /* 0x00445A6F */
275void ix_dsps_lock(int stream, unsigned int requestedBytes,
276 unsigned char **buffer, unsigned int *lockedBytes); /* 0x00445CDB */
277void ix_dsps_unlock(int stream); /* 0x00445E3C */
278
279
280/* --------------------------------------------------------------------------
281 * Mixer (DirectSound), DSP core, system, sound, sample.
282 * -------------------------------------------------------------------------- */
283DWORD WINAPI ix_mixer_thread_proc(void *parameter); /* 0x00445F60 */
284int ix_mixer_service(void); /* 0x004463FC */
285const char *ix_dsp_result_to_text(int hr); /* 0x00444F97 */
286
287int ix_dsp_init(void); /* 0x00444910 */
288void ix_dsp_shutdown(void); /* 0x004449CF */
289void ix_dsp_configure(int option, void *value); /* 0x00444A62 */
290unsigned int ix_dsp_get_tick(void); /* 0x00444BFD */
291unsigned int ix_dsp_get_flags(void); /* 0x00444C12 */
292void ix_dsp_set_config_bit1(int enabled); /* 0x00444C27 */
293void ix_dsp_set_config_bit3(int enabled); /* 0x00444C54 */
294int ix_dsp_get_voice_count(void); /* 0x00444C81 */
295void ix_dsp_set_voice_count(int n); /* 0x00444C96 */
296int ix_dsp_get_stream_count(void); /* 0x00444D18 */
297void ix_dsp_set_stream_count(int n); /* 0x00444D2D */
298unsigned short ix_dsp_get_master_volume(void); /* 0x00444DAF */
299void ix_dsp_set_master_volume(unsigned short vol); /* 0x00444DC5 */
300void ix_dsp_build_pan_tables(void); /* 0x00444E52 */
301void *ix_dsp_alloc(unsigned int bytes); /* 0x00445123 */
302void *ix_dsp_copy(void *destination, const void *source,
303 unsigned int bytes); /* 0x00445140 */
304void ix_dsp_free(void *memory); /* 0x00445164 */
305
306extern "C" int ix_system_init(void); /* 0x00447200 */
307extern "C" void ix_system_service_sounds(void); /* 0x004472A7 */
308extern "C" void ix_system_shutdown(void); /* 0x004473F3 */
309extern "C" void ix_system_configure(int option, void *value); /* 0x00447426 */
310extern "C" unsigned short ix_system_get_master_volume(void); /* 0x00447446 */
311extern "C" void ix_system_set_master_volume(unsigned short vol); /* 0x0044745B */
312extern "C" int ix_system_get_voice_count(void); /* 0x00447477 */
313extern "C" void ix_system_set_voice_count(int n); /* 0x0044748C */
314extern "C" IxSample *ix_system_new_sample(void); /* 0x004474E3 */
315extern "C" void ix_system_delete_sample(IxSample *sample); /* 0x00447519 */
316extern "C" void ix_system_delete_all_samples(void); /* 0x00447548 */
317extern "C" IxSound *ix_system_new_sound(IxSample *sample); /* 0x0044758D */
318extern "C" void ix_system_delete_sound(IxSound *sound); /* 0x004475C7 */
319extern "C" void ix_system_delete_all_sounds(void); /* 0x00447610 */
320int ix_system_release_voice(IxSound *sound); /* 0x004476B9 */
321void ix_system_assign_voice(IxSound *sound, int voice); /* 0x004476FA */
323 unsigned int minimumPriority); /* 0x00447921 */
325 unsigned int maximumPriority); /* 0x00447974 */
326int ix_system_find_free_voice(void); /* 0x004479C7 */
327
328extern "C" void __fastcall ix_sound_start(IxSound *sound); /* 0x00447CD8 */
329extern "C" void __fastcall ix_sound_release(IxSound *sound); /* 0x0044801E */
330void __fastcall ix_sound_unlink_from_free_list(IxSound *sound); /* 0x00447B7A */
331extern "C" void __fastcall ix_sound_stop(IxSound *sound); /* 0x004480CF */
332extern "C" int __fastcall ix_sound_is_playing(IxSound *sound); /* 0x00448678 */
333
334/* --------------------------------------------------------------------------
335 * Streamer. Global state word at 0x00597CD0; wake event at 0x00597CD4.
336 * bit2 0x004 playing bit3 0x008 paused
337 * bit7 0x080 has audio bit10 0x400 request flag (meaning TBD)
338 * -------------------------------------------------------------------------- */
343
358
360 unsigned int id; /* +0x00 */
361 unsigned int version; /* +0x04 */
362 unsigned char channels; /* +0x08 */
363 unsigned char bitsPerSample; /* +0x09 */
364 unsigned short frequency; /* +0x0A */
365 unsigned int audioBufferSize; /* +0x0C */
366 unsigned int dspConfigValue; /* +0x10 */
367 unsigned int audioChunkTableOffset; /* +0x14 */
368 unsigned int audioChunkCount; /* +0x18 */
369 unsigned int branchTableOffset; /* +0x1C */
370 unsigned int branchCount; /* +0x20 */
371 unsigned int triggerTableOffset; /* +0x24 */
372 unsigned int triggerCount; /* +0x28 */
373 unsigned int fileBufferSize; /* +0x2C */
374 unsigned int fileEntryTableOffset; /* +0x30 */
375 unsigned int fileEntryCount; /* +0x34 */
376 unsigned int fileChunkTableOffset; /* +0x38 */
377 unsigned int fileChunkCount; /* +0x3C */
378 unsigned int packetTableOffset; /* +0x40 */
379 unsigned int packetCount; /* +0x44 */
380 unsigned int reserved_48; /* +0x48 */
381 unsigned int reserved_4c; /* +0x4C */
382 unsigned int reserved_50; /* +0x50 */
383 unsigned int reserved_54; /* +0x54 */
384 unsigned int reserved_58; /* +0x58 */
385 unsigned int reserved_5c; /* +0x5C */
386 unsigned int reserved_60; /* +0x60 */
387 unsigned int reserved_64; /* +0x64 */
388};
389
391 unsigned int nameHash; /* +0x00 */
392 unsigned int size; /* +0x04 */
393 unsigned int chunkCount; /* +0x08 */
394 unsigned int firstChunk; /* +0x0C */
395};
396
398 unsigned int fileOffset; /* +0x00 */
399 unsigned int fileEnd; /* +0x04 */
400 unsigned int triggerCount; /* +0x08 */
401 unsigned int firstTrigger; /* +0x0C */
402 unsigned int branchCount; /* +0x10 */
403 unsigned int firstBranch; /* +0x14 */
404};
405
406#pragma pack(push, 1)
408 unsigned char intensity; /* +0x00 */
409 unsigned int audioChunk; /* +0x01 */
410};
411
413 unsigned char tag; /* +0x00 */
414 unsigned int audioChunk; /* +0x01 */
415};
416#pragma pack(pop)
417
419 int packedSize; /* +0x00, negative means compressed */
420 unsigned int fileOffset; /* +0x04 */
421 unsigned int fileEnd; /* +0x08 */
422 unsigned int packetCount; /* +0x0C */
423 unsigned int firstPacket; /* +0x10 */
424};
425
427 unsigned int flags; /* +0x00 */
428 IxStreamerFileEntry *entry; /* +0x04, packed-stream mode */
429 FILE *file; /* +0x08, developer mode */
430 unsigned int size; /* +0x0C */
431 unsigned char priority; /* +0x10 */
432 unsigned int serviceTick; /* +0x14 */
433 unsigned int position; /* +0x18 */
434 unsigned int remaining; /* +0x1C */
435 unsigned char *destination; /* +0x20 */
436 HANDLE completionEvent; /* +0x24 */
437 IxStreamFile *previous; /* +0x28 */
438 IxStreamFile *next; /* +0x2C */
439
440 unsigned int ix_stream_file_read(void *destination,
441 unsigned int bytes);
442 void ix_stream_file_seek(unsigned int position);
443 unsigned int ix_stream_file_tell(void);
444 unsigned int ix_stream_file_size(void);
445 void ix_stream_file_wait(void);
447};
448
449extern "C" int ix_streamer_init(void); /* 0x00442750 */
450extern "C" void ix_streamer_destroy(void); /* 0x0044286F */
451extern "C" void ix_streamer_configure(int option, void *value); /* 0x0044291E */
452void ix_streamer_set_dev_mode(int mode); /* 0x0044293E */
453extern "C" int ix_streamer_open_stream_file(char *path); /* 0x004429B6 */
454extern "C" void ix_streamer_close_stream_file(void); /* 0x0044307A */
455extern "C" void ix_streamer_audio_play(void); /* 0x004431F3 */
456extern "C" void ix_streamer_audio_stop(void); /* 0x00443253 */
457void ix_streamer_audio_pause(void); /* 0x004432B6 */
458void ix_streamer_audio_reprepare(void); /* 0x0044330F */
459extern "C" void ix_streamer_set_intensity(unsigned char intensity); /* 0x0044336B */
460unsigned char ix_streamer_get_intensity(void); /* 0x004433AC */
461extern "C" void ix_streamer_set_trigger(char trigger); /* 0x004433C1 */
462extern "C" char ix_streamer_get_trigger(void); /* 0x00443419 */
463extern "C" void ix_streamer_force_trigger(char trigger); /* 0x0044342E */
464extern "C" void ix_streamer_set_volume(unsigned short vol); /* 0x004435BE */
465extern "C" unsigned short ix_streamer_get_volume(void); /* 0x0044363B */
466unsigned int ix_streamer_get_audio_chunk(void); /* 0x00443651 */
467void ix_streamer_seek_chunk(unsigned int chunk); /* 0x00443666 */
468unsigned int ix_streamer_hash_name(unsigned char *name); /* 0x004436C0 */
469IxStreamerFileEntry *ix_streamer_find_entry(unsigned int hash); /* 0x00443755 */
470unsigned int ix_streamer_service_audio(void); /* 0x00443CC0 */
471IxStreamFile *ix_streamer_open_file(unsigned char *name,
472 unsigned char priority); /* 0x004437E3 */
473void ix_streamer_close_file(IxStreamFile *streamFile); /* 0x00443A5D */
474DWORD WINAPI ix_streamer_thread_proc(void *parameter); /* 0x00443B10 */
475
476void ix_thread_handle_file_chunk(IxStreamFile *streamFile); /* 0x00443DA6 */
477unsigned int ix_thread_service_streams(void); /* 0x004441C6 */
478void ix_thread_advance_audio_chunk(void); /* 0x00444316 */
479void ix_thread_lock_stream_buffer(void); /* 0x004445C9 */
480unsigned int ix_thread_get_audio_chunk_size(void); /* 0x004446A6 */
481extern "C" void ix_lzo1x_decompress(unsigned char *source,
482 unsigned char *destination,
483 unsigned int destinationBytes); /* 0x004614C0 */
484extern "C" void ix_file_init_hook(void); /* 0x00461630 */
485extern "C" void ix_file_shutdown_hook(void); /* 0x00461640 */
486extern "C" FILE *ix_file_open(const char *path,
487 int mode); /* 0x00461650 */
488extern "C" void ix_file_close(FILE *file); /* 0x004616BE */
489extern "C" void ix_file_seek(FILE *file, long position); /* 0x004616DA */
490extern "C" long ix_file_tell(FILE *file); /* 0x004616FC */
491extern "C" unsigned int ix_file_read(FILE *file, void *destination,
492 unsigned int bytes); /* 0x00461718 */
493extern "C" unsigned int ix_file_write(FILE *file, const void *source,
494 unsigned int bytes); /* 0x0046173E */
495extern "C" long ix_file_size(FILE *file); /* 0x00461764 */
496
497
498/* Streamer state. */
499extern unsigned int *pStreamerPacketOffsetTable;
500extern unsigned int dwStreamThreadTick;
501extern FILE *pStreamerPackFile;
503extern unsigned int adwStreamCallStack[32];
504extern unsigned char *pStreamerLzoBuffer;
506extern unsigned int dwIxStreamerAudioBufferSize;
507extern unsigned char *pIxStreamerInputBuffer;
508extern unsigned char bStreamerIntensityLevel;
509extern HANDLE hStreamThread;
514/* This order preserves thread.cpp's cached-chunk comparison operands. */
515extern unsigned int nIxStreamerCurrentFileChunk; /* 0x00597CD8 */
517extern CRITICAL_SECTION csStreamerFileList;
518extern CRITICAL_SECTION csIxStreamerThread;
519extern unsigned int nStreamerAudioBlock;
520extern DWORD dwIxStreamerThreadId;
521extern "C" unsigned int dwIxStreamerStatus;
522extern HANDLE hStreamerWakeupEvent;
523extern unsigned int dwStreamBytesPerSecond;
524extern unsigned short nStreamerVolume;
525extern char cStreamerBranchTag;
526extern unsigned int nStreamCallStackIndex;
527extern CRITICAL_SECTION csStreamer;
529
530#endif /* IX_H */
void ix_dsp_build_pan_tables(void)
Definition dsp.cpp:229
int ix_dsp_get_stream_count(void)
Definition dsp.cpp:185
int ix_dsp_init(void)
Definition dsp.cpp:35
short asPanGains[512]
Definition dsp.cpp:30
void ix_dsp_configure(int option, void *value)
Definition dsp.cpp:77
int ix_dsp_get_voice_count(void)
Definition dsp.cpp:164
void ix_dsp_set_stream_count(int streamCount)
Definition dsp.cpp:191
unsigned int ix_dsp_get_tick(void)
Definition dsp.cpp:134
void(__cdecl *pIxFree)(void *)
void ix_dsp_shutdown(void)
Definition dsp.cpp:58
unsigned int ix_dsp_get_flags(void)
Definition dsp.cpp:140
void ix_dsp_set_config_bit3(int enabled)
Definition dsp.cpp:155
void ix_dsp_set_voice_count(int voiceCount)
Definition dsp.cpp:170
void *__cdecl * pIxMalloc(unsigned int)
unsigned short nMasterVolume
Definition dsp.cpp:17
void ix_dsp_free(void *memory)
Definition dsp.cpp:311
unsigned short ix_dsp_get_master_volume(void)
Definition dsp.cpp:206
void ix_dsp_set_config_bit1(int enabled)
Definition dsp.cpp:146
void * ix_dsp_copy(void *destination, const void *source, unsigned int bytes)
Definition dsp.cpp:305
void ix_dsp_set_master_volume(unsigned short volume)
Definition dsp.cpp:212
const char * ix_dsp_result_to_text(int result)
Definition dsp.cpp:263
void * ix_dsp_alloc(unsigned int bytes)
Definition dsp.cpp:298
void ix_dsps_prepare(int stream)
Definition dsps.cpp:101
void ix_dsps_unlock(int stream)
Definition dsps.cpp:277
IxStream streams[2]
Definition dsps.cpp:19
int nAllocatedStreams
Definition dsps.cpp:18
int ix_dsps_get_buffer_free(int streamIndex)
Definition dsps.cpp:210
unsigned int ix_dsps_get_flags(int stream)
Definition dsps.cpp:199
void ix_dsps_free(int stream)
Definition dsps.cpp:80
void ix_dsps_stop(int stream)
Definition dsps.cpp:153
void ix_dsps_play(int stream)
Definition dsps.cpp:126
int nStreamCount
Definition dsps.cpp:17
void ix_dsps_alloc(int stream, unsigned int size, int freq, int bps, int channels)
Definition dsps.cpp:22
void ix_dsps_lock(int stream, unsigned int requestedBytes, unsigned char **buffer, unsigned int *lockedBytes)
Definition dsps.cpp:246
void ix_dsps_set_volume(int stream, unsigned short vol)
Definition dsps.cpp:175
void ix_dspv_set_channels(int voice, int channels)
Definition dspv.cpp:201
void ix_dspv_set_buffer(int voice, unsigned char *p, int len)
Definition dspv.cpp:79
unsigned int ix_dspv_get_flags(int voice)
Definition dspv.cpp:58
void ix_dspv_set_active(int voice)
Definition dspv.cpp:25
int nVoicesAllocated
Definition dspv.cpp:22
void ix_dspv_set_volume(int voice, short vol)
Definition dspv.cpp:122
void ix_dspv_set_flag4(int voice, int on)
Definition dspv.cpp:70
void ix_dspv_set_bits_per_sample(int voice, int bps)
Definition dspv.cpp:182
void ix_dspv_set_position(int voice, int off)
Definition dspv.cpp:109
void ix_dspv_set_pan(int voice, unsigned short angle)
Definition dspv.cpp:134
int ix_dspv_get_position(int voice)
Definition dspv.cpp:96
CRITICAL_SECTION csMixer
Definition dspv.cpp:20
void ix_dspv_clear_flag4(int voice)
Definition dspv.cpp:47
void ix_dspv_set_frequency(int voice, unsigned int hz)
Definition dspv.cpp:170
void ix_dspv_clear_active(int voice)
Definition dspv.cpp:36
int nVoiceCount
Definition dspv.cpp:21
void ix_dspv_recalc_mix(int voice)
Definition dspv.cpp:220
IxVoice aVoices[34]
Definition dspv.cpp:19
unsigned int dwIxStreamerStatus
Definition ix.h:521
unsigned int dwStreamBytesPerSecond
Definition streamer.cpp:42
unsigned short ix_system_get_master_volume(void)
Definition system.cpp:110
CRITICAL_SECTION csStreamer
Definition streamer.cpp:43
void ix_thread_handle_file_chunk(IxStreamFile *streamFile)
Definition thread.cpp:125
IxStreamFileFlags
Definition ix.h:339
@ IX_STREAM_FILE_OPEN
Definition ix.h:340
@ IX_STREAM_FILE_READING
Definition ix.h:341
void ix_file_close(FILE *file)
Definition ixfile.cpp:44
unsigned int * pStreamerPacketOffsetTable
Definition streamer.cpp:17
DWORD dwIxStreamerThreadId
Definition streamer.cpp:38
unsigned int ix_thread_get_audio_chunk_size(void)
Definition thread.cpp:402
void ix_streamer_close_file(IxStreamFile *streamFile)
Definition streamer.cpp:631
int ix_system_get_voice_count(void)
Definition system.cpp:122
int ix_system_find_free_voice(void)
Definition system.cpp:316
IxSound * pIdleSoundList
Definition system.cpp:15
IxSound * pPlayingSoundList
Definition system.cpp:19
FILE * ix_file_open(const char *path, int mode)
Definition ixfile.cpp:30
unsigned int ix_streamer_get_audio_chunk(void)
Definition streamer.cpp:497
unsigned int ix_streamer_hash_name(unsigned char *name)
Definition streamer.cpp:518
IxStreamerFileEntry * ix_streamer_find_entry(unsigned int hash)
Definition streamer.cpp:540
IxStreamFile * pStreamIdleFiles
Definition streamer.cpp:22
IxStreamerAudioChunk * pStreamedMusicAudioChunks
Definition streamer.cpp:32
unsigned int ix_file_write(FILE *file, const void *source, unsigned int bytes)
Definition ixfile.cpp:69
void ix_thread_advance_audio_chunk(void)
Definition thread.cpp:289
int ix_mixer_service(void)
Definition mixer.cpp:157
IxSample * pSamples
Definition system.cpp:16
IxStreamerFileEntry * pStreamFileEntries
Definition streamer.cpp:30
void ix_streamer_audio_reprepare(void)
Definition streamer.cpp:374
FILE * pStreamerPackFile
Definition streamer.cpp:21
unsigned int ix_file_read(FILE *file, void *destination, unsigned int bytes)
Definition ixfile.cpp:62
void ix_streamer_audio_pause(void)
Definition streamer.cpp:362
unsigned int nIxStreamerCurrentFileChunk
Definition streamer.cpp:41
IxSampleFlags
Definition ix.h:132
@ IX_SAMPLE_READY
Definition ix.h:133
@ IX_SAMPLE_LOOPING
Definition ix.h:134
@ IX_SAMPLE_LOADING
Definition ix.h:135
void ix_thread_lock_stream_buffer(void)
Definition thread.cpp:372
unsigned int dwSoundStateFlags
Definition system.cpp:14
unsigned int ix_streamer_service_audio(void)
Definition thread.cpp:97
unsigned int dwIxStreamerAudioBufferSize
Definition streamer.cpp:26
void ix_log_printf(const char *fmt,...)
Definition ixlog.cpp:32
void ix_dspv_mix(void *outputBuffer, unsigned int outputBytes)
void ix_file_seek(FILE *file, long position)
Definition ixfile.cpp:50
long ix_file_tell(FILE *file)
Definition ixfile.cpp:56
unsigned int dwStreamThreadTick
Definition streamer.cpp:18
void ix_streamer_seek_chunk(unsigned int chunk)
Definition streamer.cpp:503
IxStreamerTrigger * pStreamTriggerList
Definition streamer.cpp:44
unsigned char * pIxStreamerInputBuffer
Definition streamer.cpp:27
char cStreamerBranchTag
Definition streamer.cpp:47
IxStreamFlags
Definition ix.h:227
@ IX_STREAM_LOCKED
Definition ix.h:230
@ IX_STREAM_ALLOCATED
Definition ix.h:228
@ IX_STREAM_PLAYING
Definition ix.h:229
IxStreamerFileChunk * pStreamFileBlocks
Definition streamer.cpp:34
unsigned int adwStreamCallStack[32]
Definition streamer.cpp:23
void ix_streamer_set_dev_mode(int mode)
Definition streamer.cpp:108
DWORD WINAPI ix_streamer_thread_proc(void *parameter)
Definition thread.cpp:22
IxSound * ix_system_find_lowest_playing(IxSound *sound, unsigned int maximumPriority)
Definition system.cpp:300
int ix_system_release_voice(IxSound *sound)
Definition system.cpp:222
void ix_file_init_hook(void)
Definition ixfile.cpp:20
IxSound * ix_system_find_highest_waiting(IxSound *sound, unsigned int minimumPriority)
Definition system.cpp:284
unsigned char ix_streamer_get_intensity(void)
Definition streamer.cpp:396
IxStreamFile * ix_streamer_open_file(unsigned char *name, unsigned char priority)
Definition streamer.cpp:564
IxSoundFlags
Definition ix.h:138
@ IX_SOUND_LOOPING
Definition ix.h:141
@ IX_SOUND_HAS_VOICE
Definition ix.h:143
@ IX_SOUND_VOLUME_DIRTY
Definition ix.h:144
@ IX_SOUND_RELEASE_PENDING
Definition ix.h:147
@ IX_SOUND_PAN_DIRTY
Definition ix.h:146
@ IX_SOUND_ALLOCATED
Definition ix.h:139
@ IX_SOUND_FREQUENCY_DIRTY
Definition ix.h:145
@ IX_SOUND_DELETE_ON_STOP
Definition ix.h:142
@ IX_SOUND_PLAYING
Definition ix.h:140
DWORD WINAPI ix_mixer_thread_proc(void *parameter)
Definition mixer.cpp:33
IxSound * pQueuedSoundList
Definition system.cpp:20
unsigned char bStreamerIntensityLevel
Definition streamer.cpp:28
unsigned int nStreamCallStackIndex
Definition streamer.cpp:48
HANDLE hStreamThread
Definition streamer.cpp:29
IxVoiceFlags
Definition ix.h:50
@ IX_VOICE_STEREO
Definition ix.h:54
@ IX_VOICE_FLAG4
Definition ix.h:52
@ IX_VOICE_16BIT
Definition ix.h:53
@ IX_VOICE_ACTIVE
Definition ix.h:51
CRITICAL_SECTION csStreamerFileList
Definition streamer.cpp:35
unsigned int nStreamerAudioBlock
Definition streamer.cpp:37
IxStreamFile * pStreamReadRequests
Definition streamer.cpp:25
void ix_system_assign_voice(IxSound *sound, int voice)
Definition system.cpp:234
void ix_lzo1x_decompress(unsigned char *source, unsigned char *destination, unsigned int destinationBytes)
Definition lzo1x.cpp:22
void ix_system_delete_sample(IxSample *sample)
Definition system.cpp:150
CRITICAL_SECTION csIxStreamerThread
Definition streamer.cpp:36
long ix_file_size(FILE *file)
Definition ixfile.cpp:76
unsigned char * pStreamerLzoBuffer
Definition streamer.cpp:24
int nSystemVoices
Definition system.cpp:18
IxStreamerHeader * pStreamerPackageInfo
Definition streamer.cpp:31
IxStreamerBranch * pMusicStreamBranchList
Definition streamer.cpp:33
int nActiveVoices
Definition system.cpp:17
void ix_file_shutdown_hook(void)
Definition ixfile.cpp:25
unsigned int ix_thread_service_streams(void)
Definition thread.cpp:245
IxStreamerFlags
Definition ix.h:344
@ IX_STREAMER_FILE_OPEN
Definition ix.h:346
@ IX_STREAMER_HAS_AUDIO
Definition ix.h:352
@ IX_STREAMER_DSP_PLAYING
Definition ix.h:350
@ IX_STREAMER_DEVELOPER_MODE
Definition ix.h:353
@ IX_STREAMER_AUDIO_PAUSED
Definition ix.h:348
@ IX_STREAMER_AUDIO_PLAYING
Definition ix.h:347
@ IX_STREAMER_THREAD_RUNNING
Definition ix.h:349
@ IX_STREAMER_SHUTDOWN
Definition ix.h:354
@ IX_STREAMER_REPREPARE_AUDIO
Definition ix.h:355
@ IX_STREAMER_END_TRIGGERED
Definition ix.h:356
@ IX_STREAMER_INITIALIZED
Definition ix.h:345
@ IX_STREAMER_DSP_PAUSED
Definition ix.h:351
unsigned short nStreamerVolume
Definition streamer.cpp:46
void __fastcall ix_sound_unlink_from_free_list(IxSound *sound)
Definition sound.cpp:56
HANDLE hStreamerWakeupEvent
Definition streamer.cpp:40
unsigned int flags
Definition wc1base.h:55
unsigned char * buffer
Definition ix.h:110
unsigned int frequency
Definition ix.h:117
int ix_sample_load_wav(void *data, int bytes)
Definition sample.cpp:199
unsigned int sampleCount
Definition ix.h:111
IxSample * next
Definition ix.h:121
int ix_sample_load_raw(void *data, int bytes, int frequency, int bitsPerSample, int channels)
Definition sample.cpp:294
unsigned int bitsPerSample
Definition ix.h:112
void ix_sample_construct(void)
Definition sample.cpp:56
unsigned int channels
Definition ix.h:113
unsigned int loopStart
Definition ix.h:118
unsigned int loopEnd
Definition ix.h:119
unsigned int rateNumerator
Definition ix.h:115
unsigned int rateDenominator
Definition ix.h:116
long ix_sample_convert_from_ieee_extended(unsigned char *bytes)
Definition sample.cpp:320
IxSample * previous
Definition ix.h:120
unsigned int bytesPerFrame
Definition ix.h:114
void ix_sample_destruct(void)
Definition sample.cpp:68
int ix_sample_load_aiff(void *data, int bytes)
Definition sample.cpp:83
void ix_sound_reprioritise(void)
Definition sound.cpp:271
IxSound * next
Definition ix.h:162
unsigned short volume
Definition ix.h:158
void ix_system_sound_construct(IxSample *newSample, unsigned char newBasePriority)
Definition sound.cpp:43
void ix_system_sound_set_volume(unsigned short newVolume)
Definition sound.cpp:68
IxSound * previous
Definition ix.h:161
unsigned short pan
Definition ix.h:159
void ix_system_sound_set_frequency(int newPitchOffset)
Definition sound.cpp:83
unsigned int flags
Definition wc1base.h:62
int voice
Definition ix.h:153
void ix_system_sound_set_pan(unsigned short newPan)
Definition sound.cpp:76
IxSample * sample
Definition wc1base.h:63
unsigned int stopTime
Definition ix.h:155
unsigned int priority
Definition ix.h:156
void ix_system_sound_set_priority(unsigned char newBasePriority)
Definition sound.cpp:95
int pitchOffset
Definition ix.h:157
unsigned int startTime
Definition ix.h:154
void ix_system_sound_construct_centred(IxSample *newSample)
Definition sound.cpp:50
void ix_system_sound_init(IxSample *newSample, unsigned char newBasePriority, unsigned int initialVolume, int newPitchOffset, unsigned short newPan)
Definition sound.cpp:16
void ix_sound_set_delete_on_stop(int enabled)
Definition sound.cpp:346
unsigned char basePriority
Definition ix.h:160
unsigned int ix_stream_file_tell(void)
unsigned char priority
Definition ix.h:431
void ix_stream_file_wait(void)
FILE * file
Definition ix.h:429
unsigned int ix_stream_file_read(void *destination, unsigned int bytes)
int ix_stream_file_is_reading(void)
unsigned int remaining
Definition ix.h:434
unsigned char * destination
Definition ix.h:435
unsigned int size
Definition ix.h:430
IxStreamFile * previous
Definition ix.h:437
unsigned int position
Definition ix.h:433
unsigned int ix_stream_file_size(void)
IxStreamFile * next
Definition ix.h:438
void ix_stream_file_seek(unsigned int position)
unsigned int flags
Definition ix.h:427
IxStreamerFileEntry * entry
Definition ix.h:428
HANDLE completionEvent
Definition ix.h:436
unsigned int serviceTick
Definition ix.h:432
Definition ix.h:233
friend void ix_dsps_prepare(int)
Definition dsps.cpp:101
friend void ix_dsps_unlock(int)
Definition dsps.cpp:277
int lockLen
Definition ix.h:242
unsigned int playPos
Definition ix.h:239
friend int ix_dsps_get_buffer_free(int)
Definition dsps.cpp:210
friend unsigned int ix_dsps_get_flags(int)
Definition dsps.cpp:199
int pending
Definition ix.h:240
unsigned char * buffer
Definition ix.h:236
friend void ix_dsps_free(int)
Definition dsps.cpp:80
unsigned char * lockPtr
Definition ix.h:241
unsigned int writePos
Definition ix.h:238
friend void ix_dsps_stop(int)
Definition dsps.cpp:153
unsigned int flags
Definition ix.h:235
friend void ix_dsps_play(int)
Definition dsps.cpp:126
friend void ix_dsps_alloc(int, unsigned int, int, int, int)
Definition dsps.cpp:22
unsigned int size
Definition ix.h:237
friend void ix_dsps_lock(int, unsigned int, unsigned char **, unsigned int *)
Definition dsps.cpp:246
friend void ix_dsps_set_volume(int, unsigned short)
Definition dsps.cpp:175
CRITICAL_SECTION cs
Definition ix.h:243
unsigned int triggerCount
Definition ix.h:400
unsigned int fileOffset
Definition ix.h:398
unsigned int firstBranch
Definition ix.h:403
unsigned int branchCount
Definition ix.h:402
unsigned int fileEnd
Definition ix.h:399
unsigned int firstTrigger
Definition ix.h:401
unsigned char intensity
Definition ix.h:408
unsigned int audioChunk
Definition ix.h:409
unsigned int firstPacket
Definition ix.h:423
unsigned int packetCount
Definition ix.h:422
unsigned int fileOffset
Definition ix.h:420
unsigned int fileEnd
Definition ix.h:421
unsigned int nameHash
Definition ix.h:391
unsigned int firstChunk
Definition ix.h:394
unsigned int chunkCount
Definition ix.h:393
unsigned int size
Definition ix.h:392
unsigned int reserved_5c
Definition ix.h:385
unsigned int reserved_48
Definition ix.h:380
unsigned int reserved_64
Definition ix.h:387
unsigned int reserved_4c
Definition ix.h:381
unsigned int fileChunkCount
Definition ix.h:377
unsigned int branchCount
Definition ix.h:370
unsigned int fileEntryTableOffset
Definition ix.h:374
unsigned int audioChunkCount
Definition ix.h:368
unsigned int fileEntryCount
Definition ix.h:375
unsigned int id
Definition ix.h:360
unsigned int triggerCount
Definition ix.h:372
unsigned int reserved_58
Definition ix.h:384
unsigned int reserved_54
Definition ix.h:383
unsigned int packetCount
Definition ix.h:379
unsigned int fileBufferSize
Definition ix.h:373
unsigned int packetTableOffset
Definition ix.h:378
unsigned int dspConfigValue
Definition ix.h:366
unsigned int fileChunkTableOffset
Definition ix.h:376
unsigned int triggerTableOffset
Definition ix.h:371
unsigned char channels
Definition ix.h:362
unsigned int branchTableOffset
Definition ix.h:369
unsigned int audioBufferSize
Definition ix.h:365
unsigned int reserved_60
Definition ix.h:386
unsigned int audioChunkTableOffset
Definition ix.h:367
unsigned int reserved_50
Definition ix.h:382
unsigned char bitsPerSample
Definition ix.h:363
unsigned short frequency
Definition ix.h:364
unsigned int version
Definition ix.h:361
unsigned char tag
Definition ix.h:413
unsigned int audioChunk
Definition ix.h:414
Definition ix.h:63
unsigned char * start
Definition ix.h:67
friend void ix_dspv_set_channels(int, int)
Definition dspv.cpp:201
friend void ix_dsps_prepare(int)
Definition dsps.cpp:101
friend void ix_dspv_set_buffer(int, unsigned char *, int)
Definition dspv.cpp:79
short rate
Definition ix.h:70
friend int ix_dsps_get_buffer_free(int)
Definition dsps.cpp:210
short panPos
Definition ix.h:77
friend unsigned int ix_dspv_get_flags(int)
Definition dspv.cpp:58
friend void ix_dspv_set_active(int)
Definition dspv.cpp:25
friend void ix_dspv_set_volume(int, short)
Definition dspv.cpp:122
friend void ix_dspv_set_flag4(int, int)
Definition dspv.cpp:70
friend void ix_dspv_mix(void *, unsigned int)
friend void ix_dspv_set_bits_per_sample(int, int)
Definition dspv.cpp:182
friend void ix_dspv_set_position(int, int)
Definition dspv.cpp:109
friend void ix_dspv_set_pan(int, unsigned short)
Definition dspv.cpp:134
friend int ix_dspv_get_position(int)
Definition dspv.cpp:96
unsigned char * cursor
Definition ix.h:66
short leftGain
Definition ix.h:74
unsigned char * end
Definition ix.h:68
short field_10
Definition ix.h:69
friend void ix_dsps_stop(int)
Definition dsps.cpp:153
unsigned char rightGainHi
Definition ix.h:73
short panAngle
Definition ix.h:76
friend void ix_dsps_play(int)
Definition dsps.cpp:126
friend void ix_dspv_clear_flag4(int)
Definition dspv.cpp:47
short rightGain
Definition ix.h:75
friend void ix_dspv_set_frequency(int, unsigned int)
Definition dspv.cpp:170
friend void ix_dsps_alloc(int, unsigned int, int, int, int)
Definition dsps.cpp:22
unsigned int flags
Definition ix.h:65
unsigned char leftGainHi
Definition ix.h:72
unsigned short volume
Definition ix.h:71
friend void ix_dspv_clear_active(int)
Definition dspv.cpp:36
friend void ix_dsp_set_master_volume(unsigned short)
Definition dsp.cpp:212
friend void ix_dspv_recalc_mix(int)
Definition dspv.cpp:220
friend void ix_dsps_set_volume(int, unsigned short)
Definition dsps.cpp:175
struct IxSample IxSample
Definition wc1base.h:49
int ix_system_init(void)
Definition system.cpp:25
void ix_system_set_master_volume(unsigned short volume)
Definition system.cpp:116
void ix_system_delete_all_samples(void)
Definition system.cpp:159
void __fastcall ix_sound_stop(IxSound *sound)
Definition sound.cpp:209
void ix_streamer_set_intensity(unsigned char intensity)
Definition streamer.cpp:386
int __fastcall ix_sound_is_playing(IxSound *sound)
Definition sound.cpp:355
void ix_streamer_configure(int option, void *value)
Definition streamer.cpp:102
IxSound * ix_system_new_sound(IxSample *sample)
Definition system.cpp:173
void ix_streamer_audio_play(void)
Definition streamer.cpp:336
void ix_system_shutdown(void)
Definition system.cpp:93
void ix_system_configure(int option, void *value)
Definition system.cpp:104
int ix_streamer_open_stream_file(char *path)
Definition streamer.cpp:123
void ix_system_set_voice_count(int voiceCount)
Definition system.cpp:128
void ix_streamer_set_trigger(char trigger)
Definition streamer.cpp:402
void ix_system_delete_all_sounds(void)
Definition system.cpp:197
char ix_streamer_get_trigger(void)
Definition streamer.cpp:417
void ix_streamer_destroy(void)
Definition streamer.cpp:81
IxSample * ix_system_new_sample(void)
Definition system.cpp:139
unsigned short ix_streamer_get_volume(void)
Definition streamer.cpp:491
int ix_streamer_init(void)
Definition streamer.cpp:51
void __fastcall ix_sound_start(IxSound *sound)
Definition sound.cpp:102
void ix_streamer_force_trigger(char trigger)
Definition streamer.cpp:423
void ix_system_delete_sound(IxSound *sound)
Definition system.cpp:184
void __fastcall ix_sound_release(IxSound *sound)
Definition sound.cpp:188
void ix_streamer_audio_stop(void)
Definition streamer.cpp:349
void ix_streamer_close_stream_file(void)
Definition streamer.cpp:297
void ix_streamer_set_volume(unsigned short volume)
Definition streamer.cpp:475
void ix_system_service_sounds(void)
Definition system.cpp:46