fpc unit

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

fpc unit

Beitrag von hanibal »

ich habe mir diese unit aus dem inet gezogen, um wave dateien ab zu spielen, weil asc irgendiwe nich funzt (lazarus ist nurnoch ein fenster ohne inhalt, und reagiert nicht mehr) doch leider habe ich diese unit SB_DSP nicht, habe sie aber runtergeladen, aber da meint er:
"SBDSP.PAS(572,3) Fatal: Selected assembler reader not supported"

Code: Alles auswählen

unit Wave;
 
 
 
interface
 
 
 
        procedure PlayWaveFile(Filename: String);
        procedure DisplayWaveHeader(Filename: String);
 
 
 
implementation
 
 
 
uses Crt, SB_DSP;
 
 
 
type
 
        TWaveHeader = record
 
                RiffID: Array[1..4] of Char;    //'RIFF'
 
                FileSize: DWord;                //Size of the file
 
                WaveID: Array[1..4] of Char;    //'WAVE'
 
                fmtID: Array[1..4] of Char;     //'fmt '
 
                SizeOfHeader: DWord;            //Size of the header till now
 
                FormatTag: Word;                //data format
 
                Channels: Word;                 //amount of channels
 
                SamplingRate: DWord;            //samples per second
 
                AverageBytesPerSecond: DWord;   //normaly same as SamplingRate
 
                BlockAlign: Word;               //Block align
 
                BitsPerSample: Word;            //Bits per sample
 
                dataID: Array[1..4] of Char;    //'data'
 
                SizeOfSample: Word;             //number of Bytes in the sample
 
        end;
 
 
 
procedure PlayWaveFile(Filename: String);
 
var
 
	WaveHeader: TWaveHeader;
 
        F: File;
 
        Tone: Byte;
 
begin
 
        Assign(F, Filename);
 
        Reset(F, 1);
 
 
 
        //Get wave file header
 
        BlockRead(F, WaveHeader, SizeOf(TWaveHeader));
 
 
 
        repeat
 
                BlockRead(F, Tone, SizeOf(Byte));
 
 
 
                if IOResult <> 0 then
 
                begin
 
                        WriteLn('Error, could not read next byte');
 
                        WriteLn('Press any key to exit...');
 
                        ReadKey;
 
                        Halt;
 
                end;
 
 
 
                Play8BitSound(Tone);
 
        until EOF(F);
 
 
 
        Close(F);
 
end;
 
 
 
procedure PlayWaveFile(Filename: String);
 
var
 
	WaveHeader: TWaveHeader;
 
        F: File;
 
begin
 
        Assign(F, Filename);
 
        Reset(F, 1);
 
 
 
        //Get wave file header
 
        BlockRead(F, WaveHeader, SizeOf(TWaveHeader));
 
 
 
        //Print information out of the header
 
        WriteLn('File size: ', WaveHeader.FileSize);
 
        WriteLn('Format Tag: ', WaveHeader.FormatTag);
 
        WriteLn('Channels: ', WaveHeader.Channels);
 
        WriteLn('Sampling Rate: ', WaveHeader.SamplingRate);
 
        WriteLn('Average Bytes per Second: ', WaveHeader.AverageBytesPerSecond);
 
        WriteLn('Block Align: ', WaveHeader.BlockAlign);
 
        WriteLn('Bits per sample: ', WaveHeader.BitsPerSample);
 
        WriteLn('Size of sample: ', WaveHeader.SizeOfSample);
 
 
 
        Close(F);
 
end;
 
 
 
end.

Cherry

Beitrag von Cherry »

.
Zuletzt geändert von Cherry am Mo 7. Mai 2007, 12:46, insgesamt 1-mal geändert.

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

lazarus spuckt die fherler meldung: "SBDSP.PAS(572,3) Fatal: Selected assembler reader not supported" aus, und es geht dann nicht weiter. wenn man dann rehtsklich auf hilfe klickt, sthet da, das fpc mit und ohne assembler irgendwas kompilirt werden kann.
sprich, ich glaube dass der assembler nicht inline kann, und möchte gerne wissen, wie man dieses problem lösen kann.

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

hab das prob jetzt gelöst, aber bei der procedure die ich oben gepostet habe, wird jetzt "wave.pas(59,11) Error: overloaded functions have the same parameter list" bei :

Code: Alles auswählen

procedure PlayWaveFile(Filename: String); //hier bleibt der compiler stehen.
var
	WaveHeader: TWaveHeader;
        F: File;
begin
        Assign(F, Filename);
        Reset(F, 1);

Benutzeravatar
theo
Beiträge: 10925
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Wen wundert's? Da sind ja auch zwei gleichnamige Funktionen mit gleichen Parameterlisten in deinem Code.

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

is mir gerade auch aufgefallen, leuft jetzt glaub ich

kann ich noch nicht testen, weil ich keine 8 bit waves habe.

wisst ihr wie mann die konvertiert?
unter linux...

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

hanibal hat geschrieben:wisst ihr wie mann die konvertiert?
unter linux...
Bin mir zwar nicht 100% sicher - ich wäre aber überrascht, wenn AUDACITY das nicht könnte.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Du weisst schon das diese units keine wave dateien anspielen kann der ?!
Und was hast du bitte gemacht das da nur ein leeres Fenster sein soll bei acs.
*nichtsicherbinobichdaswirklichwissenwill*
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

wiso kann die keine wave dateien abspeilen?
steht da doch :?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Also die unit die du da gepostet hat kann nur wave dateien lesen und auch nur unkomprimierte
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

und wiso nicht abspeilen? :shock:

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Wiso kann ein Hase denn Keine Eier legen ?

Frohe Ostern
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Beitrag von knight »

Gib den Genforschern noch etwas Zeit. Wir werden es schon noch erleben, daß die Hasen Eier legen.

knight

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

du hast recht, ich hab das mal genau analisirt, und das geht wirklich nict.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Analysiert ? Du meinst du hasts compiliert und ausgeführt oder ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten