Home | History | Annotate | Download | only in macosx

Lines Matching refs:afp

63 static int AudioFilePlayer_SetDestination (AudioFilePlayer *afp, AudioUnit  *inDestUnit)
65 /*if (afp->mConnected) throw static_cast<OSStatus>(-1);*/ /* can't set dest if already engaged */
66 if (afp->mConnected)
69 SDL_memcpy(&afp->mPlayUnit, inDestUnit, sizeof (afp->mPlayUnit));
93 &afp->mFileDescription,
94 sizeof (afp->mFileDescription));
100 static void AudioFilePlayer_SetNotifier(AudioFilePlayer *afp, AudioFilePlayNotifier inNotifier, void *inRefCon)
102 afp->mNotifier = inNotifier;
103 afp->mRefCon = inRefCon;
106 static int AudioFilePlayer_IsConnected(AudioFilePlayer *afp)
108 return afp->mConnected;
111 static AudioUnit AudioFilePlayer_GetDestUnit(AudioFilePlayer *afp)
113 return afp->mPlayUnit;
116 static void AudioFilePlayer_Print(AudioFilePlayer *afp)
124 static void AudioFilePlayer_SetStartFrame (AudioFilePlayer *afp, int frame)
128 afp->mStartFrame = frame;
129 afp->mAudioFileManager->SetPosition (afp->mAudioFileManager, position);
133 static int AudioFilePlayer_GetCurrentFrame (AudioFilePlayer *afp)
135 return afp->mStartFrame + (afp->mAudioFileManager->GetByteCounter(afp->mAudioFileManager) / 2352);
138 static void AudioFilePlayer_SetStopFrame (AudioFilePlayer *afp, int frame)
142 afp->mAudioFileManager->SetEndOfFile (afp->mAudioFileManager, position);
145 void delete_AudioFilePlayer(AudioFilePlayer *afp)
147 if (afp != NULL)
149 afp->Disconnect(afp);
151 if (afp->mAudioFileManager) {
152 delete_AudioFileManager(afp->mAudioFileManager);
153 afp->mAudioFileManager = 0;
156 if (afp->mForkRefNum) {
157 FSCloseFork (afp->mForkRefNum);
158 afp->mForkRefNum = 0;
160 SDL_free(afp);
164 static int AudioFilePlayer_Connect(AudioFilePlayer *afp)
167 printf ("Connect:%x, engaged=%d\n", (int)afp->mPlayUnit, (afp->mConnected ? 1 : 0));
169 if (!afp->mConnected)
171 if (!afp->mAudioFileManager->DoConnect(afp->mAudioFileManager))
175 afp->mInputCallback.inputProc = afp->mAudioFileManager->FileInputProc;
176 afp->mInputCallback.inputProcRefCon = afp->mAudioFileManager;
178 OSStatus result = AudioUnitSetProperty (afp->mPlayUnit,
182 &afp->mInputCallback,
183 sizeof(afp->mInputCallback));
185 afp->mConnected = 1;
193 static void AudioFilePlayer_DoNotification (AudioFilePlayer *afp, OSStatus inStatus)
195 if (afp->mNotifier) {
196 (*afp->mNotifier) (afp->mRefCon, inStatus);
201 afp->Disconnect(afp);
203 afp->Disconnect(afp);
207 static void AudioFilePlayer_Disconnect (AudioFilePlayer *afp)
210 printf ("Disconnect:%x,%ld, engaged=%d\n", (int)afp->mPlayUnit, 0, (afp->mConnected ? 1 : 0));
212 if (afp->mConnected)
214 afp->mConnected = 0;
216 afp->mInputCallback.inputProc = 0;
217 afp->mInputCallback.inputProcRefCon = 0;
218 OSStatus result = AudioUnitSetProperty (afp->mPlayUnit,
222 &afp->mInputCallback,
223 sizeof(afp->mInputCallback));
227 afp->mAudioFileManager->Disconnect(afp->mAudioFileManager);
236 static int AudioFilePlayer_OpenFile (AudioFilePlayer *afp, const FSRef *inRef, SInt64 *outFileDataSize)
251 result = FSOpenFork(inRef, dfName.length, dfName.unicode, fsRdPerm, &afp->mForkRefNum);
255 result = FSReadFork(afp->mForkRefNum, fsAtMark, 0, sizeof(chunkHeader), &chunkHeader, &actual);
275 result = FSReadFork(afp->mForkRefNum, fsFromMark, offset, sizeof(chunk), &chunk, &actual);
287 result = FSReadFork(afp->mForkRefNum, fsAtMark, 0, sizeof(ssndData), &ssndData, &actual);
292 result = FSSetForkPosition(afp->mForkRefNum, fsFromMark, ssndData.offset);
299 afp->mFileDescription.mSampleRate = 44100;
300 afp->mFileDescription.mFormatID = kAudioFormatLinearPCM;
301 afp->mFileDescription.mFormatFlags = kLinearPCMFormatFlagIsPacked | kLinearPCMFormatFlagIsSignedInteger;
302 afp->mFileDescription.mBytesPerPacket = 4;
303 afp->mFileDescription.mFramesPerPacket = 1;
304 afp->mFileDescription.mBytesPerFrame = 4;
305 afp->mFileDescription.mChannelsPerFrame = 2;
306 afp->mFileDescription.mBitsPerChannel = 16;
315 AudioFilePlayer *afp = (AudioFilePlayer *) SDL_malloc(sizeof (AudioFilePlayer));
316 if (afp == NULL)
318 SDL_memset(afp, '\0', sizeof (*afp));
320 #define SET_AUDIOFILEPLAYER_METHOD(m) afp->m = AudioFilePlayer_##m
335 if (!afp->OpenFile (afp, inFileRef, &fileDataSize))
337 SDL_free(afp);
342 int bytesPerSecond = (UInt32) (4 * afp->mFileDescription.mSampleRate * afp->mFileDescription.mBytesPerFrame);
346 PrintStreamDesc (&afp->mFileDescription);
349 afp->mAudioFileManager = new_AudioFileManager(afp, afp->mForkRefNum,
352 if (afp->mAudioFileManager == NULL)
354 delete_AudioFilePlayer(afp);
358 return afp;