/** * destroy */ void PhysicsManagerImpl::destroy() { // Removal queue queueProcess(); // Everything else std::list<rigidbody*>::iterator it; for(it=collisions.begin();it!=collisions.end();++it) { if(*it == 0) continue; scenenode* node = static_cast<scenenode*>((*it)->getUserPointer()); // Irrlicht specific // Must we update ref count? if(node) node->drop(); getWorld()->removeRigidBody(*it); delete *it; // No need to erase; it will clean itself up, // we're only responsible for our pointers } if(map) { meshscenenode * n = static_cast<meshscenenode*>(map->getUserPointer()); if(n) n->drop(); delete map; } }
void PBIBackend::installApp(QStringList appID, QString injail){ qDebug() << "Install App requested for:" << appID; bool jailok = RUNNINGJAILS.contains(injail) && JAILPKGS.contains(injail); for(int i=0; i<appID.length(); i++){ NGApp app; if(APPHASH.contains(appID[i])){ app = APPHASH[appID[i]]; } else if(PKGHASH.contains(appID[i])){ app = PKGHASH[appID[i]]; } else{ qDebug() << appID[i] << "is not a valid application"; continue; //go to the next item is this one is invalid } bool jailpkgok = false; if(jailok){ jailpkgok = !JAILPKGS[injail].contains(app.origin); } if( !app.isInstalled || jailpkgok ){ queueProcess(appID[i], true, injail); emit PBIStatusChange(appID[i]); }else{ qDebug() << appID[i] << "is already installed!"; } } // end of loop over items //Now check/start the remove process QTimer::singleShot(0,this,SLOT(checkProcesses()) ); //Now emit the signal that items have changed or been added emit LocalPBIChanges(); }
void PBIBackend::removePBI(QStringList appID, QString injail){ qDebug() << "PBI Removals requested for:" << appID; bool jailok = RUNNINGJAILS.contains(injail) && JAILPKGS.contains(injail); QStringList cancelList; for(int i=0; i<appID.length(); i++){ NGApp app; if(APPHASH.contains(appID[i])){ app = APPHASH[appID[i]]; } else if(PKGHASH.contains(appID[i])){ app = PKGHASH[appID[i]]; } else{ continue; } bool jailpkgok = false; if(jailok){ jailpkgok = !JAILPKGS[injail].contains(app.origin); } if( (!app.isInstalled && !jailok) || jailpkgok ){ //Not a fully-installed PBI - cancel it instead (probably pending) qDebug() << jailok << jailpkgok << appID[i]; cancelList << appID[i]; }else if( BASELIST.contains(appID[i]) ){ qDebug() << "PC-BSD base dependency:" << appID[i] << " - cannot remove"; }else{ queueProcess(appID[i], false, injail); emit PBIStatusChange(appID[i]); } } //If there are PBIs to cancel, do that too if(!cancelList.isEmpty()){ cancelActions(cancelList); } //Now check/start the remove process QTimer::singleShot(0,this,SLOT(checkProcesses()) ); }
TSR::TSR(QObject *parent) : QObject(parent) { memset(finishedQ, 0, sizeof(finishedQ)); ts = TS_STOPPED; inProcess = false; elapsedTime = 0; totalTime = 0; saveLoc = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); //QDir::currentPath(); saveLoc += "/"; //qDebug() << "Default saveLoc" << saveLoc; QAudioEncoderSettings audioSettings; //audioSettings.setBitRate(); audioSettings.setChannelCount(1); //audioSettings.setCodec("audio/amr"); //audioSettings.setEncodingMode(QMultimedia::ConstantBitRateEncoding); //audioSettings.setQuality(QMultimedia::HighQuality); //audioSettings.setSampleRate(16000); audioRecorder = new QAudioRecorder; audioRecorder->setEncodingSettings(audioSettings); //audioRecorder->setAudioInput(audioRecorder->defaultAudioInput()); //audioRecorder->setAudioInput(audioRecorder->audioInputs()[0]); audioRecorder->setVolume(1.0); connect(this, SIGNAL(queueProcess()), this, SLOT(process()), Qt::QueuedConnection); connect(&timer, SIGNAL(timeout()), this, SLOT(process())); timer.start(250); }
void TSR::start(InputQ iq) { memset(finishedQ, 0, sizeof(finishedQ)); elapsedTime = 0; totalTime = 0; time.start(); this->iq = iq; findNextQ(); queueProcess(); }
/** * updateCollisions */ void PhysicsManagerImpl::updateCollisions() { // Should eventually be done using abstraction with // "engine" std::list<rigidbody*>::iterator it; if(!collisions.empty()) { for(it=collisions.begin();it!=collisions.end();++it) { #ifdef USE_IRRLICHT_ENGINE rigidbody * obj = *it; if(obj == 0) { collisions.erase(it); it--; continue; } scenenode * node = static_cast<scenenode*>((*it)->getUserPointer()); if(node) { // Bullet specific code // Position btVector3 p = obj->getCenterOfMassPosition(); node->setPosition(irr::core::vector3df((f32)p[0], (f32)p[1], (f32)p[2])); // Rotation btVector3 e(quatToEuler(obj->getOrientation())); node->setRotation(irr::core::vector3df(e[0], e[1], e[2])); } else { colRemovals.push(*it); } #endif } } // Removal queue queueProcess(); }