//_______________________________________________________________________ static void run (DrvMemPtr mem, char * dev) { void *threadRet; // printf ("Midi driver anchored on \"%s\" is running\n", dev); printf ("type 'q' to quit "); while (!mem->done) mem->done = checkQuit(); pthread_kill (mem->inThread, SIGDRVQUIT); pthread_join (mem->inThread, &threadRet); }
void Flow::update() { if (DebugActor::instance) { std::string str; for (size_t i = 1; i < scenes.size(); ++i) { str += scenes[i]->getName(); str += "->"; } if (!str.empty()) { str.pop_back(); str.pop_back(); str += "\n"; DebugActor::addDebugString(str.c_str()); } } bool quit = checkQuit(); static bool quitLast = false; if (quit && !quitLast) { _wasBackBlocked = true; } quitLast = quit; if (_transition) { if (_current->_transitionDone || (_trans && _trans->_done)) phaseEnd(); return; } checkDone(); if (!scenes2show.empty()) checkShow(); if (_transition) return; if (_wasBackBlocked && !scenes.empty()) { _wasBackBlocked = false; spScene current = scenes.back(); Event ev(Scene::EVENT_BACK); current->dispatchEvent(&ev); checkDone(); } }
//General connection method BOOL CAviCap::_connect2Driver(int indx) { CHECKWIN(); if(indx<0||indx>_totalDrv()) { TRACE("CAviCap Window connection failed: illegal driver index\n"); iLastError=CAP_ILLEGAL_DRIVERID; return FALSE; } AfxGetApp( )-> DoWaitCursor( 1 ); //connect via VFW BOOL ret=capDriverConnect(GetSafeHwnd(), indx); checkQuit(); if(ret) { //starts gathering of driver information _curDriver=indx; if(!_getCaps()|| !_getSetup()|| !_getStatus()|| !_getFormat()) { iLastError=CAP_INIT_FAILED; ret=FALSE; } else { //try to make window unvisible befor testing BOOL vsbl=IsWindowVisible(); if(vsbl) ShowWindow(SW_HIDE); //Slow or fast connection? if(!m_DoQuickConnection) { //OK. We have enough time to test driver :-) UP_THR(); #ifdef ON_CONNECT_TEST_BIBITSCOUNT _testBiBitsCount(); #endif checkQuit(); #ifdef ON_CONNECT_CHECK_VALIDFORMATS _testValidFormats(); #endif checkQuit(); #ifdef DEFAULT_FORCE_SINGLE_FRAME _testInternalBuffers(); #endif checkQuit(); DN_THR(); } //else skip testing // Setup default capture parameters // OPTIONAL #ifdef DEFAULT_FORCE_SINGLE_FRAME capSetCallbackOnFrame(GetSafeHwnd(),(LPVOID)_1FrameCallbackProc); _1FrameCallBackInstalled = TRUE; #else capSetCallbackOnFrame(GetSafeHwnd(), _defaultFrameCallbackProc); capPreviewRate(GetSafeHwnd(), _previewRate); #endif #ifdef DEFAULT_USED_DOSMEMORY _captureParms.wNumVideoRequested=1; _captureParms.fUsingDOSMemory=TRUE; #endif #ifdef DEFAULT_STEP_CAPTUREAT2X _captureParms.fStepCaptureAt2x=TRUE; _captureParms.wStepCaptureAverageFrames=3; #endif _captureParms.dwRequestMicroSecPerFrame=20000; _captureParms.fYield = TRUE; capCaptureSetSetup (GetSafeHwnd(), &_captureParms, sizeof CAPTUREPARMS); capCaptureGetSetup (GetSafeHwnd(), &_captureParms, sizeof CAPTUREPARMS); if(vsbl) ShowWindow(SW_SHOW); //restore }//end else } else { AfxGetApp( )-> DoWaitCursor( 0 ); TRACE("Connection to Capure Driver Failed\n"); iLastError=CAP_CONNECTION_FAILED; return FALSE; } if(ret) TRACE("Connected to <%s: %s>\n",GetDriverName(),GetDriverVer()); else TRACE("Connection (phase 2) to Capure Driver Failed\n"); if(!ret) Disconnect(); return ret; }
//MAIN// int main( int argc, char* args[] ) { //Init Rand to clock srand ( time(NULL) ); //Initialize Window initSDLWindow( SCREENWIDTH, SCREENHEIGHT, SCREENBPP ); //Load Files loadFiles(); //Create Text createText(); //Init classes Timer fps; Level *theLevel; //GAME LOOP// while( run ) { //Start the frame timer fps.start(); //Init Events for keyboard initSDLEvents(); //Apply the background applySurface( 0, 0, background, screen, NULL ); //MENU if ( menu ) { applySurface( ( SCREENWIDTH - menuTitle->w ) / 2, (SCREENHEIGHT / 5), menuTitle, screen, NULL ); applySurface( ( SCREENWIDTH - menuScreen->w ) / 2, (SCREENHEIGHT / 6)*4, menuScreen, screen, NULL ); if (initSDLEvents() == 'e') { menu = 0; game = 1; theLevel = new Level(screen, SCREENWIDTH, SCREENHEIGHT); } }//MENU END //GAME if ( game ) { if ((theLevel->play(frame)) == true) { menu = 1; game = 0; delete theLevel; } }//GAME END //Update the screen if( SDL_Flip( screen ) == -1 ) { return 1; } //Set frame rate setTimer( fps, FRAMESPERSECOND, frame, true ); //check for quit checkQuit(initSDLEvents()); }//GAME LOOP END// //Clean up quitSDL(); return 0; }//END MAIN//