コード例 #1
0
/**
 * Run the discovery thread.
 */
void *WidgetDetectorThread::Run() {
  if (!m_widget_detectors.empty()) {
    OLA_WARN << "List of widget detectors isn't empty!";
  } else {
    m_widget_detectors.push_back(new UsbProWidgetDetector(
        &m_ss,
        ola::NewCallback(this, &WidgetDetectorThread::UsbProWidgetReady),
        ola::NewCallback(this, &WidgetDetectorThread::DescriptorFailed),
        m_usb_pro_timeout));
    m_widget_detectors.push_back(new RobeWidgetDetector(
        &m_ss,
        ola::NewCallback(this, &WidgetDetectorThread::RobeWidgetReady),
        ola::NewCallback(this, &WidgetDetectorThread::DescriptorFailed),
        m_robe_timeout));
  }
  RunScan();
  m_ss.RegisterRepeatingTimeout(
      SCAN_INTERVAL_MS,
      ola::NewCallback(this, &WidgetDetectorThread::RunScan));
  m_ss.Execute(
      ola::NewSingleCallback(this, &WidgetDetectorThread::MarkAsRunning));
  m_ss.Run();

  vector<WidgetDetectorInterface*>::const_iterator iter =
  m_widget_detectors.begin();
  for (; iter != m_widget_detectors.end(); ++iter)
    // this will trigger a call to InternalFreeWidget for any remaining widgets
    delete *iter;

  if (!m_active_descriptors.empty())
    OLA_WARN << m_active_descriptors.size() << " are still active";

  ActiveDescriptors::const_iterator iter2 = m_active_descriptors.begin();
  for (; iter2 != m_active_descriptors.end(); ++iter2) {
    OLA_INFO  << iter2->first;
  }
  m_widget_detectors.clear();
  return NULL;
}
コード例 #2
0
void Execution::OnBtnRunClick(wxCommandEvent& /*event*/)
{
  ToggleControls(false);

  ProjectsArray* Projects = Manager::Get()->GetProjectManager()->GetProjects();
  if ( !Projects->GetCount() )
  {
    cbMessageBox(_("No active project(s) to process."),_T("Header Fixup"));
    ToggleControls(true);
    return;
  }

  // Generating list of files to process
  wxArrayString FilesToProcess;

  if ( m_Scope->GetSelection()==0 ) // project scope
  {
    cbProject* Project = Manager::Get()->GetProjectManager()->GetActiveProject();
    AddFilesFromProject(FilesToProcess,Project);
  }
  else                              // workspace scope
  {
    ProjectsArray* Projects2 = Manager::Get()->GetProjectManager()->GetProjects();
    for ( size_t i = 0; i < Projects2->GetCount(); ++i )
      AddFilesFromProject(FilesToProcess,(*Projects2)[i]);
  }

  if ( FilesToProcess.IsEmpty() )
  {
    cbMessageBox(_("No files to process."),_T("Header Fixup"));
    ToggleControls(true);
    return;
  }

  // Generating list of header groups to use
  wxArrayString Groups;
  for ( size_t i = 0; i < m_Sets->GetCount(); i++ )
  {
    if ( m_Sets->IsChecked(i) )
    {
      Groups.Add(m_Sets->GetString(i));
    }
  }

  if ( Groups.IsEmpty() )
  {
    cbMessageBox(_("Please select at least one header group."),_T("Header Fixup"));
    ToggleControls(true);
    return;
  }

  // Running the scan
  int HeadersAdded = 0;
  if      ( m_FileType->GetSelection()==0 )
  {
    Manager::Get()->GetLogManager()->DebugLog(F(_T("[HeaderFixup]: Processing header files...")));
    m_Log.Add( _T("[header files]\n"));
    m_Processor   = ProcessHeaderFiles;
    HeadersAdded += RunScan(FilesToProcess,Groups);
  }
  else if ( m_FileType->GetSelection()==1 )
  {
    Manager::Get()->GetLogManager()->DebugLog(F(_T("[HeaderFixup]: Processing source files...")));
    m_Log.Add(_T("[source files]\n"));
    m_Processor   = ProcessSourceFiles;
    HeadersAdded += RunScan(FilesToProcess,Groups);
  }
  else
  {
    Manager::Get()->GetLogManager()->DebugLog(F(_T("[HeaderFixup]: Processing header files...")));
    m_Log.Add( _T("[header files]\n"));
    m_Processor   = ProcessHeaderFiles;
    HeadersAdded += RunScan(FilesToProcess,Groups);

    Manager::Get()->GetLogManager()->DebugLog(F(_T("[HeaderFixup]: Processing source files...")));
    m_Log.Add( _T("\n[source files]\n"));
    m_Processor   = ProcessSourceFiles;
    HeadersAdded += RunScan(FilesToProcess,Groups);
  }

  if ( HeadersAdded )
  {
    wxString log; log.Printf(_("Added %d extra includes.\n"),HeadersAdded);
    if ( !m_Protocol->IsChecked() )
      cbMessageBox(log);

    m_Log.Add( _T("\n--> ") + log);
  }
  else
  {
    if ( !m_Protocol->IsChecked() )
      cbMessageBox(_("All files were OK. Nothing to be done."),_T("Header Fixup"));

    m_Log.Add( _("\n--> All files were OK. Nothing to be done.\n"));
  }

  if ( m_Protocol->IsChecked() )
  {
    this->Show(false);
    Protocol Prot(NULL);
    Prot.SetProtocol(m_Log);
    Prot.ShowModal();
  }

  SaveSettings();
  EndModal(wxID_OK);
}// OnBtnRunClick
コード例 #3
0
ファイル: DirectoryAccess.cpp プロジェクト: Wuffie12/iceee
void Platform_DirectoryReader :: ReadFiles(void)
{
    RunScan(TYPE_FILE);
}
コード例 #4
0
ファイル: DirectoryAccess.cpp プロジェクト: Wuffie12/iceee
void Platform_DirectoryReader :: ReadDirectories(void)
{
    RunScan(TYPE_DIR);
}