Ejemplo n.º 1
0
bool CGUIWindowMusicSongs::OnContextButton(int itemNumber, CONTEXT_BUTTON button)
{
  CFileItemPtr item;
  if (itemNumber >= 0 && itemNumber < m_vecItems->Size())
    item = m_vecItems->Get(itemNumber);
  if ( m_vecItems->IsVirtualDirectoryRoot() && item)
  {
    if (CGUIDialogContextMenu::OnContextButton("music", item, button))
    {
      if (button == CONTEXT_BUTTON_REMOVE_SOURCE)
        OnRemoveSource(itemNumber);

      Update("");
      return true;
    }
  }

  switch (button)
  {
  case CONTEXT_BUTTON_SCAN:
    OnScan(itemNumber);
    return true;

  case CONTEXT_BUTTON_RIP_TRACK:
    OnRipTrack(itemNumber);
    return true;

  case CONTEXT_BUTTON_RIP_CD:
    OnRipCD();
    return true;

#ifdef HAS_CDDA_RIPPER
  case CONTEXT_BUTTON_CANCEL_RIP_CD:
    CCDDARipper::GetInstance().CancelJobs();
    return true;
#endif

  case CONTEXT_BUTTON_CDDB:
    if (m_musicdatabase.LookupCDDBInfo(true))
      Refresh();
    return true;

  case CONTEXT_BUTTON_DELETE:
    OnDeleteItem(itemNumber);
    return true;

  case CONTEXT_BUTTON_RENAME:
    OnRenameItem(itemNumber);
    return true;

  case CONTEXT_BUTTON_SWITCH_MEDIA:
    CGUIDialogContextMenu::SwitchMedia("music", m_vecItems->GetPath());
    return true;
  default:
    break;
  }
  return CGUIWindowMusicBase::OnContextButton(itemNumber, button);
}
Ejemplo n.º 2
0
bool CGUIWindowJukeboxSongs::OnAction(const CAction& action) {
  if (action.GetID() == ACTION_SCAN_ITEM) {
    int item = m_viewControl.GetSelectedItem();
    if (item > -1 && m_vecItems->Get(item)->m_bIsFolder)
      OnScan(m_vecItems->Get(item));

    return true;
  }

  return CGUIWindowJukeboxBase::OnAction(action);
}
Ejemplo n.º 3
0
bool CGUIWindowJukeboxSongs::OnContextButton(CFileItemPtr pItem, CONTEXT_BUTTON button) {
  if (m_vecItems->IsVirtualDirectoryRoot() && pItem) {
    if (CGUIDialogContextMenu::OnContextButton("music", pItem, button)) {
      if (button == CONTEXT_BUTTON_REMOVE_SOURCE)
        OnRemoveSource(pItem);

      Update("");
      return true;
    }
  }

  switch (button) {
    case CONTEXT_BUTTON_SCAN:
      OnScan(pItem);
      return true;

    case CONTEXT_BUTTON_RIP_TRACK:
      OnRipTrack(pItem);
      return true;

    case CONTEXT_BUTTON_RIP_CD:
      OnRipCD();
      return true;

    case CONTEXT_BUTTON_CDDB:
      if (m_musicdatabase.LookupCDDBInfo(true))
        Update(m_vecItems->GetPath());
      return true;

    case CONTEXT_BUTTON_DELETE:
      OnDeleteItem(pItem);
      return true;

    case CONTEXT_BUTTON_RENAME:
      OnRenameItem(pItem);
      return true;

    case CONTEXT_BUTTON_SWITCH_MEDIA:
      CGUIDialogContextMenu::SwitchMedia("music", m_vecItems->GetPath());
      return true;
    default:
      break;
  }
  return CGUIWindowJukeboxBase::OnContextButton(pItem, button);
}
Ejemplo n.º 4
0
bool CGUIWindowMusicSongs::OnMessage(CGUIMessage& message)
{
  switch ( message.GetMessage() )
  {
  case GUI_MSG_WINDOW_DEINIT:
    if (m_thumbLoader.IsLoading())
      m_thumbLoader.StopThread();
    break;
  case GUI_MSG_WINDOW_INIT:
    {
      // removed the start window check from files view
      // the window translator does it by using a virtual window id (5)

      // is this the first time the window is opened?
      if (m_vecItems->GetPath() == "?" && message.GetStringParam().empty())
        message.SetStringParam(CMediaSourceSettings::Get().GetDefaultSource("music"));

      return CGUIWindowMusicBase::OnMessage(message);
    }
    break;

  case GUI_MSG_DIRECTORY_SCANNED:
    {
      CFileItem directory(message.GetStringParam(), true);

      // Only update thumb on a local drive
      if (directory.IsHD())
      {
        CStdString strParent;
        URIUtils::GetParentPath(directory.GetPath(), strParent);
        if (directory.GetPath() == m_vecItems->GetPath() || strParent == m_vecItems->GetPath())
          Refresh();
      }
    }
    break;

  case GUI_MSG_NOTIFY_ALL:
    {
      if (message.GetParam1()==GUI_MSG_REMOVED_MEDIA)
        DeleteRemoveableMediaDirectoryCache();
    }
    break;

  case GUI_MSG_CLICKED:
    {
      int iControl = message.GetSenderId();

      if (iControl == CONTROL_BTNPLAYLISTS)
      {
        if (!m_vecItems->GetPath().Equals("special://musicplaylists/"))
          Update("special://musicplaylists/");
      }
      else if (iControl == CONTROL_BTNSCAN)
      {
        OnScan(-1);
      }
      else if (iControl == CONTROL_BTNREC)
      {
        if (g_application.m_pPlayer->IsPlayingAudio() )
        {
          if (g_application.m_pPlayer->CanRecord() )
          {
            bool bIsRecording = g_application.m_pPlayer->IsRecording();
            g_application.m_pPlayer->Record(!bIsRecording);
            UpdateButtons();
          }
        }
      }
      else if (iControl == CONTROL_BTNRIP)
      {
        OnRipCD();
      }
    }
    break;
  }

  return CGUIWindowMusicBase::OnMessage(message);
}