Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#4

Re: The Old-Style-Music-PLAY-Function

  Alt 11. Nov 2009, 13:53
@TP: das war mir garnicht aufgefallen
na mal sehn, was da noch alles möglich ist.


Kann es sein, daß dieses Sound/NoSound in Delphi nicht gibt?

Allerdings bin ich bei der Suche danach in der Windows.pas vorbeigekommen
und dort gibt es tatsächlich sowas:
Delphi-Quellcode:
{ WaitSoundState() Constants }

S_QUEUEEMPTY = 0;
S_THRESHOLD = 1;
S_ALLTHRESHOLD = 2;

{ Accent Modes }

S_NORMAL = 0;
S_LEGATO = 1;
S_STACCATO = 2;

{ SetSoundNoise() Sources }

S_PERIOD512 = 0; { Freq = N/512 high pitch, less coarse hiss }
S_PERIOD1024 = 1; { Freq = N/1024 }
S_PERIOD2048 = 2; { Freq = N/2048 low pitch, more coarse hiss }
S_PERIODVOICE = 3; { Source is frequency from voice channel (3) }
S_WHITE512 = 4; { Freq = N/512 high pitch, less coarse hiss }
S_WHITE1024 = 5; { Freq = N/1024 }
S_WHITE2048 = 6; { Freq = N/2048 low pitch, more coarse hiss }
S_WHITEVOICE = 7; { Source is frequency from voice channel (3) }

S_SERDVNA = LongWord(-1); { Device not available  }
S_SEROFM = LongWord(-2); { Out of memory }
S_SERMACT = LongWord(-3); { Music active }
S_SERQFUL = LongWord(-4); { Queue full }
S_SERBDNT = LongWord(-5); { Invalid note }
S_SERDLN = LongWord(-6); { Invalid note length }
S_SERDCC = LongWord(-7); { Invalid note count }
S_SERDTP = LongWord(-8); { Invalid tempo }
S_SERDVL = LongWord(-9); { Invalid volume }
S_SERDMD = LongWord(-10); { Invalid mode }
S_SERDSH = LongWord(-11); { Invalid shape }
S_SERDPT = LongWord(-12); { Invalid pitch }
S_SERDFQ = LongWord(-13); { Invalid frequency }
S_SERDDR = LongWord(-14); { Invalid duration }
S_SERDSR = LongWord(-15); { Invalid source }
S_SERDST = LongWord(-16); { Invalid state }
Eigentlich klingt es ja voll genial, aber in Delphi sind nirgendwo die nötigen Funktionen zu finden

Selbst Google und MSDN schweigen sich da mehr drüber aus,
aber letztendlich hab ich einfach mal die gesamte Festplatte durchsuchen lassen und wurde fündig.

WaitSoundState und SetSoundNoise verstecken sich in %WinDir%\System\SOUND.DRV
und nochmals in %WinDir%\System32\sound.drv .

Jetzt gibt es nur ein Problem: ich hab absolut keine Ahnung, wie man diese ansteuert.
Nja, immerhin läuft das Windows.Beep (vielleicht zerdebugge ich dieses einmal und finde einen/den Weg).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat