QTSS_Error QTSSCallbacks::QTSS_SignalStream(QTSS_StreamRef inStream) { if (inStream == NULL) return QTSS_BadArgument; QTSSStream* theStream = (QTSSStream*)inStream; if (theStream->GetTask() != NULL) theStream->GetTask()->Signal(Task::kReadEvent); return QTSS_NoErr; }
QTSS_Error QTSSCallbacks::QTSS_SignalStream(QTSS_StreamRef inStream,QTSS_EventType inEventMask) { if (inStream == NULL) return QTSS_BadArgument; QTSSStream* theStream = (QTSSStream*)inStream; if (theStream->GetTask() != NULL) { //theStream->GetTask()->Signal(Task::kReadEvent); theStream->GetTask()->Signal(inEventMask); } return QTSS_NoErr; }
QTSS_Error QTSSCallbacks::QTSS_RequestEvent(QTSS_StreamRef inStream, QTSS_EventType inEventMask) { // First thing to do is to alter the thread's module state to reflect the fact // that an event is outstanding. QTSS_ModuleState* theState = (QTSS_ModuleState*)OSThread::GetMainThreadData(); if (OSThread::GetCurrent() != NULL) theState = (QTSS_ModuleState*)OSThread::GetCurrent()->GetThreadData(); if (theState == NULL) return QTSS_RequestFailed; if (theState->curTask == NULL) return QTSS_OutOfState; theState->eventRequested = true; // Now, tell this stream to be ready for the requested event QTSSStream* theStream = (QTSSStream*)inStream; theStream->SetTask(theState->curTask); theStream->RequestEvent(inEventMask); return QTSS_NoErr; }