diff --git a/reactos/base/applications/mplay32/lang/bg-BG.rc b/reactos/base/applications/mplay32/lang/bg-BG.rc index c961c2aa7f7..fa68fc91725 100644 --- a/reactos/base/applications/mplay32/lang/bg-BG.rc +++ b/reactos/base/applications/mplay32/lang/bg-BG.rc @@ -47,6 +47,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Всички поддържани" IDS_TOOLTIP_PLAY "Пускане" IDS_TOOLTIP_STOP "Спиране" diff --git a/reactos/base/applications/mplay32/lang/cs-CZ.rc b/reactos/base/applications/mplay32/lang/cs-CZ.rc index d0e89c674f2..3a5e5f3b39a 100644 --- a/reactos/base/applications/mplay32/lang/cs-CZ.rc +++ b/reactos/base/applications/mplay32/lang/cs-CZ.rc @@ -48,6 +48,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Všechny podporované" IDS_TOOLTIP_PLAY "Přehrát" IDS_TOOLTIP_STOP "Zastavit" diff --git a/reactos/base/applications/mplay32/lang/de-DE.rc b/reactos/base/applications/mplay32/lang/de-DE.rc index d0b77b65e22..b3d6afc7579 100644 --- a/reactos/base/applications/mplay32/lang/de-DE.rc +++ b/reactos/base/applications/mplay32/lang/de-DE.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unbekannt" + IDS_MODE_OPEN "Geöffnet" + IDS_MODE_STOP "Angehalten" + IDS_MODE_PLAY "Wiedergabe" + IDS_MODE_PAUSE "Pause" + IDS_MODE_RECORD "Aufnehmen" + IDS_MODE_SEEK "Spulen" + IDS_MODE_NOT_READY "Nicht bereit" IDS_ALL_TYPES_FILTER "Alle unterstützten" IDS_TOOLTIP_PLAY "Wiedergabe" IDS_TOOLTIP_STOP "Stopp" diff --git a/reactos/base/applications/mplay32/lang/en-US.rc b/reactos/base/applications/mplay32/lang/en-US.rc index 2f6fe8cabae..e4b0898afe6 100644 --- a/reactos/base/applications/mplay32/lang/en-US.rc +++ b/reactos/base/applications/mplay32/lang/en-US.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "All Supported" IDS_TOOLTIP_PLAY "Play" IDS_TOOLTIP_STOP "Stop" diff --git a/reactos/base/applications/mplay32/lang/es-ES.rc b/reactos/base/applications/mplay32/lang/es-ES.rc index 58744ba9a8d..b386f98eb83 100644 --- a/reactos/base/applications/mplay32/lang/es-ES.rc +++ b/reactos/base/applications/mplay32/lang/es-ES.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Todos los archivos soportados" IDS_TOOLTIP_PLAY "Reproducir" IDS_TOOLTIP_STOP "Detener" diff --git a/reactos/base/applications/mplay32/lang/fr-FR.rc b/reactos/base/applications/mplay32/lang/fr-FR.rc index 4d96567cc77..c29ee2d451e 100644 --- a/reactos/base/applications/mplay32/lang/fr-FR.rc +++ b/reactos/base/applications/mplay32/lang/fr-FR.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Inconnu" + IDS_MODE_OPEN "Ouvert" + IDS_MODE_STOP "Arrêté" + IDS_MODE_PLAY "Lecture" + IDS_MODE_PAUSE "En pause" + IDS_MODE_RECORD "Enregistrement" + IDS_MODE_SEEK "Recherche" + IDS_MODE_NOT_READY "Pas prêt" IDS_ALL_TYPES_FILTER "Tous les types supportés" IDS_TOOLTIP_PLAY "Lecture" IDS_TOOLTIP_STOP "Stop" diff --git a/reactos/base/applications/mplay32/lang/he-IL.rc b/reactos/base/applications/mplay32/lang/he-IL.rc index 0dd899c080f..e4430854bd2 100644 --- a/reactos/base/applications/mplay32/lang/he-IL.rc +++ b/reactos/base/applications/mplay32/lang/he-IL.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "כל הקבצים הנתמכים" IDS_TOOLTIP_PLAY "נגן" IDS_TOOLTIP_STOP "עצור" diff --git a/reactos/base/applications/mplay32/lang/it-IT.rc b/reactos/base/applications/mplay32/lang/it-IT.rc index 1309d504241..09f5202d8b1 100644 --- a/reactos/base/applications/mplay32/lang/it-IT.rc +++ b/reactos/base/applications/mplay32/lang/it-IT.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Tutti i tipi supportati" IDS_TOOLTIP_PLAY "Riproduci" IDS_TOOLTIP_STOP "Interrompi" diff --git a/reactos/base/applications/mplay32/lang/ja-JP.rc b/reactos/base/applications/mplay32/lang/ja-JP.rc index bbdfff1f13c..3c07586fd83 100644 --- a/reactos/base/applications/mplay32/lang/ja-JP.rc +++ b/reactos/base/applications/mplay32/lang/ja-JP.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "すべてのサポートされたファイル" IDS_TOOLTIP_PLAY "再生" IDS_TOOLTIP_STOP "停止" diff --git a/reactos/base/applications/mplay32/lang/nl-NL.rc b/reactos/base/applications/mplay32/lang/nl-NL.rc index b8f6de86553..e71afa12212 100644 --- a/reactos/base/applications/mplay32/lang/nl-NL.rc +++ b/reactos/base/applications/mplay32/lang/nl-NL.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Mediabestanden" IDS_TOOLTIP_PLAY "Afspelen" IDS_TOOLTIP_STOP "Stoppen" diff --git a/reactos/base/applications/mplay32/lang/no-NO.rc b/reactos/base/applications/mplay32/lang/no-NO.rc index 56c8adb5418..f0056fe00a3 100644 --- a/reactos/base/applications/mplay32/lang/no-NO.rc +++ b/reactos/base/applications/mplay32/lang/no-NO.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Alle kompaktible filer" IDS_TOOLTIP_PLAY "Spill av" IDS_TOOLTIP_STOP "Stopp" diff --git a/reactos/base/applications/mplay32/lang/pl-PL.rc b/reactos/base/applications/mplay32/lang/pl-PL.rc index 7370b3608c3..2a47d976bea 100644 --- a/reactos/base/applications/mplay32/lang/pl-PL.rc +++ b/reactos/base/applications/mplay32/lang/pl-PL.rc @@ -51,6 +51,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Wszystkie formaty" IDS_TOOLTIP_PLAY "Odtwarzaj" IDS_TOOLTIP_STOP "Zatrzymaj" diff --git a/reactos/base/applications/mplay32/lang/pt-BR.rc b/reactos/base/applications/mplay32/lang/pt-BR.rc index 2f786665f7a..d9b5f5086f1 100644 --- a/reactos/base/applications/mplay32/lang/pt-BR.rc +++ b/reactos/base/applications/mplay32/lang/pt-BR.rc @@ -45,6 +45,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Todos os formatos" IDS_TOOLTIP_PLAY "Executar" IDS_TOOLTIP_STOP "Pausar" diff --git a/reactos/base/applications/mplay32/lang/ro-RO.rc b/reactos/base/applications/mplay32/lang/ro-RO.rc index 99771732db0..aa3b29599aa 100644 --- a/reactos/base/applications/mplay32/lang/ro-RO.rc +++ b/reactos/base/applications/mplay32/lang/ro-RO.rc @@ -49,6 +49,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Toate admisibile" IDS_TOOLTIP_PLAY "Redare conținut multimedia" IDS_TOOLTIP_STOP "Oprirea lecturii" diff --git a/reactos/base/applications/mplay32/lang/ru-RU.rc b/reactos/base/applications/mplay32/lang/ru-RU.rc index e1ffb160e1a..57a893fc9a0 100644 --- a/reactos/base/applications/mplay32/lang/ru-RU.rc +++ b/reactos/base/applications/mplay32/lang/ru-RU.rc @@ -43,6 +43,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Все поддерживаемые" IDS_TOOLTIP_PLAY "Воспроизведение" IDS_TOOLTIP_STOP "Остановить" diff --git a/reactos/base/applications/mplay32/lang/sk-SK.rc b/reactos/base/applications/mplay32/lang/sk-SK.rc index fc70431ec02..895a5855e3f 100644 --- a/reactos/base/applications/mplay32/lang/sk-SK.rc +++ b/reactos/base/applications/mplay32/lang/sk-SK.rc @@ -48,6 +48,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Všetky podporované" IDS_TOOLTIP_PLAY "Prehrať" IDS_TOOLTIP_STOP "Zastaviť" diff --git a/reactos/base/applications/mplay32/lang/sq-AL.rc b/reactos/base/applications/mplay32/lang/sq-AL.rc index 782ac922e6b..b3eb5022691 100644 --- a/reactos/base/applications/mplay32/lang/sq-AL.rc +++ b/reactos/base/applications/mplay32/lang/sq-AL.rc @@ -47,6 +47,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Të gjith suportimet" IDS_TOOLTIP_PLAY "Fillo" IDS_TOOLTIP_STOP "Ndalo" diff --git a/reactos/base/applications/mplay32/lang/sv-SE.rc b/reactos/base/applications/mplay32/lang/sv-SE.rc index 580128e2c8f..9e9fb5c1582 100644 --- a/reactos/base/applications/mplay32/lang/sv-SE.rc +++ b/reactos/base/applications/mplay32/lang/sv-SE.rc @@ -50,6 +50,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Alla kompaktibla filer" IDS_TOOLTIP_PLAY "Spela upp" IDS_TOOLTIP_STOP "Stopp" diff --git a/reactos/base/applications/mplay32/lang/tr-TR.rc b/reactos/base/applications/mplay32/lang/tr-TR.rc index f2d39783904..4368980e93a 100644 --- a/reactos/base/applications/mplay32/lang/tr-TR.rc +++ b/reactos/base/applications/mplay32/lang/tr-TR.rc @@ -45,6 +45,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Desteklenen Kütükler" IDS_TOOLTIP_PLAY "Çal" IDS_TOOLTIP_STOP "Durdur" diff --git a/reactos/base/applications/mplay32/lang/uk-UA.rc b/reactos/base/applications/mplay32/lang/uk-UA.rc index b13000a30aa..b5d3ead130c 100644 --- a/reactos/base/applications/mplay32/lang/uk-UA.rc +++ b/reactos/base/applications/mplay32/lang/uk-UA.rc @@ -51,6 +51,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "Всі підтримувані" IDS_TOOLTIP_PLAY "Відтворення" IDS_TOOLTIP_STOP "Зупинити" diff --git a/reactos/base/applications/mplay32/lang/zh-CN.rc b/reactos/base/applications/mplay32/lang/zh-CN.rc index 461164b97a0..9b25bd2cb28 100644 --- a/reactos/base/applications/mplay32/lang/zh-CN.rc +++ b/reactos/base/applications/mplay32/lang/zh-CN.rc @@ -45,6 +45,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "所有支持的格式" IDS_TOOLTIP_PLAY "播放" IDS_TOOLTIP_STOP "停止" diff --git a/reactos/base/applications/mplay32/lang/zh-TW.rc b/reactos/base/applications/mplay32/lang/zh-TW.rc index 20e87b28644..4cd5bda85ea 100644 --- a/reactos/base/applications/mplay32/lang/zh-TW.rc +++ b/reactos/base/applications/mplay32/lang/zh-TW.rc @@ -51,6 +51,14 @@ END STRINGTABLE BEGIN + IDS_MODE_UNKNOWN "Unknown" + IDS_MODE_OPEN "Opened" + IDS_MODE_STOP "Stopped" + IDS_MODE_PLAY "Playing" + IDS_MODE_PAUSE "Paused" + IDS_MODE_RECORD "Recording" + IDS_MODE_SEEK "Seeking" + IDS_MODE_NOT_READY "Not ready" IDS_ALL_TYPES_FILTER "所有支援格式" IDS_TOOLTIP_PLAY "播放" IDS_TOOLTIP_STOP "停止" diff --git a/reactos/base/applications/mplay32/mplay32.c b/reactos/base/applications/mplay32/mplay32.c index 3bca1f582d9..c938b70c104 100644 --- a/reactos/base/applications/mplay32/mplay32.c +++ b/reactos/base/applications/mplay32/mplay32.c @@ -19,7 +19,8 @@ HMENU hMainMenu = NULL; TCHAR szAppTitle[256] = _T(""); TCHAR szDefaultFilter[MAX_PATH] = _T(""); -TCHAR *szFilter = NULL; +TCHAR szCurrentFile[MAX_PATH] = _T(""); +LPTSTR szFilter = NULL; WORD wDeviceId = 0; BOOL bRepeat = FALSE; @@ -27,6 +28,8 @@ BOOL bIsSingleWindow = FALSE; UINT MaxFilePos = 0; RECT PrevWindowPos; +static DWORD GetDeviceMode(HWND hwnd); + /* ToolBar Buttons */ static const TBBUTTON Buttons[] = { /* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */ @@ -89,6 +92,71 @@ void ResizeClientArea(HWND hwnd, int nWidth, int nHeight) MoveWindow(hwnd, rcWindowRect.left, rcWindowRect.top, nWidth + ptDifference.x, nHeight + ptDifference.y, TRUE); } +void UpdateWindowCaption(HWND hwnd) +{ + TCHAR szNewTitle[MAX_PATH + 3 + 256]; + TCHAR szStatus[128]; + + if (wDeviceId == 0) + { + SetWindowText(hwnd, szAppTitle); + return; + } + + switch (GetDeviceMode(hwnd)) + { + case MCI_MODE_PAUSE: + { + LoadString(hInstance, IDS_MODE_PAUSE, szStatus, ARRAYSIZE(szStatus)); + break; + } + + case MCI_MODE_STOP: + { + LoadString(hInstance, IDS_MODE_STOP, szStatus, ARRAYSIZE(szStatus)); + break; + } + + case MCI_MODE_PLAY: + { + LoadString(hInstance, IDS_MODE_PLAY, szStatus, ARRAYSIZE(szStatus)); + break; + } + + case MCI_MODE_OPEN: + { + LoadString(hInstance, IDS_MODE_OPEN, szStatus, ARRAYSIZE(szStatus)); + break; + } + + case MCI_MODE_RECORD: + { + LoadString(hInstance, IDS_MODE_RECORD, szStatus, ARRAYSIZE(szStatus)); + break; + } + + case MCI_MODE_SEEK: + { + LoadString(hInstance, IDS_MODE_SEEK, szStatus, ARRAYSIZE(szStatus)); + break; + } + + case MCI_MODE_NOT_READY: + { + LoadString(hInstance, IDS_MODE_NOT_READY, szStatus, ARRAYSIZE(szStatus)); + break; + } + + default: + { + LoadString(hInstance, IDS_MODE_UNKNOWN, szStatus, ARRAYSIZE(szStatus)); + } + } + + StringCbPrintf(szNewTitle, sizeof(szNewTitle), _T("%s - %s (%s)"), szAppTitle, szCurrentFile, szStatus); + SetWindowText(hwnd, szNewTitle); +} + static VOID ShowLastWin32Error(HWND hwnd) { @@ -375,7 +443,7 @@ OpenMciDevice(HWND hwnd, LPTSTR lpType, LPTSTR lpFileName) MCI_STATUS_PARMS mciStatus; MCI_OPEN_PARMS mciOpen; DWORD dwFlags = MCI_OPEN_ELEMENT | MCI_WAIT; - TCHAR szNewTitle[MAX_PATH + 3 + 256]; + LPTSTR lpStr; if (wDeviceId) CloseMciDevice(); @@ -422,14 +490,23 @@ OpenMciDevice(HWND hwnd, LPTSTR lpType, LPTSTR lpFileName) SendMessage(hTrackBar, TBM_SETTICFREQ, (WPARAM)100000, (LPARAM)0); } - StringCbPrintf(szNewTitle, sizeof(szNewTitle), _T("%s - %s"), szAppTitle, lpFileName); - SetWindowText(hwnd, szNewTitle); - MaxFilePos = mciStatus.dwReturn; wDeviceId = mciOpen.wDeviceID; + /* NOTE: Everything above this line may be done instead in OpenMediaFile() */ + + lpStr = _tcsrchr(lpFileName, _T('\\')); + if (lpStr) // Get only the file name (skip the last path separator) + lpStr++; + else + lpStr = lpFileName; + + StringCbCopy(szCurrentFile, sizeof(szCurrentFile), lpStr); + EnableMenuItems(hwnd); + UpdateWindowCaption(hwnd); + return 0; } @@ -471,6 +548,8 @@ StopPlayback(HWND hwnd) mciSendCommand(wDeviceId, MCI_SEEK, MCI_WAIT | MCI_SEEK_TO_START, 0); + UpdateWindowCaption(hwnd); + SendMessage(hToolBar, TB_SETCMDID, 0, @@ -604,6 +683,8 @@ StartPlayback(HWND hwnd) return; } + UpdateWindowCaption(hwnd); + SendMessage(hToolBar, TB_SETCMDID, 0, @@ -636,7 +717,7 @@ TogglePlaybackState(HWND hwnd) case MCI_MODE_PLAY: { mciGeneric.dwCallback = (DWORD_PTR)hwnd; - mciError = mciSendCommand(wDeviceId, MCI_PAUSE, MCI_NOTIFY, (DWORD_PTR)&mciGeneric); + mciError = mciSendCommand(wDeviceId, MCI_PAUSE, MCI_NOTIFY | MCI_WAIT, (DWORD_PTR)&mciGeneric); idBmp = IDB_PLAYICON; idCmd = IDC_PLAY; break; @@ -663,6 +744,8 @@ TogglePlaybackState(HWND hwnd) return; } + UpdateWindowCaption(hwnd); + SendMessage(hToolBar, TB_SETCMDID, 0, @@ -695,7 +778,7 @@ CloseMediaFile(HWND hwnd) SwitchViewMode(hwnd); CloseMciDevice(); - SetWindowText(hwnd, szAppTitle); + UpdateWindowCaption(hwnd); } static VOID @@ -1027,8 +1110,6 @@ MainWndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) case WM_SIZE: { RECT Rect; - RECT ToolbarRect; - MCI_DGV_PUT_PARMS mciPut; if (hToolBar && hTrackBar) { @@ -1037,13 +1118,14 @@ MainWndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) if (!bIsSingleWindow) { - UINT Size; - - Size = GetSystemMetrics(SM_CYMENU) + Rect.bottom; + UINT Size = GetSystemMetrics(SM_CYMENU) + Rect.bottom; MoveWindow(hTrackBar, 0, 0, LOWORD(lParam), HIWORD(lParam) - Size, TRUE); } else { + RECT ToolbarRect; + MCI_DGV_PUT_PARMS mciPut; + MoveWindow(hTrackBar, 180, 0, LOWORD(lParam) - 180, 25, TRUE); GetClientRect(hwnd, &Rect); @@ -1094,13 +1176,10 @@ MainWndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) case IDC_PAUSE: { if (wDeviceId) - { TogglePlaybackState(hwnd); - } else - { OpenFileDialog(hwnd); - } + break; } diff --git a/reactos/base/applications/mplay32/resource.h b/reactos/base/applications/mplay32/resource.h index b464fe1079d..c1150c06727 100644 --- a/reactos/base/applications/mplay32/resource.h +++ b/reactos/base/applications/mplay32/resource.h @@ -27,8 +27,17 @@ #define IDS_PLAY 110 #define IDS_DEFAULTMCIERRMSG 111 +#define IDS_MODE_UNKNOWN 120 +#define IDS_MODE_OPEN 121 +#define IDS_MODE_STOP 122 +#define IDS_MODE_PLAY 123 +#define IDS_MODE_PAUSE 124 +#define IDS_MODE_RECORD 125 +#define IDS_MODE_SEEK 126 +#define IDS_MODE_NOT_READY 127 + /* Menu */ -#define IDR_MAINMENU 500 +#define IDR_MAINMENU 500 /* Accelerators */ #define ID_ACCELERATORS 800