static unsigned int handleSession(ruleset *tree, char *state, void *rulesBinding, unsigned short actionType, unsigned short *commandCount, unsigned char store) { char *next; jsonProperty properties[MAX_BUCKET_LENGTH * MAX_CONFLICTS]; memset(properties, 0, sizeof(properties)); int result = constructObject(NULL, state, properties, &next); if (result != RULES_OK) { return result; } jsonProperty *sidProperty; int sidLength; result = getId(properties, ID_HASH, &sidProperty, &sidLength); if (result != RULES_OK) { return result; } char sid[sidLength + 1]; strncpy(sid, sidProperty->firstValue, sidLength); sid[sidLength] = '\0'; result = handleAlpha(tree, sid, NULL, state, &tree->nodePool[NODE_S_OFFSET].value.a, properties, &rulesBinding, actionType, commandCount); if (result == ERR_EVENT_NOT_HANDLED && store) { *commandCount = *commandCount + 1; result = storeSession(rulesBinding, sid, state); } return result; }
/*! \brief Action: I/O device configurator triggered. * * This slot is activated when the user selects "I/O Devices" in the * menu. It activates the I/O configurator and if the user closes the * configurator using the OK button, the new configuration is read and * sent to the receiver. */ int MainWindow::on_actionIoConfig_triggered() { qDebug() << "Configure I/O devices."; CIoConfig *ioconf = new CIoConfig(m_settings); int confres = ioconf->exec(); if (confres == QDialog::Accepted) { if (ui->actionDSP->isChecked()) // suspend DSP while we reload settings on_actionDSP_triggered(false); storeSession(); loadConfig(m_settings->fileName(), false); if (ui->actionDSP->isChecked()) // restsart DSP on_actionDSP_triggered(true); } delete ioconf; return confres; }
void KSMServer::completeShutdownOrCheckpoint() { if ( state != Shutdown && state != Checkpoint ) return; for ( KSMClient* c = clients.first(); c; c = clients.next() ) { if ( !c->saveYourselfDone && !c->waitForPhase2 ) return; // not done yet } // do phase 2 bool waitForPhase2 = false; for ( KSMClient* c = clients.first(); c; c = clients.next() ) { if ( !c->saveYourselfDone && c->waitForPhase2 ) { c->waitForPhase2 = false; SmsSaveYourselfPhase2( c->connection() ); waitForPhase2 = true; } } if ( waitForPhase2 ) return; if ( saveSession ) storeSession(); else discardSession(); if ( state == Shutdown ) { bool waitForKNotify = true; if( !kapp->dcopClient()->connectDCOPSignal( "knotify", "", "notifySignal(QString,QString,QString,QString,QString,int,int,int,int)", "ksmserver", "notifySlot(QString,QString,QString,QString,QString,int,int,int,int)", false )) { waitForKNotify = false; } if( !kapp->dcopClient()->connectDCOPSignal( "knotify", "", "playingFinished(int,int)", "ksmserver", "logoutSoundFinished(int,int)", false )) { waitForKNotify = false; } // event() can return -1 if KNotifyClient short-circuits and avoids KNotify logoutSoundEvent = KNotifyClient::event( 0, "exitkde" ); // KDE says good bye if( logoutSoundEvent <= 0 ) waitForKNotify = false; if( waitForKNotify ) { state = WaitingForKNotify; knotifyTimeoutTimer.start( 20000, true ); return; } startKilling(); } else if ( state == Checkpoint ) { for ( KSMClient* c = clients.first(); c; c = clients.next() ) { SmsSaveComplete( c->connection()); } state = Idle; } }
MainWindow::~MainWindow() { /* stop and delete timers */ dec_timer->stop(); delete dec_timer; meter_timer->stop(); delete meter_timer; iq_fft_timer->stop(); delete iq_fft_timer; audio_fft_timer->stop(); delete audio_fft_timer; if (m_settings) { m_settings->setValue("configversion", 2); m_settings->setValue("crashed", false); // save session storeSession(); m_settings->sync(); delete m_settings; } delete ui; delete uiDockRxOpt; delete uiDockAudio; delete uiDockFft; //delete uiDockIqPlay; delete uiDockInputCtl; delete rx; delete [] d_fftData; delete [] d_realFftData; delete [] d_iirFftData; delete [] d_pwrFftData; }