int main() { IWindow* w; ISurface* s; ILocalDeviceManager* dm; IPlayer* player; IPlayer* img; #if HAVE_COMPSUPPORT IComponentManager* cm = IComponentManager::getCMInstance(); dm = ((LocalDeviceManagerCreator*)(cm->getObject("LocalDeviceManager")))(); #else dm = LocalDeviceManager::getInstance(); #endif dm->createDevice("systemScreen(0)"); #if HAVE_COMPSUPPORT w = ((WindowCreator*)(cm->getObject("Window")))(10, 10, 100, 100); #else w = new DFBWindow(10, 10, 100, 100); #endif w->setCaps(w->getCap("ALPHACHANNEL")); w->draw(); w->show(); player = new Player("teste"); img = new ImagePlayer("/root/bg_initializing.png"); s = img->getSurface(); w->renderFrom(s); //TODO: tests cout << "Player test has shown image. press enter to continue" << endl; getchar(); dm->clearWidgetPools(); cout << "Player test has released widgets. press enter to continue" << endl; getchar(); return 0; }
void GingaNclGfx::show(int l, int t, int w, int h) { int size, compRollerW, compRollerH, initX, initY; double rate; vector<int> x; vector<int> y; AnimePlayer* p; IWindow* win; ISurface* s; vector<string>* mrls, *mrlsAux; IComponentManager* cm = IComponentManager::getCMInstance(); release(); GingaNclGfx::w = w; GingaNclGfx::h = h; rate = 0.2; initX = (w/2) - ((550 * rate)/2); initY = (h/2) - ((530 * rate)/2); x.push_back(initX + (130 * rate)); x.push_back(initX + (240 * rate)); x.push_back(initX + (340 * rate)); x.push_back(initX + (400 * rate)); x.push_back(initX + (340 * rate)); x.push_back(initX + (240 * rate)); x.push_back(initX + (130 * rate)); x.push_back(initX + (60 * rate)); y.push_back(initY + (90 * rate)); y.push_back(initY + (50 * rate)); y.push_back(initY + (90 * rate)); y.push_back(initY + (190 * rate)); y.push_back(initY + (330 * rate)); y.push_back(initY + (380 * rate)); y.push_back(initY + (330 * rate)); y.push_back(initY + (190 * rate)); compRollerW = 115 * rate; compRollerH = 113 * rate; mrls = new vector<string>; mrls->push_back("/usr/local/lib/ginga/files/img/roller/b1.png"); mrls->push_back("/usr/local/lib/ginga/files/img/roller/b2.png"); mrls->push_back("/usr/local/lib/ginga/files/img/roller/b3.png"); mrls->push_back("/usr/local/lib/ginga/files/img/roller/b4.png"); mrls->push_back("/usr/local/lib/ginga/files/img/roller/b5.png"); mrls->push_back("/usr/local/lib/ginga/files/img/roller/b6.png"); mrls->push_back("/usr/local/lib/ginga/files/img/roller/b7.png"); mrls->push_back("/usr/local/lib/ginga/files/img/roller/b8.png"); animes = new vector<AnimePlayer*>; bg = ((WindowCreator*)(cm->getObject("Window")))(l, t, w, h); s = ((ImageRenderer*)(cm->getObject("ImageRenderer")))( (char*)("/usr/local/lib/ginga/files/img/roller/loading.png")); bg->setCaps(bg->getCap("ALPHACHANNEL")); bg->draw(); bg->show(); bg->raiseToTop(); bg->renderFrom(s); delete s; s = NULL; bottom = ((WindowCreator*)(cm->getObject("Window")))( 5, h - 30, w / 2, 30); bottom->setCaps(bottom->getCap("ALPHACHANNEL")); bottom->draw(); bottom->setBackgroundColor(0, 0, 0, 0); bottom->show(); bottom->raiseToTop(); top = ((WindowCreator*)(cm->getObject("Window")))(5, 5, w / 2, 30); top->setCaps(top->getCap("ALPHACHANNEL")); top->draw(); top->setBackgroundColor(0, 0, 0, 0); top->show(); top->raiseToTop(); size = mrls->size(); for (unsigned int i = 0; i < size; i++) { mrlsAux = new vector<string>(*mrls); p = createAnimePlayer(mrlsAux); win = ((WindowCreator*)(cm->getObject("Window")))( x[i], y[i], compRollerW, compRollerH); win->setCaps(win->getCap("ALPHACHANNEL")); win->draw(); win->show(); win->raiseToTop(); p->setVoutWindow(win); animes->push_back(p); roll(mrls); } delete mrls; mrls = NULL; for (unsigned int i = 0; i < size; i++) { ((*animes)[i])->play(); } }
void GingaNclGfx::show(int l, int t, int w, int h) { int compRollerW, compRollerH, initX, initY; unsigned int i, size; double rate; vector<int> x; vector<int> y; AnimePlayer* p; IWindow* win; ISurface* s; vector<string>* mrls, *mrlsAux; release(); GingaNclGfx::w = w; GingaNclGfx::h = h; rate = 0.2; initX = (w/2) - ((550 * rate)/2); initY = (h/2) - ((530 * rate)/2); x.push_back(initX + (130 * rate)); x.push_back(initX + (240 * rate)); x.push_back(initX + (340 * rate)); x.push_back(initX + (400 * rate)); x.push_back(initX + (340 * rate)); x.push_back(initX + (240 * rate)); x.push_back(initX + (130 * rate)); x.push_back(initX + (60 * rate)); y.push_back(initY + (90 * rate)); y.push_back(initY + (50 * rate)); y.push_back(initY + (90 * rate)); y.push_back(initY + (190 * rate)); y.push_back(initY + (330 * rate)); y.push_back(initY + (380 * rate)); y.push_back(initY + (330 * rate)); y.push_back(initY + (190 * rate)); compRollerW = 115 * rate; compRollerH = 113 * rate; mrls = new vector<string>; mrls->push_back(DATA_PREFIX_PATH "/share/ginga/img/roller/b1.png"); mrls->push_back(DATA_PREFIX_PATH "/share/ginga/img/roller/b2.png"); mrls->push_back(DATA_PREFIX_PATH "/share/ginga/img/roller/b3.png"); mrls->push_back(DATA_PREFIX_PATH "/share/ginga/img/roller/b4.png"); mrls->push_back(DATA_PREFIX_PATH "/share/ginga/img/roller/b5.png"); mrls->push_back(DATA_PREFIX_PATH "/share/ginga/img/roller/b6.png"); mrls->push_back(DATA_PREFIX_PATH "/share/ginga/img/roller/b7.png"); mrls->push_back(DATA_PREFIX_PATH "/share/ginga/img/roller/b8.png"); animes = new vector<AnimePlayer*>; #if HAVE_COMPSUPPORT bg = ((WindowCreator*)(cm->getObject("Window")))(l, t, w, h); s = ((ImageRenderer*)(cm->getObject("ImageRenderer")))( (char*)(DATA_PREFIX_PATH "/share/ginga/img/roller/loading.png")); #else bg = new DFBWindow(l, t, w, h); s = ImagePlayer::renderImage( DATA_PREFIX_PATH "/share/ginga/img/roller/loading.png"); #endif bg->setCaps(bg->getCap("ALPHACHANNEL")); bg->draw(); bg->show(); bg->raiseToTop(); bg->renderFrom(s); delete s; s = NULL; #if HAVE_COMPSUPPORT bottom = ((WindowCreator*)(cm->getObject("Window")))( 5, h - 30, w / 2, 30); #else bottom = new DFBWindow( 5, h - 30, w / 2, 30); #endif bottom->setCaps(bottom->getCap("ALPHACHANNEL")); bottom->draw(); bottom->setBackgroundColor(0, 0, 0, 0); bottom->show(); bottom->raiseToTop(); #if HAVE_COMPSUPPORT top = ((WindowCreator*)(cm->getObject("Window")))(5, 5, w / 2, 30); #else top = new DFBWindow(5, 5, w / 2, 30); #endif top->setCaps(top->getCap("ALPHACHANNEL")); top->draw(); top->setBackgroundColor(0, 0, 0, 0); top->show(); top->raiseToTop(); size = mrls->size(); for (i = 0; i < size; i++) { mrlsAux = new vector<string>(*mrls); p = createAnimePlayer(mrlsAux); #if HAVE_COMPSUPPORT win = ((WindowCreator*)(cm->getObject("Window")))( x[i], y[i], compRollerW, compRollerH); #else win = new DFBWindow( x[i], y[i], compRollerW, compRollerH); #endif win->setCaps(win->getCap("ALPHACHANNEL")); win->draw(); win->show(); win->raiseToTop(); p->setVoutWindow(win); animes->push_back(p); roll(mrls); } delete mrls; mrls = NULL; for (unsigned int i = 0; i < size; i++) { ((*animes)[i])->play(); } }
void CommonCoreManager::startPresentation() { int aPid, vPid; #if HAVE_TUNER && HAVE_TSPARSER && HAVE_DSMCC NclPlayerData* data = NULL; StcWrapper* sw = NULL; INetworkInterface* ni = NULL; ITSFilter* mavFilter = NULL; IWindow* wmv = NULL; ISurface* s = NULL; ISurface* smv = NULL; //IPlayer* ma = NULL; IPlayer* mv = NULL; string mrlv = "sbtvd-ts://dvr0.ts"; //string mrla = "sbtvd-ts://dvr1.ts"; data = pem->createNclPlayerData(); if (fileExists(PREFIX_PATH "/tuner/tuning.png")) { #if HAVE_COMPSUPPORT tuningWindow = ((WindowCreator*)(cm->getObject("Window")))( data->x, data->y, data->w, data->h); s = ((ImageRenderer*)(cm->getObject("ImageRenderer")))( (char*)(PREFIX_PATH "/tuner/tuning.png")); #else tuningWindow = new DFBWindow(data->x, data->y, data->w, data->h); s = ImagePlayer::renderImage( PREFIX_PATH "/tuner/tuning.png"); #endif ((IWindow*)tuningWindow)->setCaps( ((IWindow*)tuningWindow)->getCap("ALPHACHANNEL")); ((IWindow*)tuningWindow)->draw(); ((IWindow*)tuningWindow)->show(); ((IWindow*)tuningWindow)->lowerToBottom(); ((IWindow*)tuningWindow)->renderFrom(s); delete s; s = NULL; } #if HAVE_COMPSUPPORT wmv = ((WindowCreator*)(cm->getObject("Window")))( data->x, data->y, data->w, data->h); #else wmv = new DFBWindow(data->x, data->y, data->w, data->h); #endif wmv->draw(); delete data; ((ITuner*)tuner)->tune(); ((IDemuxer*)demuxer)->waitProgramInformation(); if (ocDelay == 0) { ((IDataProcessor*)dataProcessor)-> createStreamTypeSectionFilter( STREAM_TYPE_DSMCC_TYPE_B, (IDemuxer*)demuxer); } pem->setCurrentPrivateBaseId(((IDemuxer*)demuxer)->getTSId()); if (ocDelay > 0) { ((IDataProcessor*)dataProcessor)-> createStreamTypeSectionFilter( STREAM_TYPE_DSMCC_TYPE_B, (IDemuxer*)demuxer); ::usleep((int)(ocDelay * 1000)); } #if HAVE_COMPSUPPORT mavFilter = ((filterCreator*)(cm->getObject("PipeFilter")))(0); #else mavFilter = new PipeFilter(0); #endif //mavFilter->addDestination(1); ((IDemuxer*)demuxer)->addPesFilter(PFT_DEFAULTTS, mavFilter); // Create Main AV cout << "lssm-ccm::sp creating av player" << endl; #if HAVE_COMPSUPPORT mv = ((PlayerCreator*)(cm->getObject("AVPlayer")))( mrlv.c_str(), true); //ma = ((PlayerCreator*)(cm->getObject("AVPlayer")))( // mrla.c_str(), false); #else mv = new AVPlayer(mrlv.c_str(), true); //ma = new AVPlayer(mrla.c_str(), true); #endif //ma->setOutWindow(NULL); mv->setOutWindow(wmv); cout << "lssm-ccp::sp create av ok" << endl; vPid = ((IDemuxer*)demuxer)->getDefaultMainVideoPid(); aPid = ((IDemuxer*)demuxer)->getDefaultMainAudioPid(); ((IDemuxer*)demuxer)->waitBuffers(); while (smv == NULL) { smv = mv->getSurface(); ::usleep(100000); } ni = ((ITuner*)tuner)->getCurrentInterface(); if (ni != NULL && ni->getCaps() & DPC_CAN_DECODESTC) { cout << "lssm-ccp::sp using stc hardware!" << endl; ((IDataProcessor*)dataProcessor)->setSTCProvider(ni); } else { cout << "lssm-ccp::sp using stc wrapper!" << endl; sw = new StcWrapper(mv); ((IDataProcessor*)dataProcessor)->setSTCProvider(sw); } nptProvider = ((IDataProcessor*)dataProcessor)->getNPTProvider(); if (nptProvider != NULL) { pem->setTimeBaseProvider((ITimeBaseProvider*)nptProvider); } /*((IDataProcessor*)dataProcessor)-> createStreamTypeSectionFilter( STREAM_TYPE_DSMCC_TYPE_C, (IDemuxer*)demuxer);*/ ((IDataProcessor*)dataProcessor)-> createStreamTypeSectionFilter( STREAM_TYPE_DSMCC_TYPE_D, (IDemuxer*)demuxer); /*((IDataProcessor*)dataProcessor)-> createPidSectionFilter( SDT_PID, (IDemuxer*)demuxer); //SDT ((IDataProcessor*)dataProcessor)-> createPidSectionFilter( EIT_PID, (IDemuxer*)demuxer); //EIT ((IDataProcessor*)dataProcessor)-> createPidSectionFilter( CDT_PID, (IDemuxer*)demuxer); //CDT*/ wmv->show(); if (tuningWindow != NULL) { ((IWindow*)tuningWindow)->clearContent(); ((IWindow*)tuningWindow)->hide(); delete ((IWindow*)tuningWindow); tuningWindow = NULL; } pthread_mutex_t mutex; pthread_cond_t condition; cout << "lssm ccm::sp cond_wait" << endl; pthread_mutex_init(&mutex, NULL); pthread_cond_init(&condition, NULL); pthread_mutex_lock(&mutex); pthread_cond_wait(&condition, &mutex); pthread_mutex_unlock(&mutex); pthread_mutex_destroy(&mutex); pthread_cond_destroy(&condition); cout << "lssm ccm::sp all done!" << endl; #endif //TUNER... // Activate PEM Connector //pem->startConnector(); }