PlaylistDetailsWidget::PlaylistDetailsWidget(MainWindow* mw, QWidget* parent): QGridLayout() { _mw = mw; _parent = (PlaylistHandlerWidget*) parent; _playlistNameLabel = new QLabel(tr("Playlist being played :")); _playlistDurationLabel = new QLabel(tr("Duration :")); _nbFilmsLabel = new QLabel(tr("Number of films :")); _playlistEndsInLabel = new QLabel(tr("Ends in :")); _playlistNameValue = new QLabel("-"); _playlistDurationValue = new QLabel("--:--:--:"); _nbFilmsValue = new QLabel("0"); _playlistEndsInValue = new QLabel("--:--:--"); _timer = new QTimer(this); addWidget(_playlistNameLabel,0,0); addWidget(_playlistNameValue,0,1); addWidget(_playlistDurationLabel,0,2); addWidget(_playlistDurationValue,0,3); addWidget(_nbFilmsLabel,1,0); addWidget(_nbFilmsValue,1,1); addWidget(_playlistEndsInLabel,1,2); addWidget(_playlistEndsInValue,1,3); _playlistEndsInLabel->hide(); _playlistEndsInValue->hide(); connect(_mw->playerControlWidget(), SIGNAL(playState()), this, SLOT(updatePlaylistWidgetEndsInPlay())); connect(_mw->playerControlWidget(), SIGNAL(pauseState()), this, SLOT(updatePlaylistWidgetEndsInPause())); connect(_mw->playerControlWidget(), SIGNAL(stopState()), this, SLOT(updatePlaylistWidgetEndsInStop())); connect(_mw->playerControlWidget()->seekWidget()->flipBar(), SIGNAL(positionManuallyChanged()), this, SLOT(updateEcart())); }
int main() { // initialize IRQ (interrupts) // this must come before everything else IRQ_INIT(); // Initialize global pointers GameStateManager gameStateMan; OamManager oamMan; AudioManager audioMan; PlayState playState(&gameStateMan); TitleScreenState titleState(&gameStateMan); PauseState pauseState(&gameStateMan); GameOverState gameOverState(&gameStateMan); StoreState storeState(&gameStateMan); StageEndState stageEndState(&gameStateMan); g_gameStateMan = &gameStateMan; g_oamMan = &oamMan; g_playState = &playState; g_titleState = &titleState; g_pauseState = &pauseState; g_gameOverState = &gameOverState; g_storeState = &storeState; g_stageEndState = &stageEndState; g_audioMan = &audioMan; // create stage events StageEvent endEvent; StageEvent event1; StageEvent event2; StageEvent event3; StageEvent event4; StageEvent event5; StageEvent event6; StageEvent firePowerPowerUpEvent; StageEvent invinciblePowerUpEvent; StageEvent bombPowerUpEvent; g_endEvent = &endEvent; g_event1 = &event1; g_event2 = &event2; g_event3 = &event3; g_event4 = &event4; g_event5 = &event5; g_event6 = &event6; g_firePowerPowerUpEvent = &firePowerPowerUpEvent; g_invinciblePowerUpEvent = &invinciblePowerUpEvent; g_bombPowerUpEvent = &bombPowerUpEvent; initializeEvents(); StageEvent * stage1Events[24]; int stage1Timing[24]; int stage1yOffset[24]; fillEventsStage1(stage1Events, stage1Timing, stage1yOffset); Stage stage1(&playState, stage1Events, stage1Timing, stage1yOffset, 24); g_stage1 = &stage1; StageEvent * stage2Events[20]; int stage2Timing[20]; int stage2yOffset[20]; fillEventsStage2(stage2Events, stage2Timing, stage2yOffset); Stage stage2(&playState, stage2Events, stage2Timing, stage2yOffset, 20); g_stage2 = &stage2; StageEvent * stage3Events[20]; int stage3Timing[20]; int stage3yOffset[20]; fillEventsStage3(stage3Events, stage3Timing, stage3yOffset); Stage stage3(&playState, stage3Events, stage3Timing, stage3yOffset, 20); g_stage3 = &stage3; videoInit(); g_gameStateMan->pushState(g_titleState); #ifdef DEBUG // timers used for debug display REG_TM1D = 0x10000 - 2808; // overflow into timer 2 every 2808 cycles, approx. 1% of a screen refresh REG_TM2D = 0; REG_TM2CNT = TM_CASCADE | TM_ENABLE; REG_TM1CNT = TM_FREQ_1 | TM_ENABLE; int oldPercent, diffPercent, oldFrac, diffFrac; char buf[15]; #endif // DEBUG while(true) { // wait until next VBlank // prefer this over vid_vsync() - it's // better for power consumption VBlankIntrWait(); #ifdef DEBUG // grab current percentage oldPercent = REG_TM2D; oldFrac = REG_TM1D; #endif // DEBUG // update shadow OAM to real OAM g_oamMan->update(); // mix the next frame's audio g_audioMan->sndMix(); // poll keys - do not do this in other places key_poll(); // update the game state g_gameStateMan->update(); #ifdef DEBUG // grab current percentage, and write it out diffPercent = REG_TM2D - oldPercent; diffFrac = REG_TM1D - oldFrac; // round the percent based on the fractional amount if (diffFrac > 1404) { diffPercent++; } else if (diffFrac < -1404) { diffPercent--; } gba_itoa(diffPercent, buf); // clear out characters from the last write write(" ", Vec2(0, 0)); write(buf, Vec2(0, 0)); // reset timer 2 to 0 REG_TM2CNT = 0; // disable timer REG_TM2D = 0; // set new value to 0 REG_TM2CNT = TM_CASCADE | TM_ENABLE; // reenable timer #endif // DEBUG } }