Esempio n. 1
0
//Setup camera to stream. Spawn a thread to display stats.
void HandleCameraPlugged(unsigned long UniqueId)
{
    if(!GCamera.UID && !GCamera.Abort)
    {
        GCamera.UID = UniqueId;    
      
        if(CameraSetup())
        {
            printf("Camera %lu opened\n",UniqueId);   
            
            // start streaming from the camera
            if(CameraStart())
            {
                //create a thread to display camera stats. 
                SpawnThread();                    
            }
			else
			{
				//failure. signal main thread to abort
				GCamera.Abort = true;
			}
        }
        else
		{
            //failure. signal main thread to abort
			GCamera.Abort = true;
		}
    }  
}
Esempio n. 2
0
Terminator::Terminator() {
  static std::atomic_flag created = ATOMIC_FLAG_INIT;
  if (created.test_and_set()) {
    throw std::runtime_error("Terminator may be crated exactly once.");
  }

  std::atomic_init(&this->should_terminate_, false);
  signal_handler_ = SpawnThread(this);
}
Esempio n. 3
0
void AsTickManager::StartTimer()
{
    if(mTickLoopThread == 0)
	{

		mTickLoopThread = SpawnThread();

        mTimer->Start();

    }
}
Esempio n. 4
0
void AsTickTimer::Start()
{
    mShouldKeepTicking = true;
    mPause = false;

    if(mThread == 0)
    {
		mThread = SpawnThread();
    }

}
Esempio n. 5
0
void CThread::Create(bool bAutoDelete, unsigned stacksize)
{
  if (m_ThreadId != 0)
  {
    LOG(LOGERROR, "%s - fatal error creating thread- old thread id not null", __FUNCTION__);
    exit(1);
  }
  m_iLastTime = XbmcThreads::SystemClockMillis() * 10000;
  m_iLastUsage = 0;
  m_fLastUsage = 0.0f;
  m_bAutoDelete = bAutoDelete;
  m_bStop = false;
  m_StopEvent.Reset();
  m_TermEvent.Reset();
  m_StartEvent.Reset();

  SpawnThread(stacksize);
}
Esempio n. 6
0
void
FindWindow::MessageReceived(BMessage *msg)
{
	BMenuItem *item = NULL;
	switch (msg->what)
	{
		case M_FIND:
		{
			SpawnThread(THREAD_FIND);
			break;
		}
		case M_REPLACE:
		{
			SpawnThread(THREAD_REPLACE);
			break;
		}
		case M_REPLACE_ALL:
		{
			SpawnThread(THREAD_REPLACE_ALL);
			break;
		}
		case M_SHOW_RESULT:
		{
			GrepListItem *item = dynamic_cast<GrepListItem*>(fResultList->ItemAt(
													fResultList->CurrentSelection()));
			if (item)
			{
				BMessage refMessage(B_REFS_RECEIVED);
				entry_ref fileref = item->GetRef();
				refMessage.AddRef("refs",&fileref);
				int32 line = item->GetLine();
				if (line >= 0)
					refMessage.AddInt32("be:line",line);
				STRACE(2,("Paladin FindWindow Launching File Ref: %s:%i",fileref.name,line));
				be_roster->Launch(&fileref,&refMessage);
			}
			break;
		}
		case M_TOGGLE_REGEX:
		{
			fIsRegEx = !fIsRegEx;
			item = fMenuBar->FindItem(B_TRANSLATE("Regular expression"));
			item->SetMarked(fIsRegEx);
			break;
		}
		case M_TOGGLE_CASE_INSENSITIVE:
		{
			fIgnoreCase = !fIgnoreCase;
			item = fMenuBar->FindItem(B_TRANSLATE("Ignore case"));
			item->SetMarked(fIgnoreCase);
			break;
		}
		case M_TOGGLE_MATCH_WORD:
		{
			fMatchWord = !fMatchWord;
			item = fMenuBar->FindItem(B_TRANSLATE("Match whole word"));
			item->SetMarked(fMatchWord);
			break;
		}
		case M_FIND_CHANGED:
		{
			if (fFindBox->Text() && strlen(fFindBox->Text()) > 0)
				fFindButton->SetEnabled(true);
			else
				fFindButton->SetEnabled(false);
			break;
		}
		case M_REPLACE_CHANGED:
		{
			if (fReplaceBox->Text() && strlen(fReplaceBox->Text()) > 0)
				; // only enabled after Find used
			else
				EnableReplace(false);
			break;
		}
		case M_SET_PROJECT:
		{
			Project *proj;
			if (msg->FindPointer("project", (void**)&proj) != B_OK)
				break;
			
			break;
		}
		default:
		{
			DWindow::MessageReceived(msg);
			break;
		}
	}
}
Esempio n. 7
0
int  spawnThread(void (*f)(), int p) {
    if(useDefault) return SpawnThread(f,p);
    else return MySpawnThread(f,p);
}