Home | History | Annotate | Download | only in macosx

Lines Matching defs:afp

62 static int AudioFilePlayer_SetDestination (AudioFilePlayer *afp, AudioUnit  *inDestUnit)
64 /*if (afp->mConnected) throw static_cast<OSStatus>(-1);*/ /* can't set dest if already engaged */
65 if (afp->mConnected)
68 SDL_memcpy(&afp->mPlayUnit, inDestUnit, sizeof (afp->mPlayUnit));
92 &afp->mFileDescription,
93 sizeof (afp->mFileDescription));
99 static void AudioFilePlayer_SetNotifier(AudioFilePlayer *afp, AudioFilePlayNotifier inNotifier, void *inRefCon)
101 afp->mNotifier = inNotifier;
102 afp->mRefCon = inRefCon;
105 static int AudioFilePlayer_IsConnected(AudioFilePlayer *afp)
107 return afp->mConnected;
110 static AudioUnit AudioFilePlayer_GetDestUnit(AudioFilePlayer *afp)
112 return afp->mPlayUnit;
115 static void AudioFilePlayer_Print(AudioFilePlayer *afp)
123 static void AudioFilePlayer_SetStartFrame (AudioFilePlayer *afp, int frame)
127 afp->mStartFrame = frame;
128 afp->mAudioFileManager->SetPosition (afp->mAudioFileManager, position);
132 static int AudioFilePlayer_GetCurrentFrame (AudioFilePlayer *afp)
134 return afp->mStartFrame + (afp->mAudioFileManager->GetByteCounter(afp->mAudioFileManager) / 2352);
137 static void AudioFilePlayer_SetStopFrame (AudioFilePlayer *afp, int frame)
141 afp->mAudioFileManager->SetEndOfFile (afp->mAudioFileManager, position);
144 void delete_AudioFilePlayer(AudioFilePlayer *afp)
146 if (afp != NULL)
148 afp->Disconnect(afp);
150 if (afp->mAudioFileManager) {
151 delete_AudioFileManager(afp->mAudioFileManager);
152 afp->mAudioFileManager = 0;
155 if (afp->mForkRefNum) {
156 FSCloseFork (afp->mForkRefNum);
157 afp->mForkRefNum = 0;
159 SDL_free(afp);
163 static int AudioFilePlayer_Connect(AudioFilePlayer *afp)
166 printf ("Connect:%x, engaged=%d\n", (int)afp->mPlayUnit, (afp->mConnected ? 1 : 0));
168 if (!afp->mConnected)
170 if (!afp->mAudioFileManager->DoConnect(afp->mAudioFileManager))
174 afp->mInputCallback.inputProc = afp->mAudioFileManager->FileInputProc;
175 afp->mInputCallback.inputProcRefCon = afp->mAudioFileManager;
177 OSStatus result = AudioUnitSetProperty (afp->mPlayUnit,
181 &afp->mInputCallback,
182 sizeof(afp->mInputCallback));
184 afp->mConnected = 1;
192 static void AudioFilePlayer_DoNotification (AudioFilePlayer *afp, OSStatus inStatus)
194 if (afp->mNotifier) {
195 (*afp->mNotifier) (afp->mRefCon, inStatus);
200 afp->Disconnect(afp);
202 afp->Disconnect(afp);
206 static void AudioFilePlayer_Disconnect (AudioFilePlayer *afp)
209 printf ("Disconnect:%x,%ld, engaged=%d\n", (int)afp->mPlayUnit, 0, (afp->mConnected ? 1 : 0));
211 if (afp->mConnected)
213 afp->mConnected = 0;
215 afp->mInputCallback.inputProc = 0;
216 afp->mInputCallback.inputProcRefCon = 0;
217 OSStatus result = AudioUnitSetProperty (afp->mPlayUnit,
221 &afp->mInputCallback,
222 sizeof(afp->mInputCallback));
226 afp->mAudioFileManager->Disconnect(afp->mAudioFileManager);
235 static int AudioFilePlayer_OpenFile (AudioFilePlayer *afp, const FSRef *inRef, SInt64 *outFileDataSize)
250 result = FSOpenFork(inRef, dfName.length, dfName.unicode, fsRdPerm, &afp->mForkRefNum);
254 result = FSReadFork(afp->mForkRefNum, fsAtMark, 0, sizeof(chunkHeader), &chunkHeader, &actual);
274 result = FSReadFork(afp->mForkRefNum, fsFromMark, offset, sizeof(chunk), &chunk, &actual);
283 result = FSReadFork(afp->mForkRefNum, fsAtMark, 0, sizeof(ssndData), &ssndData, &actual);
286 result = FSSetForkPosition(afp->mForkRefNum, fsFromMark, ssndData.offset);
293 afp->mFileDescription.mSampleRate = 44100;
294 afp->mFileDescription.mFormatID = kAudioFormatLinearPCM;
295 afp->mFileDescription.mFormatFlags = kLinearPCMFormatFlagIsPacked | kLinearPCMFormatFlagIsSignedInteger;
296 afp->mFileDescription.mBytesPerPacket = 4;
297 afp->mFileDescription.mFramesPerPacket = 1;
298 afp->mFileDescription.mBytesPerFrame = 4;
299 afp->mFileDescription.mChannelsPerFrame = 2;
300 afp->mFileDescription.mBitsPerChannel = 16;
309 AudioFilePlayer *afp = (AudioFilePlayer *) SDL_malloc(sizeof (AudioFilePlayer));
310 if (afp == NULL)
312 SDL_memset(afp, '\0', sizeof (*afp));
314 #define SET_AUDIOFILEPLAYER_METHOD(m) afp->m = AudioFilePlayer_##m
329 if (!afp->OpenFile (afp, inFileRef, &fileDataSize))
331 SDL_free(afp);
336 int bytesPerSecond = (UInt32) (4 * afp->mFileDescription.mSampleRate * afp->mFileDescription.mBytesPerFrame);
340 PrintStreamDesc (&afp->mFileDescription);
343 afp->mAudioFileManager = new_AudioFileManager(afp, afp->mForkRefNum,
346 if (afp->mAudioFileManager == NULL)
348 delete_AudioFilePlayer(afp);
352 return afp;