Front page | perl.macperl.toolbox |
Postings from December 2002
Re: [MacPerl-Toolbox] Sound Manager and "file reference numbers"
Thread Previous
|
Thread Next
From:
Chris Nandor
Date:
December 27, 2002 10:16
Subject:
Re: [MacPerl-Toolbox] Sound Manager and "file reference numbers"
Message ID:
p05200f03ba3246d53dc5@[10.0.1.132]
At 11:01 -0500 2002.12.27, Elliott Moreton wrote:
>I'm running 5.6.1b3 on an iBook.
FWIW, MacPerl 5.6.1r2 is the most recent release. r1 was released in March.
>I'm trying to get a MacPerl script to
>play AIFF files, using the SndStartFilePlay function:
>
> use Mac::Sound;
>
> $sounddir = "Macintosh HD:Moreton:exp14:SW:testsounds";
>
> $infile = "$sounddir:000.aiff";
> open (IN, $infile) || die "Couldn't open $infile";
>
> $kBufferSize = 20000;
>
> $err = SndStartFilePlay (0, IN, 0, $kBufferSize, 0, 0, 0, 0);
>
> print "Error: $err\n";
>
>
>When I run this, I get the message:
>
>
> #Usage: Mac::Sound::SndStartFilePlay(chan, fRefNum, resNum,
>bufferSize, theSelection, theCompletion=0, async==false).
> File 'Dev:Pseudo'; Line 10
>
>There isn't any MacPerl documentation on SndStartFilePlay (not even in
>Sound.pm), but Inside Macintosh documents it for C (Sound Reference,
>Chapter 1, pp. 37f), and the only thing I can see that I might be doing
>wrong is that SndStartFilePlay might want the file to be identified with a
>"file reference number" rather than the filehandle I'm using right now.
>What is a "file reference number", and how do I set one up?
I don't really know the answer, but would guess fileno(IN), perhaps.
At 12:36 -0500 2002.12.27, Elliott Moreton wrote:
>Inside Macintosh says that in order to have the whole file played, you
>should pass SndStartFilePlay a NIL for a parameter called theSelection,
>which is of type AudioSelection (Ch. 2, "Using the Sound Manager", p.
>2-53). MacPerl won't accept 0, '', (), [], or {} as a null value for this
>parameter:
>
> use Mac::Sound;
>
> $sounddir = "Macintosh HD:Moreton:exp14:SW:testsounds";
>
> $infile = "$sounddir:000.aiff";
> open (IN, $infile) || die "Couldn't open $infile";
>
> $Chan = SndNewChannel (sampledSynth (), initMono (), 0);
> $kBufferSize = 20000;
>
> $err = SndStartFilePlay ($Chan, IN, 0, $kBufferSize, '', 0, 0);
> ^
> |
> theSelection
>
>The error I get is
>
> # theSelection is not of type AudioSelection
>
>The Sound.pm code section on SndStartFilePlay has the following variable
>declarations:
>
> SndChannel chan
> short fRefNum (filehandle seems to work)
> short resNum (0, since this is a file, not a resource)
> long bufferSize
> AudioSelection &theSelection
> SV *theCompletion
> Boolean async
>
>Can anyone see what the problem is? I'm sure this is extremely basic, but
>I'm baffled.
Again, I am not sure; I can look later when I get some spare time.
--
Chris Nandor pudge@pobox.com http://pudge.net/
Open Source Development Network pudge@osdn.com http://osdn.com/
Thread Previous
|
Thread Next