3 interface
5 uses
8 e_log,
9 SysUtils;
11 type
19 private
22 protected
30 public
50 const
56 function e_LoadSoundMem(pData: Pointer; Length: Integer; var ID: DWORD; bLoop: Boolean): Boolean;
58 // returns channel number or -1
73 var
76 implementation
78 uses
81 const
84 var
90 var
92 begin
98 // we need module player
100 begin
103 //Exit;
108 begin
111 Exit;
121 var
124 begin
128 begin
130 Exit;
134 begin
137 end
138 else
139 begin
146 var
148 begin
167 function e_LoadSoundMem(pData: Pointer; Length: Integer; var ID: DWORD; bLoop: Boolean): Boolean;
168 var
171 begin
193 var
195 begin
203 else
212 var
215 begin
231 var
233 begin
245 var
248 begin
266 begin
276 //TODO
278 {
279 var
280 i: Integer;
281 Chan: FMOD_CHANNEL;
282 vol: Single;
283 }
284 begin
285 // Mix_Volume(-1, volm);
286 {
287 for i := 0 to N_CHANNELS-1 do
288 begin
289 Chan := nil;
290 res := FMOD_System_GetChannel(F_System, i, Chan);
292 if (res = FMOD_OK) and (Chan <> nil) then
293 begin
294 res := FMOD_Channel_GetVolume(Chan, vol);
296 if res = FMOD_OK then
297 begin
298 if setMode then
299 vol := SoundMod
300 else
301 vol := vol * SoundMod;
303 res := FMOD_Channel_SetVolume(Chan, vol);
305 if res <> FMOD_OK then
306 begin
307 end;
308 end;
309 end;
310 end;
311 }
314 //TODO
316 {
317 var
318 res: FMOD_RESULT;
319 i: Integer;
320 Chan: FMOD_CHANNEL;
321 }
322 begin
323 {
324 if Enable = SoundMuted then
325 Exit;
327 SoundMuted := Enable;
329 for i := 0 to N_CHANNELS-1 do
330 begin
331 Chan := nil;
332 res := FMOD_System_GetChannel(F_System, i, Chan);
334 if (res = FMOD_OK) and (Chan <> nil) then
335 begin
336 res := FMOD_Channel_SetMute(Chan, Enable);
338 if res <> FMOD_OK then
339 begin
340 end;
341 end;
342 end;
343 }
347 begin
352 var
354 begin
366 begin
370 begin
377 begin
378 //FMOD_System_Update(F_System);
381 { TBasicSound: }
384 begin
393 begin
399 begin
407 // aPos: msecs
409 var
411 begin
418 //TODO: aPos
422 begin
429 begin
437 begin
439 //GetPosition();
445 begin
452 begin
455 begin
457 end
458 else
459 begin
462 {
463 if Enable then
464 begin
465 res := FMOD_Channel_GetPosition(FChannel, FPosition, FMOD_TIMEUNIT_MS);
466 if res <> FMOD_OK then
467 begin
468 end;
469 end;
470 }
473 //TODO
475 begin
478 {
479 res := FMOD_Channel_GetVolume(FChannel, vol);
480 if res <> FMOD_OK then
481 begin
482 Exit;
483 end;
484 Result := vol;
485 }
489 begin
496 //TODO
498 begin
501 {
502 res := FMOD_Channel_GetPan(FChannel, pan);
503 if res <> FMOD_OK then
504 begin
505 Exit;
506 end;
507 Result := pan;
508 }
512 var
514 begin
524 //TODO
526 begin
529 {
530 res := FMOD_Channel_GetMute(FChannel, b);
531 if res <> FMOD_OK then
532 begin
533 Exit;
534 end;
535 Result := b;
536 }
539 //TODO
541 begin
543 {
544 res := FMOD_Channel_SetMute(FChannel, Enable);
545 if res <> FMOD_OK then
546 begin
547 end;
548 }
551 //TODO
553 begin
556 {
557 res := FMOD_Channel_GetPosition(FChannel, FPosition, FMOD_TIMEUNIT_MS);
558 if res <> FMOD_OK then
559 begin
560 Exit;
561 end;
562 Result := FPosition;
563 }
566 //TODO
568 begin
571 {
572 res := FMOD_Channel_SetPosition(FChannel, FPosition, FMOD_TIMEUNIT_MS);
573 if res <> FMOD_OK then
574 begin
575 end;
576 }
579 //TODO
581 begin
582 {
583 if (FChannel <> nil) and (FPriority <> priority) and
584 (priority >= 0) and (priority <= 256) then
585 begin
586 FPriority := priority;
587 res := FMOD_Channel_SetPriority(FChannel, priority);
588 if res <> FMOD_OK then
589 begin
590 end;
591 end;
592 }