📄 win32musicbrowser.cpp
字号:
{
(*i)->PlaylistListItemAdded(pie->Item());
break;
}
}
}
break;
}
case INFO_PlaylistItemsUpdated:
{
PlaylistItemsUpdatedEvent* pie = (PlaylistItemsUpdatedEvent*)event;
if(pie->Manager() == m_plm)
PlaylistListItemsUpdated(pie->Items());
else
{
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
{
if((*i)->PLManager() == pie->Manager())
{
(*i)->PlaylistListItemsUpdated(pie->Items());
break;
}
}
}
break;
}
case INFO_PlaylistItemMoved:
{
PlaylistItemMovedEvent* pie = (PlaylistItemMovedEvent*)event;
if(pie->Manager() == m_plm)
PlaylistListItemMoved(pie->Item(), pie->OldIndex(), pie->NewIndex());
else
{
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
{
if((*i)->PLManager() == pie->Manager())
{
(*i)->PlaylistListItemMoved(pie->Item(), pie->OldIndex(), pie->NewIndex());
break;
}
}
}
break;
}
case INFO_PlaylistItemRemoved:
{
PlaylistItemRemovedEvent* pie = (PlaylistItemRemovedEvent*)event;
if(pie->Manager() == m_plm)
PlaylistListItemRemoved(pie->Items(), pie->Indices());
else
{
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
{
if((*i)->PLManager() == pie->Manager())
{
(*i)->PlaylistListItemRemoved(pie->Items(), pie->Indices());
break;
}
}
}
break;
}
case INFO_PlaylistSorted:
{
PlaylistSortedEvent* pie = (PlaylistSortedEvent*)event;
if(pie->Manager() == m_plm)
PlaylistListSorted();
else
{
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
{
if((*i)->PLManager() == pie->Manager())
{
(*i)->PlaylistListSorted();
break;
}
}
}
break;
}
case INFO_PlaylistCurrentItemInfo:
{
ListView_RedrawItems(m_hPlaylistView,
m_currentplaying,
m_currentplaying);
m_currentplaying = m_plm->GetCurrentIndex();
ListView_RedrawItems(m_hPlaylistView,
m_currentplaying,
m_currentplaying);
break;
}
case INFO_SearchMusicDone:
{
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
{
(*i)->MusicSearchDone();
}
MusicSearchDone();
break;
}
case INFO_BrowserMessage:
{
const char* cancelMsg = "(Press ESC to Cancel) ";
string message;
if(m_bSearchInProgress)
{
message = cancelMsg;
}
message += ((BrowserMessageEvent *)event)->GetBrowserMessage();
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
{
(*i)->DisplayBrowserMessage(message.c_str());
}
DisplayBrowserMessage(message.c_str());
break;
}
case CMD_TogglePlaylistUI:
{
if(m_initialized && isVisible)
{
isVisible = false;
}
else
{
isVisible = true;
if(m_initialized)
{
ShowBrowser(true);
}
}
if (m_state == STATE_EXPANDED)
ExpandCollapseEvent();
break;
}
case CMD_ToggleMusicBrowserUI:
{
if ( isVisible )
HideBrowser();
else
ShowBrowser(true);
break;
}
case INFO_PlaylistRepeat:
{
PlaylistRepeatEvent* plre = (PlaylistRepeatEvent*)event;
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
{
(*i)->ChangeRepeatMode(plre->GetRepeatMode());
}
ChangeRepeatMode(plre->GetRepeatMode());
break;
}
case INFO_PlaylistShuffle:
{
PlaylistShuffleEvent* plse = (PlaylistShuffleEvent*)event;
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
{
(*i)->ChangeShuffleMode(plse->GetShuffleMode());
}
ChangeShuffleMode(plse->GetShuffleMode());
break;
}
case INFO_Playing:
case INFO_Paused:
case INFO_Stopped:
{
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
{
(*i)->ChangePlayerState(event->Type());
}
ChangePlayerState(event->Type());
break;
}
case CMD_AddFiles:
{
Int32PropValue *prop;
if(IsntError(m_context->props->GetProperty("MainWindow", (PropValue **)&prop)))
{
HWND hwnd = (HWND)prop->GetInt32();
bool playNow;
m_context->prefs->GetPrefBoolean(kPlayImmediatelyPref, &playNow);
AddFileEvent(hwnd, playNow);
}
break;
}
case CMD_EditCurrentPlaylistItemInfo:
{
Int32PropValue *prop;
if(IsntError(m_context->props->GetProperty("MainWindow", (PropValue **)&prop)))
{
HWND hwnd = (HWND)prop->GetInt32();
PlaylistItem* item = m_plm->GetCurrentItem();
if(item)
{
vector<PlaylistItem*> list;
list.push_back(item);
EditInfo(list, hwnd);
}
}
break;
}
case CMD_GeneratePlaylist:
{
GeneratePlaylistEvent *gpe = (GeneratePlaylistEvent *)event;
vector<PlaylistItem *> SeedList;
if (gpe->Item() != NULL)
{
PlaylistItem plTemp(gpe->Item()->URL().c_str(),
&(gpe->Item()->GetMetaData()));
SeedList.push_back(&plTemp);
GenPlaylistEvent(&SeedList);
}
else
{
GenPlaylistEvent(NULL);
}
break;
}
case INFO_UnsignaturedTracksExist:
{
if (m_context->catalog->GetNumNeedingSigs() > 0) {
m_sigsExist = true;
UpdateMenuStates();
AskSignatureDialog();
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
(*i)->AcceptEvent(event);
}
break;
}
case INFO_SignaturingStarted:
{
m_sigsExist = true;
m_sigsStart = false;
UpdateMenuStates();
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
(*i)->AcceptEvent(event);
break;
}
case INFO_SignaturingStopped:
{
if (m_context->catalog->GetNumNeedingSigs() > 0)
m_sigsExist = true;
else
m_sigsExist = false;
m_sigsStart = true;
UpdateMenuStates();
vector<MusicBrowserUI *>::iterator i;
for(i = m_oWindowList.begin(); i != m_oWindowList.end(); i++)
(*i)->AcceptEvent(event);
break;
}
case INFO_CDNotFound: {
CDNotFoundEvent *ev = (CDNotFoundEvent *)event;
if (MessageBox(m_hWnd, mbcdNotFoundMessage, "CD Not Found",
MB_YESNO|MB_SETFOREGROUND) == IDYES)
{
ShellExecute(m_hParent, "open", ev->URL().c_str(), NULL,
NULL, SW_SHOWNORMAL);
}
break; }
case INFO_DatabaseUpgraded: {
MessageBox(m_hWnd, dbaseUpgradedMessage, "Database Upgraded",
MB_OK|MB_SETFOREGROUND);
break; }
default:
break;
}
return kError_NoErr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -