Esempio n. 1
0
	/**
	 * 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;
		}
	}
Esempio n. 2
0
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();
}
Esempio n. 3
0
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()) );
}
Esempio n. 4
0
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);
}
Esempio n. 5
0
void TSR::start(InputQ iq)
{
    memset(finishedQ, 0, sizeof(finishedQ));
    elapsedTime = 0; totalTime = 0;
    time.start();
    this->iq = iq;
    findNextQ();
    queueProcess();
}
Esempio n. 6
0
	/**
	 * 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();
	}