35 START_ERR_LOW_PRIORITY,
36 START_ERR_INVALID_LABEL_STRING,
37 START_ERR_INVALID_SOUNDID,
38 START_ERR_NOT_DATA_LOADED,
39 START_ERR_NOT_ENOUGH_PLAYER_HEAP,
40 START_ERR_CANNOT_OPEN_FILE,
41 START_ERR_NOT_AVAILABLE,
42 START_ERR_CANNOT_ALLOCATE_TRACK,
43 START_ERR_NOT_ENOUGH_INSTANCE,
44 START_ERR_INVALID_PARAMETER,
45 START_ERR_INVALID_SEQ_START_LOCATION_LABEL,
49 START_ERR_UNKNOWN = 255,
57 StartInfo() : enableFlag(0) {}
62 ENABLE_START_OFFSET = 1 << 0,
63 ENABLE_PLAYER_ID = 1 << 1,
64 ENABLE_PLAYER_PRIORITY = 1 << 2,
65 ENABLE_ACTOR_PLAYER_ID = 1 << 3,
66 ENABLE_SEQ_SOUND_INFO = 1 << 4,
72 START_OFFSET_TYPE_MILLISEC,
73 START_OFFSET_TYPE_TICK,
74 START_OFFSET_TYPE_SAMPLE,
80 SeqSoundInfo() : seqDataAddress(NULL), startLocationLabel(NULL) {}
82 char const *startLocationLabel;
88 StartOffsetType startOffsetType;
103 virtual StartResult detail_SetupSound(
SoundHandle *handle, ulong soundId,
105 StartInfo
const *startInfo) = 0;
106 virtual ulong detail_ConvertLabelStringToSoundId(
char const *label) = 0;
109 StartResult detail_StartSound(
110 SoundHandle *pHandle, ulong
id,
const StartInfo *pStartInfo
112 StartResult detail_StartSound(
113 SoundHandle *pHandle,
const char *label,
const StartInfo *pStartInfo
116 StartResult detail_HoldSound(
117 SoundHandle *pHandle, ulong
id,
const StartInfo *pStartInfo
119 StartResult detail_HoldSound(
120 SoundHandle *pHandle,
const char *label,
const StartInfo *pStartInfo
123 StartResult detail_PrepareSound(
124 SoundHandle *pHandle, ulong
id,
const StartInfo *pStartInfo
126 StartResult detail_PrepareSound(
128 const StartInfo *pStartInfo
132 return detail_StartSound(pHandle,
id, NULL) == START_SUCCESS;
134 bool StartSound(SoundHandle *pHandle,
const char *label) {
135 return detail_StartSound(pHandle, label, NULL) == START_SUCCESS;
137 bool StartSound(SoundHandle *pHandle,
unsigned int id) {
138 return detail_StartSound(pHandle,
id, NULL) == START_SUCCESS;
140 bool StartSound(SoundHandle *pHandle,
int id) {
141 return detail_StartSound(pHandle,
id, NULL) == START_SUCCESS;
144 bool HoldSound(SoundHandle *pHandle, ulong
id) {
145 return detail_HoldSound(pHandle,
id, NULL) == START_SUCCESS;
147 bool HoldSound(SoundHandle *pHandle,
const char *label) {
148 return detail_HoldSound(pHandle, label, NULL) == START_SUCCESS;
150 bool HoldSound(SoundHandle *pHandle,
unsigned int id) {
151 return detail_HoldSound(pHandle,
id, NULL) == START_SUCCESS;
153 bool HoldSound(SoundHandle *pHandle,
int id) {
154 return detail_HoldSound(pHandle,
id, NULL) == START_SUCCESS;
157 bool PrepareSound(SoundHandle *pHandle, ulong
id) {
158 return detail_PrepareSound(pHandle,
id, NULL) == START_SUCCESS;
160 bool PrepareSound(SoundHandle *pHandle,
unsigned int id) {
161 return detail_PrepareSound(pHandle,
id, NULL) == START_SUCCESS;
163 bool PrepareSound(SoundHandle *pHandle,
int id) {
164 return detail_PrepareSound(pHandle,
id, NULL) == START_SUCCESS;