diff options
Diffstat (limited to 'plugins/wmpa/wmpadialog.cpp')
-rw-r--r-- | plugins/wmpa/wmpadialog.cpp | 375 |
1 files changed, 0 insertions, 375 deletions
diff --git a/plugins/wmpa/wmpadialog.cpp b/plugins/wmpa/wmpadialog.cpp deleted file mode 100644 index 28d33c93..00000000 --- a/plugins/wmpa/wmpadialog.cpp +++ /dev/null @@ -1,375 +0,0 @@ -/****************************************************************** -* $Id$ -* -* $Log$ -* -* Copyright © 2005 David Cullen, All rights reserved -* -******************************************************************/ -#include "stdafx.h" -#include "wmpa.h" -#include "WMPADialog.h" -#include "shellapi.h" -#include "hexchat-plugin.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -#define ID_TRAY_ICON 1000 -#define WM_TRAY_ICON (WM_APP + 1) - -///////////////////////////////////////////////////////////////////////////// -// CWMPADialog dialog - -CWMPADialog::CWMPADialog(CWnd* pParent /*=NULL*/) - : CDialog(CWMPADialog::IDD, pParent) -{ - EnableAutomation(); - - //{{AFX_DATA_INIT(CWMPADialog) - //}}AFX_DATA_INIT -} - - -void CWMPADialog::OnFinalRelease() -{ - // When the last reference for an automation object is released - // OnFinalRelease is called. The base class will automatically - // deletes the object. Add additional cleanup required for your - // object before calling the base class. - - CDialog::OnFinalRelease(); -} - -void CWMPADialog::DoDataExchange(CDataExchange* pDX) -{ - CDialog::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CWMPADialog) - DDX_Control(pDX, IDC_SONGLIST, m_SongListBox); - DDX_Control(pDX, IDC_PLAYLIST, m_PlaylistBox); - DDX_Control(pDX, IDC_WMP, m_WMP); - //}}AFX_DATA_MAP -} - - -BEGIN_MESSAGE_MAP(CWMPADialog, CDialog) - //{{AFX_MSG_MAP(CWMPADialog) - ON_LBN_DBLCLK(IDC_PLAYLIST, OnDblclkPlaylist) - ON_WM_SHOWWINDOW() - ON_WM_CLOSE() - ON_LBN_DBLCLK(IDC_SONGLIST, OnDblclkSonglist) - ON_WM_DESTROY() - ON_WM_SIZE() - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -BEGIN_DISPATCH_MAP(CWMPADialog, CDialog) - //{{AFX_DISPATCH_MAP(CWMPADialog) - // NOTE - the ClassWizard will add and remove mapping macros here. - //}}AFX_DISPATCH_MAP -END_DISPATCH_MAP() - -// Note: we add support for IID_IWMPADialog to support typesafe binding -// from VBA. This IID must match the GUID that is attached to the -// dispinterface in the .ODL file. - -// {01C1B3AA-C7FC-4023-89A5-C814E1B62B9B} -static const IID IID_IWMPADialog = -{ 0x1c1b3aa, 0xc7fc, 0x4023, { 0x89, 0xa5, 0xc8, 0x14, 0xe1, 0xb6, 0x2b, 0x9b } }; - -BEGIN_INTERFACE_MAP(CWMPADialog, CDialog) - INTERFACE_PART(CWMPADialog, IID_IWMPADialog, Dispatch) -END_INTERFACE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CWMPADialog message handlers - -void CWMPADialog::OnDblclkPlaylist() -{ - // TODO: Add your control notification handler code here - long index; - - // Get the playlist name - index = m_PlaylistBox.GetCurSel(); - CString playlistName; - m_PlaylistBox.GetText(index, playlistName); - - // Get the playlist - CWMPPlaylistCollection pc = m_WMP.GetPlaylistCollection(); - CWMPPlaylistArray pa = pc.getByName((LPCTSTR) playlistName); - CWMPPlaylist playlist = pa.Item(0); - m_WMP.SetCurrentPlaylist(playlist); - - // Set the song list - UpdateSongList(); - - m_WMP.GetControls().play(); - if (autoAnnounce) { - hexchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle()); - } - else { - hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); - } -} - -void CWMPADialog::OnShowWindow(BOOL bShow, UINT nStatus) -{ - CDialog::OnShowWindow(bShow, nStatus); - - // TODO: Add your message handler code here - if (bShow) { - if (!trayInit) { - ZeroMemory(&nid, sizeof(nid)); - nid.cbSize = sizeof(nid); - nid.hWnd = m_hWnd; - nid.uID = ID_TRAY_ICON; - nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; - nid.uCallbackMessage = WM_TRAY_ICON; - nid.hIcon = m_hIcon; - strcpy(nid.szTip, "WMPA"); - strcat(nid.szTip, VER_STRING); - strcat(nid.szTip, "\nWindows Media\nPlayer Announcer"); - nid.dwState = 0; - nid.dwStateMask = 0; - strcpy(nid.szInfo, "WMPA "); - strcat(nid.szInfo, VER_STRING); - nid.uTimeout = 10000; // 10 second time out - strcat(nid.szInfoTitle, "WMPA"); - nid.dwInfoFlags = 0; - trayInit = TRUE; - } - } - -} - - -void CWMPADialog::PostNcDestroy() -{ - // TODO: Add your specialized code here and/or call the base class - delete this; - - CDialog::PostNcDestroy(); -} - - -BOOL CWMPADialog::OnInitDialog() -{ - CDialog::OnInitDialog(); - - CString title = "WMPA"; - title += " "; - title += VER_STRING; - SetWindowText((LPCTSTR) title); - - UpdatePlayLists(); - - autoAnnounce = FALSE; - trayInit = FALSE; - trayClicked = FALSE; - - return TRUE; // return TRUE unless you set the focus to a control - // EXCEPTION: OCX Property Pages should return FALSE -} - -void CWMPADialog::OnClose() -{ - // TODO: Add your message handler code here and/or call default - Shell_NotifyIcon(NIM_ADD, &nid); - ShowWindow(SW_HIDE); - - // Don't let the user close the dialog -// CDialog::OnClose(); -} - -void CWMPADialog::OnCancel() -{ -// this->DestroyWindow(); -} - -void CWMPADialog::OnDblclkSonglist() -{ - // TODO: Add your control notification handler code here - int index = m_SongListBox.GetCurSel(); - m_WMP.GetControls().playItem(m_WMP.GetCurrentPlaylist().GetItem(index)); - if (autoAnnounce) { - hexchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle()); - } - else { - hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); - } -} - -BEGIN_EVENTSINK_MAP(CWMPADialog, CDialog) - //{{AFX_EVENTSINK_MAP(CWMPADialog) - ON_EVENT(CWMPADialog, IDC_WMP, 5806 /* CurrentItemChange */, OnCurrentItemChangeWmp, VTS_DISPATCH) - ON_EVENT(CWMPADialog, IDC_WMP, 5101 /* PlayStateChange */, OnPlayStateChangeWmp, VTS_I4) - //}}AFX_EVENTSINK_MAP -END_EVENTSINK_MAP() - -void CWMPADialog::OnCurrentItemChangeWmp(LPDISPATCH pdispMedia) -{ - // TODO: Add your control notification handler code here - - int state = m_WMP.GetPlayState(); - if (state == 3) { // Playing - if (autoAnnounce) { - hexchat_commandf(ph, "me is playing %s", (LPCTSTR) wmpaGetSongTitle()); - } - else { - hexchat_printf(ph, "WMPA: Playing %s", (LPCTSTR) wmpaGetSongTitle()); - } - } - - SelectCurrentSong(); -} - -void CWMPADialog::OnDestroy() -{ - CDialog::OnDestroy(); - - // TODO: Add your message handler code here -} - -void CWMPADialog::UpdateSongList() -{ - char buffer[32]; - CString name; - CString artist; - CString title; - CString album; - CString bitrate; - CString duration; - CString song; - long index; - long count; - - m_SongListBox.ResetContent(); - CWMPPlaylist playlist = m_WMP.GetCurrentPlaylist(); - count = playlist.GetCount(); - m_SongListBox.ResetContent(); - for (index = 0; index < count; index++) { - name = playlist.GetItem(index).GetName(); - artist = playlist.GetItem(index).getItemInfo("Artist"); - title = playlist.GetItem(index).getItemInfo("Title"); - album = playlist.GetItem(index).getItemInfo("Album"); - bitrate = playlist.GetItem(index).getItemInfo("Bitrate"); - duration = playlist.GetItem(index).GetDurationString(); - - long krate = strtoul((LPCTSTR) bitrate, NULL, 10) / 1000; - _ultoa(krate, buffer, 10); - bitrate = CString(buffer); - - if (album.IsEmpty()) { - playlist.removeItem(playlist.GetItem(index)); - count = playlist.GetCount(); - } - else { - song = ""; - song += artist; - if (song.IsEmpty()) song = "Various"; - song += " - "; - song += title; - song += " ("; - song += album; - song += ") ["; - song += duration; - song += "/"; - song += bitrate; - song += "Kbps]"; - m_SongListBox.AddString((LPCTSTR) song); - } - - } - m_SongListBox.SetCurSel(0); -} - -void CWMPADialog::SelectCurrentSong() -{ - CWMPMedia media; - long index; - long count; - - count = m_WMP.GetCurrentPlaylist().GetCount(); - for (index = 0; index < count; index++) { - media = m_WMP.GetCurrentPlaylist().GetItem(index); - if (m_WMP.GetCurrentMedia().GetIsIdentical(media)) { - m_SongListBox.SetCurSel(index); - } - } -} - -void CWMPADialog::UpdatePlayLists() -{ - // TODO: Add extra initialization here - CWMPPlaylistCollection pc = m_WMP.GetPlaylistCollection(); - CWMPPlaylistArray pa = pc.getAll(); - CWMPPlaylist playlist; - - int index; - int count = pa.GetCount(); - m_PlaylistBox.ResetContent(); - for (index = 0; index < count; index++) { - playlist = pa.Item(index); - m_PlaylistBox.AddString((LPCTSTR) playlist.GetName()); - } -} - - -void CWMPADialog::OnPlayStateChangeWmp(long NewState) -{ - // TODO: Add your control notification handler code here -} - -void CWMPADialog::OnSize(UINT nType, int cx, int cy) -{ - CDialog::OnSize(nType, cx, cy); - // TODO: Add your message handler code here - switch (nType) { - case SIZE_MINIMIZED: - break; - - case SIZE_RESTORED: - Shell_NotifyIcon(NIM_DELETE, &nid); - break; - - default: - break; - } -} - -LRESULT CWMPADialog::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) -{ - // TODO: Add your specialized code here and/or call the base class - switch (message) { - case WM_TRAY_ICON: - switch (lParam) { - case WM_LBUTTONDBLCLK: - trayClicked = TRUE; - break; - - case WM_LBUTTONUP: - if (trayClicked == TRUE) { - ShowWindow(SW_RESTORE); - } - break; - - default: - trayClicked = FALSE; - break; - } - return(TRUE); - break; - - default: - return CDialog::WindowProc(message, wParam, lParam); - break; - } -} - -void CWMPADialog::DeleteTrayIcon() -{ - Shell_NotifyIcon(NIM_DELETE, &nid); -} |