diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-28 22:29:49 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-28 22:29:49 +0000 |
commit | 38e4222bb7e0df5231a970b12330f39cb9d9d224 (patch) | |
tree | 866970d92e68b66eaa335fdea97d0ce77d514f3e | |
parent | 0961ea872cfa67a377c0d67ebbfbc4f222ed72d3 (diff) | |
download | chromium_src-38e4222bb7e0df5231a970b12330f39cb9d9d224.zip chromium_src-38e4222bb7e0df5231a970b12330f39cb9d9d224.tar.gz chromium_src-38e4222bb7e0df5231a970b12330f39cb9d9d224.tar.bz2 |
Delete media/tools/player_wtl.
We don't use it and it's a constant source of compile failures.
Review URL: https://codereview.chromium.org/11414209
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170073 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | media/media.gyp | 38 | ||||
-rw-r--r-- | media/tools/player_wtl/list.h | 127 | ||||
-rw-r--r-- | media/tools/player_wtl/mainfrm.h | 737 | ||||
-rw-r--r-- | media/tools/player_wtl/movie.cc | 187 | ||||
-rw-r--r-- | media/tools/player_wtl/movie.h | 104 | ||||
-rw-r--r-- | media/tools/player_wtl/player_wtl.cc | 92 | ||||
-rw-r--r-- | media/tools/player_wtl/player_wtl.h | 28 | ||||
-rw-r--r-- | media/tools/player_wtl/player_wtl.ico | bin | 1078 -> 0 bytes | |||
-rw-r--r-- | media/tools/player_wtl/player_wtl.rc | 546 | ||||
-rw-r--r-- | media/tools/player_wtl/props.h | 325 | ||||
-rw-r--r-- | media/tools/player_wtl/resource.h | 83 | ||||
-rw-r--r-- | media/tools/player_wtl/seek.h | 98 | ||||
-rw-r--r-- | media/tools/player_wtl/toolbar.bmp | bin | 1438 -> 0 bytes | |||
-rw-r--r-- | media/tools/player_wtl/view.h | 471 |
14 files changed, 0 insertions, 2836 deletions
diff --git a/media/media.gyp b/media/media.gyp index 0b991e0..df217d2 100644 --- a/media/media.gyp +++ b/media/media.gyp @@ -1034,44 +1034,6 @@ }, ], }], - ['OS=="win"', { - 'targets': [ - { - 'target_name': 'player_wtl', - 'type': 'executable', - 'dependencies': [ - 'media', - 'yuv_convert', - '../base/base.gyp:base', - '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', - '../ui/ui.gyp:ui', - ], - 'include_dirs': [ - '<(DEPTH)/third_party/wtl/include', - ], - 'sources': [ - 'tools/player_wtl/list.h', - 'tools/player_wtl/mainfrm.h', - 'tools/player_wtl/movie.cc', - 'tools/player_wtl/movie.h', - 'tools/player_wtl/player_wtl.cc', - 'tools/player_wtl/player_wtl.rc', - 'tools/player_wtl/props.h', - 'tools/player_wtl/resource.h', - 'tools/player_wtl/seek.h', - 'tools/player_wtl/view.h', - ], - 'msvs_settings': { - 'VCLinkerTool': { - 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS - }, - }, - 'defines': [ - '_CRT_SECURE_NO_WARNINGS=1', - ], - }, - ], - }], ['(OS == "win" or toolkit_uses_gtk == 1) and use_aura != 1', { 'targets': [ { diff --git a/media/tools/player_wtl/list.h b/media/tools/player_wtl/list.h deleted file mode 100644 index f3b8d5b..0000000 --- a/media/tools/player_wtl/list.h +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this -// source code is governed by a BSD-style license that can be found in the -// LICENSE file. - -#ifndef MEDIA_TOOLS_PLAYER_WTL_LIST_H_ -#define MEDIA_TOOLS_PLAYER_WTL_LIST_H_ - -#include "media/tools/player_wtl/player_wtl.h" - -// Recent Files list. -class CMruList : public CWindowImpl<CMruList, CListBox> { - public: - - CMruList() { - size_.cx = 400; - size_.cy = 150; - } - - HWND Create(HWND parent) { - CWindowImpl<CMruList, CListBox>::Create(parent, rcDefault, NULL, - WS_POPUP | WS_THICKFRAME | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | - WS_VSCROLL | LBS_NOINTEGRALHEIGHT, - WS_EX_CLIENTEDGE); - if (IsWindow()) - SetFont(AtlGetStockFont(DEFAULT_GUI_FONT)); - return m_hWnd; - } - - BOOL BuildList(CRecentDocumentList& mru) { - ATLASSERT(IsWindow()); - - ResetContent(); - - int docs_size = mru.m_arrDocs.GetSize(); - for (int i = 0; i < docs_size; i++) - InsertString(0, mru.m_arrDocs[i].szDocName); // Reverse order in array. - - if (docs_size > 0) { - SetCurSel(0); - SetTopIndex(0); - } - - return TRUE; - } - - BOOL ShowList(int x, int y) { - return SetWindowPos(NULL, x, y, size_.cx, size_.cy, - SWP_NOZORDER | SWP_SHOWWINDOW); - } - - void HideList() { - RECT rect; - GetWindowRect(&rect); - size_.cx = rect.right - rect.left; - size_.cy = rect.bottom - rect.top; - ShowWindow(SW_HIDE); - } - - void FireCommand() { - int selection = GetCurSel(); - if (selection != LB_ERR) { - ::SetFocus(GetParent()); // Will hide this window. - ::SendMessage(GetParent(), WM_COMMAND, - MAKEWPARAM((WORD)(ID_FILE_MRU_FIRST + selection), - LBN_DBLCLK), (LPARAM)m_hWnd); - } - } - - BEGIN_MSG_MAP(CMruList) - MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown) - MESSAGE_HANDLER(WM_LBUTTONDBLCLK, OnLButtonDblClk) - MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus) - MESSAGE_HANDLER(WM_NCHITTEST, OnNcHitTest) - END_MSG_MAP() - - LRESULT OnKeyDown(UINT /*message*/, - WPARAM wparam, - LPARAM /*lparam*/, - BOOL& handled) { - if (wparam == VK_RETURN) - FireCommand(); - else - handled = FALSE; - return 0; - } - - LRESULT OnLButtonDblClk(UINT /*message*/, - WPARAM /*wparam*/, - LPARAM /*lparam*/, - BOOL& /*handled*/) { - FireCommand(); - return 0; - } - - LRESULT OnKillFocus(UINT /*message*/, - WPARAM /*wparam*/, - LPARAM /*lparam*/, - BOOL& /*handled*/) { - HideList(); - return 0; - } - - LRESULT OnNcHitTest(UINT message, - WPARAM wparam, - LPARAM lparam, - BOOL& /*handled*/) { - LRESULT result = DefWindowProc(message, wparam, lparam); - switch (result) { - case HTLEFT: - case HTTOP: - case HTTOPLEFT: - case HTTOPRIGHT: - case HTBOTTOMLEFT: - result = HTCLIENT; // Don't allow resizing here. - break; - default: - break; - } - return result; - } - - private: - - SIZE size_; -}; - -#endif // MEDIA_TOOLS_PLAYER_WTL_LIST_H_ diff --git a/media/tools/player_wtl/mainfrm.h b/media/tools/player_wtl/mainfrm.h deleted file mode 100644 index 54a1ec3..0000000 --- a/media/tools/player_wtl/mainfrm.h +++ /dev/null @@ -1,737 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef MEDIA_TOOLS_PLAYER_WTL_MAINFRM_H_ -#define MEDIA_TOOLS_PLAYER_WTL_MAINFRM_H_ - -#include "media/tools/player_wtl/list.h" -#include "media/tools/player_wtl/props.h" -#include "media/tools/player_wtl/seek.h" -#include "media/tools/player_wtl/view.h" - -const int POPUP_MENU_POSITION = 0; -const int FILE_MENU_POSITION = 0; -const int RECENT_MENU_POSITION = 6; - -const wchar_t* const g_lpcstrMRURegKey = - L"Software\\Google\\Video\\MediaPlayer"; -const wchar_t* const g_lpcstrApp = L"MediaPlayer"; - -// Interface of the CMainFrame class -// TODO(fbarchard): Remove hungarian notation. -class CMainFrame - : public CFrameWindowImpl<CMainFrame>, - public CUpdateUI<CMainFrame>, - public CMessageFilter, - public CIdleHandler, - public CPrintJobInfo { - public: - DECLARE_FRAME_WND_CLASS(NULL, IDR_MAINFRAME) - - CCommandBarCtrl m_CmdBar; - CRecentDocumentList m_mru; - CMruList m_list; - WtlVideoWindow m_view; - - wchar_t m_szFilePath[MAX_PATH]; - bool enable_exit; - - // printing support - CPrinter m_printer; - CDevMode m_devmode; - CPrintPreviewWindow m_wndPreview; - CEnhMetaFile m_enhmetafile; - RECT m_rcMargin; - bool m_bPrintPreview; - - CMainFrame() - : m_bPrintPreview(false) { - ::SetRect(&m_rcMargin, 1000, 1000, 1000, 1000); - m_printer.OpenDefaultPrinter(); - m_devmode.CopyFromPrinter(m_printer); - m_szFilePath[0] = 0; - enable_exit = false; - } - - virtual BOOL PreTranslateMessage(MSG* pMsg) { - if (CFrameWindowImpl<CMainFrame>::PreTranslateMessage(pMsg)) - return TRUE; - - return m_view.PreTranslateMessage(pMsg); - } - - virtual BOOL OnIdle() { - BOOL bEnable = !m_view.bmp_.IsNull(); - BOOL bMovieOpen = media::Movie::GetInstance()->IsOpen(); - - float current_position = media::Movie::GetInstance()->GetPosition(); - float duration = media::Movie::GetInstance()->GetDuration(); - if (enable_exit && bEnable && - duration > 0.0f && current_position >= duration) { - OnFileExit(0, 0, 0); - } - - UIEnable(ID_FILE_PRINT, bEnable); - UIEnable(ID_FILE_PRINT_PREVIEW, bEnable); - UISetCheck(ID_FILE_PRINT_PREVIEW, m_bPrintPreview); - UIEnable(ID_EDIT_COPY, bEnable); - UIEnable(ID_EDIT_PASTE, ::IsClipboardFormatAvailable(CF_BITMAP)); - UIEnable(ID_EDIT_CLEAR, bEnable); - UIEnable(ID_VIEW_QUARTERSIZE, true); - UIEnable(ID_VIEW_HALFSIZE, true); - UIEnable(ID_VIEW_NORMALSIZE, true); - UIEnable(ID_VIEW_DOUBLESIZE, true); - UIEnable(ID_VIEW_TRIPLESIZE, true); - UIEnable(ID_VIEW_QUADRUPLESIZE, true); - UIEnable(ID_VIEW_FITTOSCREEN, false); // Not currently implemented. - UIEnable(ID_VIEW_FULLSCREEN, false); // Not currently implemented. - UIEnable(ID_VIEW_PROPERTIES, bEnable); - UIEnable(ID_VIEW_ROTATE0, true); - UIEnable(ID_VIEW_ROTATE90, true); - UIEnable(ID_VIEW_ROTATE180, true); - UIEnable(ID_VIEW_ROTATE270, true); - UIEnable(ID_VIEW_FILTER, true); - UIEnable(ID_VIEW_MIRROR_HORIZONTAL, true); - UIEnable(ID_VIEW_MIRROR_VERTICAL, true); - UIEnable(ID_PLAY_PLAY_PAUSE, bMovieOpen); // If no movie open. - UIEnable(ID_PLAY_STEP_FORWARD, bMovieOpen); - UIEnable(ID_PLAY_STEP_BACKWARD, bMovieOpen); - UIEnable(ID_PLAY_GOTO_START, bMovieOpen); - UIEnable(ID_PLAY_GOTO_END, bMovieOpen); - UIEnable(ID_PLAY_GOTO_FRAME, false); // Not working yet. - UIEnable(ID_PLAY_HALFSPEED, true); - UIEnable(ID_PLAY_NORMALSPEED, true); - UIEnable(ID_PLAY_DOUBLESPEED, true); - UIEnable(ID_PLAY_TRIPLESPEED, true); - UIEnable(ID_PLAY_QUADRUPLESPEED, true); - UIEnable(ID_PLAY_EIGHTSPEED, true); - UIEnable(ID_PLAY_SIXTEENSPEED, true); - UIEnable(ID_OPTIONS_EXIT, true); // Not currently implemented. - UIEnable(ID_OPTIONS_DRAW, true); - UIEnable(ID_OPTIONS_AUDIO, !bMovieOpen); // Disable while playing. - UIEnable(ID_OPTIONS_DUMPYUVFILE, true); - - UISetCheck(ID_RECENT_BTN, m_list.IsWindowVisible()); - UIUpdateToolBar(); - - return FALSE; - } - - void TogglePrintPreview() { - if (m_bPrintPreview) { // Close it. - ATLASSERT(m_hWndClient == m_wndPreview.m_hWnd); - - m_hWndClient = m_view; - m_view.ShowWindow(SW_SHOW); - m_wndPreview.DestroyWindow(); - } else { // display it - ATLASSERT(m_hWndClient == m_view.m_hWnd); - - m_wndPreview.SetPrintPreviewInfo(m_printer, m_devmode.m_pDevMode, - this, 0, 0); - m_wndPreview.SetPage(0); - - m_wndPreview.Create(m_hWnd, rcDefault, NULL, 0, WS_EX_CLIENTEDGE); - m_view.ShowWindow(SW_HIDE); - m_hWndClient = m_wndPreview; - } - - m_bPrintPreview = !m_bPrintPreview; - UpdateLayout(); - } - - void UpdateTitleBar(const wchar_t* lpstrTitle) { - CString strDefault; - strDefault.LoadString(IDR_MAINFRAME); - CString strTitle = strDefault; - if (lpstrTitle != NULL) { - strTitle = lpstrTitle; - strTitle += L" - "; - strTitle += strDefault; - } - SetWindowText(strTitle); - } - - // Print job info callbacks. - virtual bool IsValidPage(UINT nPage) { - return (nPage == 0); // We have only one page. - } - - virtual bool PrintPage(UINT nPage, HDC hDC) { - if (nPage >= 1) // We have only one page. - return false; - - if (m_view.bmp_.IsNull()) // We do not have an image. - return false; - - RECT rcPage = - { 0, 0, - ::GetDeviceCaps(hDC, PHYSICALWIDTH) - 2 * - ::GetDeviceCaps(hDC, PHYSICALOFFSETX), - ::GetDeviceCaps(hDC, PHYSICALHEIGHT) - 2 * - ::GetDeviceCaps(hDC, PHYSICALOFFSETY) }; - - CDCHandle dc = hDC; - CClientDC dcScreen(m_hWnd); - CDC dcMem; - dcMem.CreateCompatibleDC(dcScreen); - HBITMAP hBmpOld = dcMem.SelectBitmap(m_view.bmp_); - int cx = m_view.size_.cx; - int cy = m_view.size_.cy; - - // Calc scaling factor, so that bitmap is not too small - // based on the width only, max 3/4 width. - int nScale = ::MulDiv(rcPage.right, 3, 4) / cx; - if (nScale == 0) // too big already - nScale = 1; - // Calc margines to center bitmap. - int xOff = (rcPage.right - nScale * cx) / 2; - if (xOff < 0) - xOff = 0; - int yOff = (rcPage.bottom - nScale * cy) / 2; - if (yOff < 0) - yOff = 0; - // Ensure that preview doesn't go outside of the page. - int cxBlt = nScale * cx; - if (xOff + cxBlt > rcPage.right) - cxBlt = rcPage.right - xOff; - int cyBlt = nScale * cy; - if (yOff + cyBlt > rcPage.bottom) - cyBlt = rcPage.bottom - yOff; - - // Now paint bitmap. - dc.StretchBlt(xOff, yOff, cxBlt, cyBlt, dcMem, 0, 0, cx, cy, SRCCOPY); - - dcMem.SelectBitmap(hBmpOld); - - return true; - } - - BEGIN_MSG_MAP_EX(CMainFrame) - MSG_WM_CREATE(OnCreate) - MSG_WM_CONTEXTMENU(OnContextMenu) - - COMMAND_ID_HANDLER_EX(ID_FILE_OPEN, OnFileOpen) - COMMAND_ID_HANDLER_EX(ID_FILE_LAST, OnFileLast) - COMMAND_RANGE_HANDLER_EX(ID_FILE_MRU_FIRST, ID_FILE_MRU_LAST, OnFileRecent) - COMMAND_ID_HANDLER_EX(ID_RECENT_BTN, OnRecentButton) - COMMAND_ID_HANDLER_EX(ID_FILE_PRINT, OnFilePrint); - COMMAND_ID_HANDLER_EX(ID_FILE_PAGE_SETUP, OnFilePageSetup) - COMMAND_ID_HANDLER_EX(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview); - COMMAND_ID_HANDLER_EX(ID_APP_EXIT, OnFileExit) - COMMAND_ID_HANDLER_EX(ID_EDIT_COPY, OnEditCopy) - COMMAND_ID_HANDLER_EX(ID_EDIT_PASTE, OnEditPaste) - COMMAND_ID_HANDLER_EX(ID_EDIT_CLEAR, OnEditClear) - COMMAND_RANGE_HANDLER_EX(ID_VIEW_QUARTERSIZE, ID_VIEW_FULLSCREEN, - OnViewSize) - COMMAND_ID_HANDLER_EX(ID_VIEW_TOOLBAR, OnViewToolBar) - COMMAND_ID_HANDLER_EX(ID_VIEW_STATUS_BAR, OnViewStatusBar) - COMMAND_RANGE_HANDLER_EX(ID_VIEW_ROTATE0, ID_VIEW_MIRROR_VERTICAL, - OnViewRotate) - COMMAND_ID_HANDLER_EX(ID_VIEW_FILTER, OnViewFilter) - COMMAND_ID_HANDLER_EX(ID_VIEW_PROPERTIES, OnViewProperties) - COMMAND_ID_HANDLER_EX(ID_PLAY_PLAY_PAUSE, OnPlayPlayPause) - COMMAND_ID_HANDLER_EX(ID_PLAY_STEP_FORWARD, OnPlayStepForward) - COMMAND_ID_HANDLER_EX(ID_PLAY_STEP_BACKWARD, OnPlayStepBackward) - COMMAND_ID_HANDLER_EX(ID_PLAY_GOTO_START, OnPlayGotoStart) - COMMAND_ID_HANDLER_EX(ID_PLAY_GOTO_END, OnPlayGotoEnd) - COMMAND_ID_HANDLER_EX(ID_PLAY_GOTO_FRAME, OnPlayGotoFrame) - COMMAND_RANGE_HANDLER_EX(ID_PLAY_HALFSPEED, ID_PLAY_SIXTEENSPEED, - OnPlaySpeed) - COMMAND_ID_HANDLER_EX(ID_APP_ABOUT, OnAppAbout) - COMMAND_ID_HANDLER_EX(ID_OPTIONS_EXIT, OnOptionsExit) - COMMAND_ID_HANDLER_EX(ID_OPTIONS_DRAW, OnOptionsDraw) - COMMAND_ID_HANDLER_EX(ID_OPTIONS_AUDIO, OnOptionsAudio) - COMMAND_ID_HANDLER_EX(ID_OPTIONS_DUMPYUVFILE, OnOptionsDumpYUVFile) - - CHAIN_MSG_MAP(CUpdateUI<CMainFrame>) - CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>) - END_MSG_MAP() - - BEGIN_UPDATE_UI_MAP(CMainFrame) - UPDATE_ELEMENT(ID_FILE_PRINT, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) - UPDATE_ELEMENT(ID_FILE_PRINT_PREVIEW, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) - UPDATE_ELEMENT(ID_EDIT_COPY, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) - UPDATE_ELEMENT(ID_EDIT_PASTE, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) - UPDATE_ELEMENT(ID_EDIT_CLEAR, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) - UPDATE_ELEMENT(ID_VIEW_QUARTERSIZE, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_HALFSIZE, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_NORMALSIZE, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_DOUBLESIZE, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_TRIPLESIZE, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_QUADRUPLESIZE, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_FITTOSCREEN, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_FULLSCREEN, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_TOOLBAR, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_STATUS_BAR, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_ROTATE0, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_ROTATE90, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_ROTATE180, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_ROTATE270, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_FILTER, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_MIRROR_HORIZONTAL, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_MIRROR_VERTICAL, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_VIEW_PROPERTIES, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) - UPDATE_ELEMENT(ID_PLAY_PLAY_PAUSE, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) - UPDATE_ELEMENT(ID_PLAY_STEP_FORWARD, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_STEP_BACKWARD, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_GOTO_START, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_GOTO_END, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_GOTO_FRAME, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_HALFSPEED, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_NORMALSPEED, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_DOUBLESPEED, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_TRIPLESPEED, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_QUADRUPLESPEED, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_EIGHTSPEED, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_PLAY_SIXTEENSPEED, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_OPTIONS_EXIT, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_OPTIONS_DRAW, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_OPTIONS_AUDIO, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_OPTIONS_DUMPYUVFILE, UPDUI_MENUPOPUP) - UPDATE_ELEMENT(ID_RECENT_BTN, UPDUI_TOOLBAR) - END_UPDATE_UI_MAP() - - void UpdateSizeUICheck() { - int view_size = m_view.GetViewSize(); - UISetCheck(ID_VIEW_QUARTERSIZE, (view_size == 0)); - UISetCheck(ID_VIEW_HALFSIZE, (view_size == 1)); - UISetCheck(ID_VIEW_NORMALSIZE, (view_size == 2)); - UISetCheck(ID_VIEW_DOUBLESIZE, (view_size == 3)); - UISetCheck(ID_VIEW_TRIPLESIZE, (view_size == 4)); - UISetCheck(ID_VIEW_QUADRUPLESIZE, (view_size == 5)); - UISetCheck(ID_VIEW_FITTOSCREEN, (view_size == 6)); - UISetCheck(ID_VIEW_FULLSCREEN, (view_size == 7)); - } - - void UpdateSpeedUICheck() { - if (media::Movie::GetInstance()) { - float play_rate = media::Movie::GetInstance()->GetPlayRate(); - UISetCheck(ID_PLAY_HALFSPEED, (play_rate == 0.5f)); - UISetCheck(ID_PLAY_NORMALSPEED, (play_rate == 1.0f)); - UISetCheck(ID_PLAY_DOUBLESPEED, (play_rate == 2.0f)); - UISetCheck(ID_PLAY_TRIPLESPEED, (play_rate == 3.0f)); - UISetCheck(ID_PLAY_QUADRUPLESPEED, (play_rate == 4.0f)); - UISetCheck(ID_PLAY_EIGHTSPEED, (play_rate == 8.0f)); - UISetCheck(ID_PLAY_SIXTEENSPEED, (play_rate == 16.0f)); - } - } - - void UpdateRotateUICheck() { - int view_rotate = m_view.GetViewRotate(); - UISetCheck(ID_VIEW_ROTATE0, (view_rotate == 0)); - UISetCheck(ID_VIEW_ROTATE90, (view_rotate == 1)); - UISetCheck(ID_VIEW_ROTATE180, (view_rotate == 2)); - UISetCheck(ID_VIEW_ROTATE270, (view_rotate == 3)); - UISetCheck(ID_VIEW_MIRROR_HORIZONTAL, (view_rotate == 4)); - UISetCheck(ID_VIEW_MIRROR_VERTICAL, (view_rotate == 5)); - } - - void UpdateFilterUICheck() { - int view_filter = m_view.GetViewFilter(); - UISetCheck(ID_VIEW_FILTER, (view_filter == 1)); - } - - int OnCreate(LPCREATESTRUCT /*lpCreateStruct*/) { - // create command bar window - HWND hWndCmdBar = m_CmdBar.Create(m_hWnd, rcDefault, NULL, - ATL_SIMPLE_CMDBAR_PANE_STYLE); - // atach menu - m_CmdBar.AttachMenu(GetMenu()); - // load command bar images - m_CmdBar.LoadImages(IDR_MAINFRAME); - // remove old menu - SetMenu(NULL); - - // create toolbar and rebar - HWND hWndToolBar = CreateSimpleToolBarCtrl(m_hWnd, IDR_MAINFRAME, - FALSE, - ATL_SIMPLE_TOOLBAR_PANE_STYLE); - - CreateSimpleReBar(ATL_SIMPLE_REBAR_NOBORDER_STYLE); - AddSimpleReBarBand(hWndCmdBar); - AddSimpleReBarBand(hWndToolBar, NULL, TRUE); - - // create status bar - CreateSimpleStatusBar(); - - // create view window - m_hWndClient = m_view.Create(m_hWnd, rcDefault, NULL, - WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | - WS_CLIPCHILDREN, WS_EX_CLIENTEDGE); - - // set up MRU stuff - CMenuHandle menu = m_CmdBar.GetMenu(); - CMenuHandle menuFile = menu.GetSubMenu(FILE_MENU_POSITION); - CMenuHandle menuMru = menuFile.GetSubMenu(RECENT_MENU_POSITION); - m_mru.SetMenuHandle(menuMru); - m_mru.SetMaxEntries(12); - - m_mru.ReadFromRegistry(g_lpcstrMRURegKey); - - // create MRU list - m_list.Create(m_hWnd); - - // set up update UI - UIAddToolBar(hWndToolBar); - UISetCheck(ID_VIEW_NORMALSIZE, 1); - UISetCheck(ID_PLAY_NORMALSPEED, 1); - UISetCheck(ID_VIEW_TOOLBAR, 1); - UISetCheck(ID_VIEW_STATUS_BAR, 1); - UISetCheck(ID_VIEW_ROTATE0, 1); - UISetCheck(ID_VIEW_FILTER, 0); - UISetCheck(ID_OPTIONS_EXIT, 0); - UISetCheck(ID_OPTIONS_DRAW, 1); - UISetCheck(ID_OPTIONS_AUDIO, 1); - UpdateSizeUICheck(); - UpdateSpeedUICheck(); - - CMessageLoop* pLoop = g_module.GetMessageLoop(); - ATLASSERT(pLoop != NULL); - pLoop->AddMessageFilter(this); - pLoop->AddIdleHandler(this); - - return 0; - } - - void OnContextMenu(CWindow wnd, POINT point) { - if (wnd.m_hWnd == m_view.m_hWnd) { - CMenu menu; - menu.LoadMenu(IDR_CONTEXTMENU); - CMenuHandle menuPopup = menu.GetSubMenu(POPUP_MENU_POSITION); - m_CmdBar.TrackPopupMenu(menuPopup, TPM_RIGHTBUTTON | TPM_VERTICAL, - point.x, point.y); - } else { - SetMsgHandled(FALSE); - } - } - - void OnFileExit(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - PostMessage(WM_CLOSE); - } - - bool IsMovie(const wchar_t* file_name) { - if (_tcsstr(file_name, L".bmp")) - return false; - return true; - } - - bool MovieOpenFile(const wchar_t* file_name) { - bool success = false; - - if (m_bPrintPreview) - TogglePrintPreview(); - - // If a movie is open, close it. - media::Movie::GetInstance()->Close(); - - if (IsMovie(file_name)) { - success = media::Movie::GetInstance()->Open(file_name, m_view.renderer_); - } else { - HBITMAP hbmp = NULL; - hbmp = (HBITMAP)::LoadImage(NULL, file_name, IMAGE_BITMAP, 0, 0, - LR_CREATEDIBSECTION | LR_DEFAULTCOLOR | - LR_LOADFROMFILE); - if (hbmp) { - m_view.SetBitmap(hbmp); - success = true; - } - } - - if (success) { - m_mru.AddToList(file_name); - m_mru.WriteToRegistry(g_lpcstrMRURegKey); - UpdateTitleBar(file_name); - // TODO(fbarchard): Move name into view class. - lstrcpy(m_szFilePath, file_name); - } else { - CString strMsg = L"Can't open movie from:\n"; - strMsg += file_name; - ::MessageBeep(MB_ICONERROR); - MessageBox(strMsg, g_lpcstrApp, MB_OK | MB_ICONERROR); - } - return success; - } - - void OnFileOpen(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - CFileDialog dlg(TRUE, L"bmp", NULL, - OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, - L"Movie Files (*.mp4;*.ogg;*.ogv)\0" - L"*.mp4;*.ogg;*.ogv\0" - L"Audio Files (*.mp3;*.m4a)\0*.mp3;*.m4a\0All Files (*.*)\0*.*\0", - m_hWnd); - if (dlg.DoModal() == IDOK) { - MovieOpenFile(dlg.m_szFileName); - } - } - - void OnFileRecent(UINT /*uNotifyCode*/, int nID, CWindow /*wnd*/) { - // Get file name from the MRU list - wchar_t file_name[MAX_PATH]; - if (m_mru.GetFromList(nID, file_name, MAX_PATH)) { - MovieOpenFile(file_name); - } - } - - void OnFileLast(UINT uNotifyCode, int /*nID*/, CWindow wnd) { - OnFileRecent(uNotifyCode, ID_FILE_MRU_FIRST, wnd); - } - - void OnRecentButton(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - UINT uBandID = ATL_IDW_BAND_FIRST + 1; // toolbar is second added band - CReBarCtrl rebar = m_hWndToolBar; - int nBandIndex = rebar.IdToIndex(uBandID); - REBARBANDINFO rbbi = { 0 }; - rbbi.cbSize = RunTimeHelper::SizeOf_REBARBANDINFO(); - rbbi.fMask = RBBIM_CHILD; - rebar.GetBandInfo(nBandIndex, &rbbi); - CToolBarCtrl wndToolBar = rbbi.hwndChild; - - int nIndex = wndToolBar.CommandToIndex(ID_RECENT_BTN); - CRect rect; - wndToolBar.GetItemRect(nIndex, rect); - wndToolBar.ClientToScreen(rect); - - // Build and display MRU list in a popup - m_list.BuildList(m_mru); - m_list.ShowList(rect.left, rect.bottom); - } - - void OnFilePrint(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - CPrintDialog dlg(FALSE); - dlg.m_pd.hDevMode = m_devmode.CopyToHDEVMODE(); - dlg.m_pd.hDevNames = m_printer.CopyToHDEVNAMES(); - dlg.m_pd.nMinPage = 1; - dlg.m_pd.nMaxPage = 1; - - if (dlg.DoModal() == IDOK) { - m_devmode.CopyFromHDEVMODE(dlg.m_pd.hDevMode); - m_printer.ClosePrinter(); - m_printer.OpenPrinter(dlg.m_pd.hDevNames, m_devmode.m_pDevMode); - - CPrintJob job; - job.StartPrintJob(false, m_printer, m_devmode.m_pDevMode, this, - L"MediaPlayer Document", 0, 0, - (dlg.PrintToFile() != FALSE)); - } - - ::GlobalFree(dlg.m_pd.hDevMode); - ::GlobalFree(dlg.m_pd.hDevNames); - } - - void OnFilePageSetup(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - CPageSetupDialog dlg; - dlg.m_psd.hDevMode = m_devmode.CopyToHDEVMODE(); - dlg.m_psd.hDevNames = m_printer.CopyToHDEVNAMES(); - dlg.m_psd.rtMargin = m_rcMargin; - - if (dlg.DoModal() == IDOK) { - if (m_bPrintPreview) - TogglePrintPreview(); - - m_devmode.CopyFromHDEVMODE(dlg.m_psd.hDevMode); - m_printer.ClosePrinter(); - m_printer.OpenPrinter(dlg.m_psd.hDevNames, m_devmode.m_pDevMode); - m_rcMargin = dlg.m_psd.rtMargin; - } - - ::GlobalFree(dlg.m_psd.hDevMode); - ::GlobalFree(dlg.m_psd.hDevNames); - } - - void OnFilePrintPreview(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - TogglePrintPreview(); - } - - void OnEditCopy(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - if (::OpenClipboard(NULL)) { - HBITMAP hBitmapCopy = (HBITMAP)::CopyImage(m_view.bmp_.m_hBitmap, - IMAGE_BITMAP, 0, 0, 0); - if (hBitmapCopy != NULL) - ::SetClipboardData(CF_BITMAP, hBitmapCopy); - else - MessageBox(L"Can't copy frame", g_lpcstrApp, MB_OK | MB_ICONERROR); - - ::CloseClipboard(); - } else { - MessageBox(L"Can't open clipboard to copy", - g_lpcstrApp, MB_OK | MB_ICONERROR); - } - } - - void OnEditPaste(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - if (m_bPrintPreview) - TogglePrintPreview(); - - if (::OpenClipboard(NULL)) { - HBITMAP hBitmap = (HBITMAP)::GetClipboardData(CF_BITMAP); - ::CloseClipboard(); - if (hBitmap != NULL) { - HBITMAP hBitmapCopy = (HBITMAP)::CopyImage(hBitmap, IMAGE_BITMAP, - 0, 0, 0); - if (hBitmapCopy != NULL) { - m_view.SetBitmap(hBitmapCopy); - UpdateTitleBar(L"(Clipboard)"); - m_szFilePath[0] = 0; - } else { - MessageBox(L"Can't paste frame", - g_lpcstrApp, MB_OK | MB_ICONERROR); - } - } else { - MessageBox(L"Can't open frame from the clipboard", - g_lpcstrApp, MB_OK | MB_ICONERROR); - } - } else { - MessageBox(L"Can't open clipboard to paste", - g_lpcstrApp, MB_OK | MB_ICONERROR); - } - } - - void OnEditClear(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - if (m_bPrintPreview) - TogglePrintPreview(); - - media::Movie::GetInstance()->Close(); - m_view.Reset(); - UpdateTitleBar(NULL); - m_szFilePath[0] = 0; - } - - void OnViewSize(UINT /*uNotifyCode*/, int nID, CWindow /*wnd*/) { - m_view.SetViewSize(nID - ID_VIEW_QUARTERSIZE); - UpdateSizeUICheck(); - UpdateLayout(); - } - - void OnViewRotate(UINT /*uNotifyCode*/, int nID, CWindow /*wnd*/) { - m_view.SetViewRotate(nID - ID_VIEW_ROTATE0); - UpdateRotateUICheck(); - UpdateLayout(); - } - - void OnViewFilter(UINT /*uNotifyCode*/, int nID, CWindow /*wnd*/) { - int view_filter = (m_view.GetViewFilter() == 1) ? 0 : 1; - m_view.SetViewFilter(view_filter); - UpdateFilterUICheck(); - UpdateLayout(); - } - - void OnViewToolBar(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - static BOOL bNew = TRUE; // initially visible - bNew = !bNew; - UINT uBandID = ATL_IDW_BAND_FIRST + 1; // toolbar is second added band - CReBarCtrl rebar = m_hWndToolBar; - int nBandIndex = rebar.IdToIndex(uBandID); - rebar.ShowBand(nBandIndex, bNew); - UISetCheck(ID_VIEW_TOOLBAR, bNew); - UpdateLayout(); - } - - void OnViewStatusBar(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - BOOL bNew = !::IsWindowVisible(m_hWndStatusBar); - ::ShowWindow(m_hWndStatusBar, bNew ? SW_SHOWNOACTIVATE : SW_HIDE); - UISetCheck(ID_VIEW_STATUS_BAR, bNew); - UpdateLayout(); - } - - void OnViewProperties(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - CBmpProperties prop; - if (lstrlen(m_szFilePath) > 0) // we have a file name - prop.SetFileInfo(m_szFilePath, NULL); - else // must be clipboard then - prop.SetFileInfo(NULL, m_view.bmp_.m_hBitmap); - prop.DoModal(); - } - - void OnPlayPlayPause(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - bool paused = !media::Movie::GetInstance()->GetPause(); - media::Movie::GetInstance()->SetPause(paused); - } - - void OnPlayStepForward(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - float current_position = media::Movie::GetInstance()->GetPosition(); - media::Movie::GetInstance()->SetPosition(current_position + 10.0f); - } - - void OnPlayStepBackward(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - float current_position = media::Movie::GetInstance()->GetPosition(); - media::Movie::GetInstance()->SetPosition(current_position - 10.0f); - } - - void OnPlayGotoStart(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - media::Movie::GetInstance()->SetPosition(0.0); - } - - void OnPlayGotoEnd(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - float current_position = media::Movie::GetInstance()->GetDuration(); - media::Movie::GetInstance()->SetPosition(current_position - 30.0f); - } - - void SetPlayRate(int play_speed) { - if (play_speed == 0) { - media::Movie::GetInstance()->Play(0.5f); - } else if (play_speed == 2) { - media::Movie::GetInstance()->Play(2.0f); - } else if (play_speed == 3) { - media::Movie::GetInstance()->Play(3.0f); - } else if (play_speed == 4) { - media::Movie::GetInstance()->Play(4.0f); - } else if (play_speed == 5) { - media::Movie::GetInstance()->Play(8.0f); - } else if (play_speed == 6) { - media::Movie::GetInstance()->Play(16.0f); - } else { - media::Movie::GetInstance()->Play(1.0f); - } - } - - void OnPlaySpeed(UINT /*uNotifyCode*/, int nID, CWindow /*wnd*/) { - int play_speed = nID - ID_PLAY_HALFSPEED; - SetPlayRate(play_speed); - UpdateSpeedUICheck(); - UpdateLayout(); - } - - void OnOptionsExit(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - // TODO(fbarchard): Implement when pipeline exposes properties. - enable_exit = !enable_exit; - UISetCheck(ID_OPTIONS_EXIT, enable_exit); - UpdateLayout(); - } - - void OnOptionsDraw(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - bool enable_draw = !media::Movie::GetInstance()->GetDrawEnable(); - media::Movie::GetInstance()->SetDrawEnable(enable_draw); - UISetCheck(ID_OPTIONS_DRAW, enable_draw); - UpdateLayout(); - } - - void OnOptionsAudio(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - bool enable_audio = !media::Movie::GetInstance()->GetAudioEnable(); - media::Movie::GetInstance()->SetAudioEnable(enable_audio); - UISetCheck(ID_OPTIONS_AUDIO, enable_audio); - UpdateLayout(); - } - - void OnOptionsDumpYUVFile(UINT /*uNotify*/, int /*nID*/, CWindow /*wnd*/) { - bool enable_dump_yuv_file = - !media::Movie::GetInstance()->GetDumpYuvFileEnable(); - media::Movie::GetInstance()->SetDumpYuvFileEnable(enable_dump_yuv_file); - UISetCheck(ID_OPTIONS_DUMPYUVFILE, enable_dump_yuv_file); - UpdateLayout(); - } - - void OnAppAbout(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - CSimpleDialog<IDD_ABOUTBOX> dlg; - dlg.DoModal(); - } - - - void OnPlayGotoFrame(UINT /*uNotifyCode*/, int /*nID*/, CWindow /*wnd*/) { - CSeek seek; - seek.DoModal(); - } -}; - -#endif // MEDIA_TOOLS_PLAYER_WTL_MAINFRM_H_ diff --git a/media/tools/player_wtl/movie.cc b/media/tools/player_wtl/movie.cc deleted file mode 100644 index e30abd7..0000000 --- a/media/tools/player_wtl/movie.cc +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "media/tools/player_wtl/movie.h" - -#include "base/bind.h" -#include "base/memory/singleton.h" -#include "base/threading/platform_thread.h" -#include "base/utf_string_conversions.h" -#include "media/audio/audio_manager.h" -#include "media/audio/null_audio_sink.h" -#include "media/base/filter_collection.h" -#include "media/base/media_log.h" -#include "media/base/message_loop_factory.h" -#include "media/base/pipeline.h" -#include "media/filters/audio_renderer_impl.h" -#include "media/filters/ffmpeg_audio_decoder.h" -#include "media/filters/ffmpeg_demuxer.h" -#include "media/filters/ffmpeg_video_decoder.h" -#include "media/filters/file_data_source.h" -#include "media/filters/video_renderer_base.h" - -namespace media { - -static void OnBufferingState(media::Pipeline::BufferingState buffering_state) {} - -Movie::Movie() - : audio_manager_(AudioManager::Create()), - enable_audio_(false), - enable_draw_(true), - enable_dump_yuv_file_(false), - enable_pause_(false), - max_threads_(0), - play_rate_(1.0f), - movie_dib_(NULL), - movie_hwnd_(0) { -} - -Movie::~Movie() { -} - -Movie* Movie::GetInstance() { - return Singleton<Movie>::get(); -} - -bool Movie::IsOpen() { - return pipeline_ != NULL; -} - -void Movie::SetFrameBuffer(HBITMAP hbmp, HWND hwnd) { - movie_dib_ = hbmp; - movie_hwnd_ = hwnd; -} - -bool Movie::Open(const wchar_t* file_path, VideoRendererBase* video_renderer) { - // Close previous movie. - if (pipeline_) { - Close(); - } - - message_loop_factory_.reset(new media::MessageLoopFactory()); - - scoped_refptr<base::MessageLoopProxy> pipeline_loop = - message_loop_factory_->GetMessageLoop( - media::MessageLoopFactory::kPipeline); - pipeline_ = new Pipeline(pipeline_loop, new media::MediaLog()); - - // Open the file. - scoped_refptr<FileDataSource> data_source = new FileDataSource(); - if (!data_source->Initialize(FilePath(file_path))) { - return false; - } - - // Create filter collection. - scoped_ptr<FilterCollection> collection(new FilterCollection()); - collection->SetDemuxer(new FFmpegDemuxer(pipeline_loop, data_source)); - collection->GetAudioDecoders()->push_back(new FFmpegAudioDecoder( - pipeline_loop)); - collection->GetVideoDecoders()->push_back(new FFmpegVideoDecoder( - pipeline_loop, NULL)); - - // TODO(vrk): Re-enabled audio. (crbug.com/112159) - collection->AddAudioRenderer( - new media::AudioRendererImpl(new media::NullAudioSink())); - collection->AddVideoRenderer(video_renderer); - - // Create and start our pipeline. - media::PipelineStatusNotification note; - pipeline_->Start( - collection.Pass(), - media::PipelineStatusCB(), - media::PipelineStatusCB(), - note.Callback(), - base::Bind(&OnBufferingState)); - - // Wait until the pipeline is fully initialized. - note.Wait(); - if (note.status() != PIPELINE_OK) - return false; - pipeline_->SetPlaybackRate(play_rate_); - return true; -} - -void Movie::Play(float rate) { - // Begin playback. - if (pipeline_) - pipeline_->SetPlaybackRate(enable_pause_ ? 0.0f : rate); - if (rate > 0.0f) - play_rate_ = rate; -} - -// Get playback rate. -float Movie::GetPlayRate() { - return play_rate_; -} - -// Get movie duration in seconds. -float Movie::GetDuration() { - float duration = 0.f; - if (pipeline_) - duration = (pipeline_->GetMediaDuration()).InMicroseconds() / 1000000.0f; - return duration; -} - -// Get current movie position in seconds. -float Movie::GetPosition() { - float position = 0.f; - if (pipeline_) - position = (pipeline_->GetMediaTime()).InMicroseconds() / 1000000.0f; - return position; -} - -// Set current movie position in seconds. -void Movie::SetPosition(float position) { - int64 us = static_cast<int64>(position * 1000000); - base::TimeDelta time = base::TimeDelta::FromMicroseconds(us); - if (pipeline_) - pipeline_->Seek(time, media::PipelineStatusCB()); -} - - -// Set playback pause. -void Movie::SetPause(bool pause) { - enable_pause_ = pause; - Play(play_rate_); -} - -// Get playback pause state. -bool Movie::GetPause() { - return enable_pause_; -} - -void Movie::SetAudioEnable(bool enable_audio) { -} - -bool Movie::GetAudioEnable() { - return enable_audio_; -} - -void Movie::SetDrawEnable(bool enable_draw) { - enable_draw_ = enable_draw; -} - -bool Movie::GetDrawEnable() { - return enable_draw_; -} - -void Movie::SetDumpYuvFileEnable(bool enable_dump_yuv_file) { - enable_dump_yuv_file_ = enable_dump_yuv_file; -} - -bool Movie::GetDumpYuvFileEnable() { - return enable_dump_yuv_file_; -} - -// Teardown. -void Movie::Close() { - if (pipeline_) { - pipeline_->Stop(base::Closure()); - pipeline_ = NULL; - } - - message_loop_factory_.reset(); -} - -} // namespace media diff --git a/media/tools/player_wtl/movie.h b/media/tools/player_wtl/movie.h deleted file mode 100644 index 7414407..0000000 --- a/media/tools/player_wtl/movie.h +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Movie class for WTL forms to call to control the media pipeline. - -#ifndef MEDIA_TOOLS_PLAYER_WTL_MOVIE_H_ -#define MEDIA_TOOLS_PLAYER_WTL_MOVIE_H_ - -#include "media/tools/player_wtl/player_wtl.h" - -#include "base/memory/ref_counted.h" -#include "base/memory/scoped_ptr.h" -#include "media/base/message_loop_factory.h" - -template <typename T> struct DefaultSingletonTraits; - -namespace media { - -class AudioManager; -class Pipeline; -class VideoRendererBase; - -class Movie { - public: - // Returns the singleton instance. - static Movie* GetInstance(); - - // Open a movie. - bool Open(const wchar_t* file_path, VideoRendererBase* video_renderer); - - // Set playback rate. - void Play(float rate); - - // Set playback rate. - float GetPlayRate(); - - // Get movie duration in seconds. - float GetDuration(); - - // Get current movie position in seconds. - float GetPosition(); - - // Set current movie position in seconds. - void SetPosition(float position); - - // Set playback pause. - void SetPause(bool pause); - - // Get playback pause state. - bool GetPause(); - - // Set buffer to render into. - void SetFrameBuffer(HBITMAP hbmp, HWND hwnd); - - // Close movie. - void Close(); - - // Query if movie is currently open. - bool IsOpen(); - - // Enable/Disable audio. - void SetAudioEnable(bool enable_audio); - - // Get Enable/Disable audio state. - bool GetAudioEnable(); - - // Enable/Disable draw. - void SetDrawEnable(bool enable_draw); - - // Get Enable/Disable draw state. - bool GetDrawEnable(); - - // Enable/Disable dump yuv file. - void SetDumpYuvFileEnable(bool enable_dump_yuv_file); - - // Get Enable/Disable dump yuv file state. - bool GetDumpYuvFileEnable(); - - private: - // Only allow Singleton to create and delete Movie. - friend struct DefaultSingletonTraits<Movie>; - Movie(); - virtual ~Movie(); - - scoped_refptr<Pipeline> pipeline_; - scoped_ptr<media::MessageLoopFactory> message_loop_factory_; - scoped_ptr<AudioManager> audio_manager_; - - bool enable_audio_; - bool enable_draw_; - bool enable_dump_yuv_file_; - bool enable_pause_; - int max_threads_; - float play_rate_; - HBITMAP movie_dib_; - HWND movie_hwnd_; - - DISALLOW_COPY_AND_ASSIGN(Movie); -}; - -} // namespace media - -#endif // MEDIA_TOOLS_PLAYER_WTL_MOVIE_H_ diff --git a/media/tools/player_wtl/player_wtl.cc b/media/tools/player_wtl/player_wtl.cc deleted file mode 100644 index 7756042..0000000 --- a/media/tools/player_wtl/player_wtl.cc +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Stand alone media player application used for testing the media library. - -#include "media/tools/player_wtl/player_wtl.h" - -#include "base/at_exit.h" -#include "base/command_line.h" -#include "media/base/pipeline.h" -#include "media/filters/ffmpeg_audio_decoder.h" -#include "media/filters/ffmpeg_demuxer.h" -#include "media/filters/ffmpeg_video_decoder.h" -#include "media/filters/file_data_source.h" -#include "media/tools/player_wtl/mainfrm.h" - -// See player_wtl.h to enable timing code by turning on TESTING macro. - -namespace switches { -const char kExit[] = "exit"; -} // namespace switches - -CAppModule g_module; - -int Run(wchar_t* win_cmd_line, int cmd_show) { - base::AtExitManager exit_manager; - - // Windows version of Init uses OS to fetch command line. - CommandLine::Init(0, NULL); - const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); - - const CommandLine::StringVector& filenames = cmd_line->GetArgs(); - - CMessageLoop the_loop; - g_module.AddMessageLoop(&the_loop); - - CMainFrame wnd_main; - if (wnd_main.CreateEx() == NULL) { - DCHECK(false) << "Main window creation failed!"; - return 0; - } - - wnd_main.ShowWindow(cmd_show); - - if (!filenames.empty()) { - const wchar_t* url = filenames[0].c_str(); - wnd_main.MovieOpenFile(url); - } - - if (cmd_line->HasSwitch(switches::kExit)) { - wnd_main.OnOptionsExit(0, 0, 0); - } - - int result = the_loop.Run(); - - media::Movie::GetInstance()->Close(); - - g_module.RemoveMessageLoop(); - return result; -} - -int WINAPI _tWinMain(HINSTANCE instance, HINSTANCE /*previous_instance*/, - wchar_t* cmd_line, int cmd_show) { -#ifdef TESTING - double player_time_start = GetTime(); -#endif - INITCOMMONCONTROLSEX iccx; - iccx.dwSize = sizeof(iccx); - iccx.dwICC = ICC_COOL_CLASSES | ICC_BAR_CLASSES; - if (!::InitCommonControlsEx(&iccx)) { - DCHECK(false) << "Failed to initialize common controls"; - return 1; - } - if (FAILED(g_module.Init(NULL, instance))) { - DCHECK(false) << "Failed to initialize application module"; - return 1; - } - int result = Run(cmd_line, cmd_show); - - g_module.Term(); -#ifdef TESTING - double player_time_end = GetTime(); - char outputbuf[512]; - _snprintf_s(outputbuf, sizeof(outputbuf), - "player time %5.2f ms\n", - player_time_end - player_time_start); - OutputDebugStringA(outputbuf); - printf("%s", outputbuf); -#endif - return result; -} diff --git a/media/tools/player_wtl/player_wtl.h b/media/tools/player_wtl/player_wtl.h deleted file mode 100644 index 6c0747a..0000000 --- a/media/tools/player_wtl/player_wtl.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Stand alone media player application used for testing the media library. - -#ifndef MEDIA_TOOLS_PLAYER_WTL_PLAYER_WTL_H_ -#define MEDIA_TOOLS_PLAYER_WTL_PLAYER_WTL_H_ - -// Enable timing code by turning on TESTING macro. -#define TESTING 1 - -// ATL and WTL require order dependent includes. -#include <atlbase.h> // NOLINT -#include <atlapp.h> // NOLINT -#include <atlcrack.h> // NOLINT -#include <atlctrls.h> // NOLINT -#include <atlctrlw.h> // NOLINT -#include <atldlgs.h> // NOLINT -#include <atlframe.h> // NOLINT -#include <atlmisc.h> // NOLINT -#include <atlscrl.h> // NOLINT -#include <winspool.h> // NOLINT -#include <atlprint.h> // NOLINT - -extern CAppModule g_module; - -#endif // MEDIA_TOOLS_PLAYER_WTL_PLAYER_WTL_H_ diff --git a/media/tools/player_wtl/player_wtl.ico b/media/tools/player_wtl/player_wtl.ico Binary files differdeleted file mode 100644 index 93d8182..0000000 --- a/media/tools/player_wtl/player_wtl.ico +++ /dev/null diff --git a/media/tools/player_wtl/player_wtl.rc b/media/tools/player_wtl/player_wtl.rc deleted file mode 100644 index 25cfdab..0000000 --- a/media/tools/player_wtl/player_wtl.rc +++ /dev/null @@ -1,546 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "../third_party/wtl/include/atlres.h" -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""../third_party/wtl/include/atlres.h\0" -END - -3 TEXTINCLUDE -BEGIN - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Toolbar -// - -IDR_MAINFRAME4 TOOLBAR 16, 15 -BEGIN - BUTTON ID_PLAY_PLAY_PAUSE - SEPARATOR - BUTTON ID_FILE_OPEN - BUTTON ID_RECENT_BTN - SEPARATOR - BUTTON ID_FILE_PRINT - BUTTON ID_FILE_PRINT_PREVIEW - BUTTON ID_FILE_PAGE_SETUP - SEPARATOR - BUTTON ID_EDIT_COPY - BUTTON ID_EDIT_PASTE - BUTTON ID_EDIT_CLEAR - SEPARATOR - BUTTON ID_VIEW_PROPERTIES - BUTTON ID_APP_ABOUT -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDR_MAINFRAME4 BITMAP "Toolbar.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDR_MAINFRAME MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN - MENUITEM SEPARATOR - MENUITEM "&Print...\tCtrl+P", ID_FILE_PRINT - MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW - MENUITEM "Pa&ge Setup...", ID_FILE_PAGE_SETUP - MENUITEM SEPARATOR - POPUP "Recent &Files" - BEGIN - MENUITEM "(empty)", ID_FILE_MRU_FILE1 - END - MENUITEM "&Last...\tCtrl+L", ID_FILE_LAST - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_APP_EXIT - END - POPUP "&Edit" - BEGIN - MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY - MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE - MENUITEM "Cl&ear\tCTRL+F4", ID_EDIT_CLEAR - END - POPUP "&View" - BEGIN - MENUITEM "&Quarter Size\tCtrl+9", ID_VIEW_QUARTERSIZE - MENUITEM "&Half Size\tCtrl+0", ID_VIEW_HALFSIZE - MENUITEM "&Normal Size\tCtrl+1", ID_VIEW_NORMALSIZE - MENUITEM "&Double Size\tCtrl+2", ID_VIEW_DOUBLESIZE - MENUITEM "Triple Size\tCtrl+3", ID_VIEW_TRIPLESIZE - MENUITEM "Quadruple Size\tCtrl+4", ID_VIEW_QUADRUPLESIZE - MENUITEM "Fit to Screen", ID_VIEW_FITTOSCREEN - MENUITEM "Full Screen", ID_VIEW_FULLSCREEN - MENUITEM SEPARATOR - MENUITEM "&Toolbar", ID_VIEW_TOOLBAR - MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR - MENUITEM SEPARATOR - MENUITEM "N&o Rotation", ID_VIEW_ROTATE0 - MENUITEM "Rotate &90", ID_VIEW_ROTATE90 - MENUITEM "Rotate &180", ID_VIEW_ROTATE180 - MENUITEM "Rotate &270", ID_VIEW_ROTATE270 - MENUITEM "&Filter\tCtrl+F", ID_VIEW_FILTER - MENUITEM "&Mirror Horizontally", ID_VIEW_MIRROR_HORIZONTAL - MENUITEM "Mirror &Vertically", ID_VIEW_MIRROR_VERTICAL - MENUITEM SEPARATOR - MENUITEM "&Properties", ID_VIEW_PROPERTIES - END - POPUP "&Play" - BEGIN - MENUITEM "&Play/Pause\tSpace", ID_PLAY_PLAY_PAUSE - MENUITEM "Skip &Forward\tRight Arrow", ID_PLAY_STEP_FORWARD - MENUITEM "Skip &Backward\tLeft Arrow", ID_PLAY_STEP_BACKWARD - MENUITEM "G&oto Start\tHome", ID_PLAY_GOTO_START - MENUITEM "Goto &End\tEnd", ID_PLAY_GOTO_END - MENUITEM "&Goto Frame\tCtrl+G", ID_PLAY_GOTO_FRAME - MENUITEM SEPARATOR - MENUITEM "&Half Speed\tAlt+0", ID_PLAY_HALFSPEED - MENUITEM "&Normal Speed\tAlt+1", ID_PLAY_NORMALSPEED - MENUITEM "&Double Speed\tAlt+2", ID_PLAY_DOUBLESPEED - MENUITEM "&Triple Speed\tAlt+3", ID_PLAY_TRIPLESPEED - MENUITEM "&Quadruple Speed\tAlt+4", ID_PLAY_QUADRUPLESPEED - MENUITEM "&Eight Times Speed\tAlt+5", ID_PLAY_EIGHTSPEED - MENUITEM "&Sixteen Times Speed\tAlt+6", ID_PLAY_SIXTEENSPEED - END - POPUP "&Options" - BEGIN - MENUITEM "&Exit at End of Movie", ID_OPTIONS_EXIT - MENUITEM "Draw", ID_OPTIONS_DRAW - MENUITEM "Audio", ID_OPTIONS_AUDIO - MENUITEM "Dump YUV File", ID_OPTIONS_DUMPYUVFILE - END - POPUP "&Help" - BEGIN - MENUITEM "&About Media Player...", ID_APP_ABOUT - END -END - -IDR_CONTEXTMENU MENU -BEGIN - POPUP "" - BEGIN - MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY - MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE - MENUITEM "Cl&ear", ID_EDIT_CLEAR - MENUITEM SEPARATOR - MENUITEM "&Properties", ID_VIEW_PROPERTIES - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDR_MAINFRAME3 ICON "player_wtl.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUTBOX DIALOGEX 0, 0, 185, 126 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "About" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "OK",IDOK,121,97,50,14 - CTEXT "Media Player\n\nAugust 11, 2009\n\nCopyright (c) 2009 The Chromium Authors.\nAll rights reserved.",IDC_STATIC,7,43,171,49 - ICON IDR_MAINFRAME3,IDC_STATIC,80,17,20,20 - GROUPBOX "",IDC_STATIC,7,7,171,112 -END - -IDD_PROP_PAGE1 DIALOGEX 0, 0, 212, 114 -STYLE DS_SETFONT | WS_CHILD | WS_CAPTION -CAPTION "Movie" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - LTEXT "Location:",IDC_STATIC,5,20,30,8 - LTEXT "Size:",IDC_STATIC,5,34,16,8 - LTEXT "Created:",IDC_STATIC,5,65,28,8 - LTEXT "Attributes:",IDC_STATIC,5,81,32,8 - LTEXT "Static",IDC_FILESIZE,40,34,170,8 - LTEXT "Static",IDC_FILEDATE,40,65,165,8 - LTEXT "Static",IDC_FILEATTRIB,40,81,170,8 - LTEXT "Static",IDC_FILELOCATION,40,20,170,8,SS_NOTIFY - LTEXT "Duration:",IDC_STATIC,5,49,30,8 - LTEXT "Static",IDC_FILEDURATION,40,50,170,8 -END - -IDD_PROP_PAGE2 DIALOGEX 0, 0, 212, 114 -STYLE DS_SETFONT | WS_CHILD | WS_CAPTION -CAPTION "Frame" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - LTEXT "Type:",IDC_STATIC,15,10,80,8 - LTEXT "Static",IDC_TYPE,100,10,105,8 - LTEXT "Width:",IDC_STATIC,15,25,80,8 - LTEXT "Static",IDC_WIDTH,100,25,105,8 - LTEXT "Height:",IDC_STATIC,15,40,80,8 - LTEXT "Static",IDC_HEIGHT,100,40,105,8 - LTEXT "Horizontal Resolution:",IDC_STATIC,15,55,80,8 - LTEXT "Static",IDC_HORRES,100,55,105,8 - LTEXT "Vertical Resolution:",IDC_STATIC,15,70,80,8 - LTEXT "Static",IDC_VERTRES,100,70,105,8 - LTEXT "Bit Depth:",IDC_STATIC,15,85,80,8 - LTEXT "Static",IDC_BITDEPTH,100,85,105,8 - LTEXT "Compression:",IDC_STATIC,15,100,80,8 - LTEXT "Static",IDC_COMPRESSION,100,100,105,8 -END - -IDD_PROP_PAGE3 DIALOGEX 0, 0, 212, 114 -STYLE DS_SETFONT | WS_CHILD | WS_CAPTION -CAPTION "Screen" -FONT 8, "MS Sans Serif", 0, 0, 0x0 -BEGIN - LTEXT "Width:",IDC_STATIC,15,25,80,8 - LTEXT "Static",IDC_WIDTH,100,25,105,8 - LTEXT "Height:",IDC_STATIC,15,40,80,8 - LTEXT "Static",IDC_HEIGHT,100,40,105,8 - LTEXT "Horizontal DPI:",IDC_STATIC,15,55,80,8 - LTEXT "Static",IDC_HORRES,100,55,105,8 - LTEXT "Vertical DPI:",IDC_STATIC,15,70,80,8 - LTEXT "Static",IDC_VERTRES,100,70,105,8 - LTEXT "Bit Depth:",IDC_STATIC,15,85,80,8 - LTEXT "Static",IDC_BITDEPTH,100,85,105,8 -END - -IDD_SEEK DIALOGEX 0, 0, 664, 55 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Seek" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - CONTROL "",IDC_SEEKSLIDER,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,7,27,650,21 - LTEXT "Location:",IDC_STATIC,15,14,30,8 - LTEXT "Static",IDC_SEEKLOCATION,50,15,170,8 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_ABOUTBOX, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 178 - TOPMARGIN, 7 - BOTTOMMARGIN, 119 - END - - IDD_PROP_PAGE1, DIALOG - BEGIN - LEFTMARGIN, 5 - RIGHTMARGIN, 205 - TOPMARGIN, 7 - BOTTOMMARGIN, 107 - END - - IDD_PROP_PAGE2, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 205 - TOPMARGIN, 7 - BOTTOMMARGIN, 107 - END - - IDD_PROP_PAGE3, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 205 - TOPMARGIN, 7 - BOTTOMMARGIN, 107 - END - - IDD_SEEK, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 657 - TOPMARGIN, 7 - BOTTOMMARGIN, 48 - END -END -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDR_MAINFRAME2 ACCELERATORS -BEGIN - VK_F4, ID_EDIT_CLEAR, VIRTKEY, CONTROL, NOINVERT - "C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT - VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT - "V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT - VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT - "L", ID_FILE_LAST, VIRTKEY, CONTROL, NOINVERT - "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT - "P", ID_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT - "2", ID_PLAY_DOUBLESPEED, VIRTKEY, ALT, NOINVERT - "5", ID_PLAY_EIGHTSPEED, VIRTKEY, ALT, NOINVERT - "G", ID_PLAY_GOTO_FRAME, VIRTKEY, CONTROL, NOINVERT - "0", ID_PLAY_HALFSPEED, VIRTKEY, ALT, NOINVERT - "1", ID_PLAY_NORMALSPEED, VIRTKEY, ALT, NOINVERT - " ", ID_PLAY_PLAY_PAUSE, ASCII, NOINVERT - "4", ID_PLAY_QUADRUPLESPEED, VIRTKEY, ALT, NOINVERT - "6", ID_PLAY_SIXTEENSPEED, VIRTKEY, ALT, NOINVERT - VK_LEFT, ID_PLAY_STEP_BACKWARD, VIRTKEY, NOINVERT - VK_RIGHT, ID_PLAY_STEP_FORWARD, VIRTKEY, NOINVERT - "3", ID_PLAY_TRIPLESPEED, VIRTKEY, ALT, NOINVERT - "2", ID_VIEW_DOUBLESIZE, VIRTKEY, CONTROL, NOINVERT - "F", ID_VIEW_FILTER, VIRTKEY, CONTROL, NOINVERT - "0", ID_VIEW_HALFSIZE, VIRTKEY, CONTROL, NOINVERT - "1", ID_VIEW_NORMALSIZE, VIRTKEY, CONTROL, NOINVERT - "4", ID_VIEW_QUADRUPLESIZE, VIRTKEY, CONTROL, NOINVERT - "9", ID_VIEW_QUARTERSIZE, VIRTKEY, CONTROL, NOINVERT - "3", ID_VIEW_TRIPLESIZE, VIRTKEY, CONTROL, NOINVERT - VK_HOME, ID_PLAY_GOTO_START, VIRTKEY, NOINVERT - VK_END, ID_PLAY_GOTO_END, VIRTKEY, NOINVERT -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Comments", "Written by Frank Barchard" - VALUE "FileDescription", "media_player" - VALUE "FileVersion", "1, 0, 0, 1" - VALUE "InternalName", "media_player_wtl" - VALUE "LegalCopyright", "Copyright 2009" - VALUE "OriginalFilename", "media_player_wtl.exe" - VALUE "ProductName", "media_player" - VALUE "ProductVersion", "1, 0, 0, 1" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - IDR_MAINFRAME "Media Player" -END - -STRINGTABLE -BEGIN - ID_FILE_NEW "Create a new document\nNew" - ID_FILE_OPEN "Open a movie\nOpen" - ID_FILE_CLOSE "Close movie\nClose" - ID_FILE_SAVE "Save the movie\nSave" - ID_FILE_SAVE_AS "Save the movie with a new name\nSave As" - ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup" - ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup" - ID_FILE_PRINT "Print the movie\nPrint" - ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview" -END - -STRINGTABLE -BEGIN - ID_VIEW_HALFSIZE "View movie at half normal size." - ID_VIEW_NORMALSIZE "View movie at normal size." - ID_VIEW_DOUBLESIZE "View movie at twice the normal size." - ID_VIEW_TRIPLESIZE "View movie at triple the normal size." - ID_VIEW_QUADRUPLESIZE "View movie at quadruple the normal size." - ID_VIEW_FITTOSCREEN "Maximize window to desktop." - ID_VIEW_FULLSCREEN "Full screen mode." - ID_PLAY_HALFSPEED "Play movie at half normal speed." - ID_PLAY_NORMALSPEED "Play movie at normal speed." - ID_PLAY_DOUBLESPEED "Play movie at twice the normal speed." - ID_PLAY_TRIPLESPEED "Play movie at triple the normal speed." - ID_PLAY_QUADRUPLESPEED "Play movie at quadruple the normal speed." - ID_PLAY_EIGHTSPEED "Play movie at eight times the normal speed." - ID_PLAY_SIXTEENSPEED "Play movie at sixteen times the normal speed." - ID_PLAY_STEP_FORWARD "Step forward one frame." - ID_PLAY_STEP_BACKWARD "Step backward one frame." -END - -STRINGTABLE -BEGIN - ID_FILE_LAST "Replay last movie\nOpen" - ID_VIEW_ROTATE0 "Turn off rotation." - ID_VIEW_ROTATE90 "Rotate movie by 90 degrees clockwise." - ID_VIEW_ROTATE180 "Rotate movie by 180 degrees." - ID_VIEW_ROTATE270 "Rotate movie by 270 degrees clockwise." - ID_VIEW_FILTER "Turn on bilinear filtering." - ID_VIEW_MIRROR_HORIZONTAL "Mirror movie horizontally." - ID_VIEW_MIRROR_VERTICAL "Mirror movie vertically." - ID_VIEW_QUARTERSIZE "View movie at quarter normal size." -END - -STRINGTABLE -BEGIN - ID_RECENT_BTN "\nRecent Files" - ID_VIEW_PROPERTIES "Displays movie properties\nProperties" - ID_PLAY_PLAY_PAUSE "Start or pause movie playback" -END - -STRINGTABLE -BEGIN - ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar" - ID_VIEW_STATUS_BAR "Show or hide the status bar\nToggle StatusBar" -END - -STRINGTABLE -BEGIN - ID_APP_ABOUT "Display program information, version number and copyright\nAbout" - ID_APP_EXIT "Quit the application; prompts to save documents\nExit" -END - -STRINGTABLE -BEGIN - ID_NEXT_PANE "Switch to the next window pane\nNext Pane" - ID_PREV_PANE "Switch back to the previous window pane\nPrevious Pane" -END - -STRINGTABLE -BEGIN - ID_WINDOW_NEW "Open another window for the movie\nNew Window" - ID_WINDOW_ARRANGE "Arrange icons at the bottom of the window\nArrange Icons" - ID_WINDOW_CASCADE "Arrange windows so they overlap\nCascade Windows" - ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows" - ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows" - ID_WINDOW_SPLIT "Split the active window into panes\nSplit" -END - -STRINGTABLE -BEGIN - ID_EDIT_CLEAR "Removes the movie\nClear" - ID_EDIT_CLEAR_ALL "Erase everything\nErase All" - ID_EDIT_COPY "Copy the movie and put it on the Clipboard\nCopy" - ID_EDIT_CUT "Cut the selection and put it on the Clipboard\nCut" - ID_EDIT_FIND "Find the specified text\nFind" - ID_EDIT_PASTE "Insert movie from the Clipboard\nPaste" - ID_EDIT_REPEAT "Repeat the last action\nRepeat" - ID_EDIT_REPLACE "Replace specific text with different text\nReplace" - ID_EDIT_SELECT_ALL "Select the entire document\nSelect All" - ID_EDIT_UNDO "Undo the last action\nUndo" - ID_EDIT_REDO "Redo the previously undone action\nRedo" -END - -STRINGTABLE -BEGIN - ATL_IDS_SCSIZE "Change the window size" - ATL_IDS_SCMOVE "Change the window position" - ATL_IDS_SCMINIMIZE "Reduce the window to an icon" - ATL_IDS_SCMAXIMIZE "Enlarge the window to full size" - ATL_IDS_SCNEXTWINDOW "Switch to the next document window" - ATL_IDS_SCPREVWINDOW "Switch to the previous document window" - ATL_IDS_SCCLOSE "Close the active window and prompts to save the documents" -END - -STRINGTABLE -BEGIN - ATL_IDS_SCRESTORE "Restore the window to normal size" - ATL_IDS_SCTASKLIST "Activate Task List" - ATL_IDS_MDICHILD "Activate this window" -END - -STRINGTABLE -BEGIN - ATL_IDS_IDLEMESSAGE "Ready" -END - -STRINGTABLE -BEGIN - ATL_IDS_MRU_FILE "Open this document" -END - -STRINGTABLE -BEGIN - ID_PLAY_GOTO_FRAME "Goto a specified frame in the movie." - ID_PLAY_GOTO_START "Goto to start of movie." - ID_PLAY_GOTO_END "Goto end of movie minus 30 seconds." - ID_OPTIONS_EXIT "Exit player at end of movie." -END - -STRINGTABLE -BEGIN - ID_OPTIONS_DRAW "Enable/Disable Draws" - ID_OPTIONS_AUDIO "Enable/Disable Audio" - ID_OPTIONS_DUMPYUVFILE "Dump YUV frames to a file" -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - diff --git a/media/tools/player_wtl/props.h b/media/tools/player_wtl/props.h deleted file mode 100644 index d2b7dbb..0000000 --- a/media/tools/player_wtl/props.h +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this -// source code is governed by a BSD-style license that can be found in the -// LICENSE file. - -#ifndef MEDIA_TOOLS_PLAYER_WTL_PROPS_H_ -#define MEDIA_TOOLS_PLAYER_WTL_PROPS_H_ - -#include "media/tools/player_wtl/movie.h" - -#include "resource.h" - -// Movie properties dialog -class CFileName : public CWindowImpl<CFileName> { - public: - - CFileName() : file_name_(NULL) { - } - - void Init(HWND hwnd, wchar_t* str_name) { - ATLASSERT(::IsWindow(hwnd)); - SubclassWindow(hwnd); - - // Set tooltip. - tooltip_.Create(m_hWnd); - ATLASSERT(tooltip_.IsWindow()); - RECT rect; - GetClientRect(&rect); - CToolInfo ti(0, m_hWnd, tooltip_id_, &rect, NULL); - tooltip_.AddTool(&ti); - - // Set text. - file_name_ = str_name; - if (file_name_ == NULL) - return; - - CClientDC dc(m_hWnd); // will not really paint - HFONT old_font = dc.SelectFont(AtlGetDefaultGuiFont()); - - RECT rect_text = rect; - dc.DrawText(file_name_, -1, &rect_text, - DT_SINGLELINE | DT_LEFT | DT_VCENTER | DT_NOPREFIX | - DT_CALCRECT); - BOOL is_too_long = (rect_text.right > rect.right); - if (is_too_long) - tooltip_.UpdateTipText(file_name_, m_hWnd, tooltip_id_); - tooltip_.Activate(is_too_long); - - dc.SelectFont(old_font); - - Invalidate(); - UpdateWindow(); - } - - BEGIN_MSG_MAP(CFileName) - MESSAGE_RANGE_HANDLER(WM_MOUSEFIRST, WM_MOUSELAST, OnMouseMessage) - MESSAGE_HANDLER(WM_PAINT, OnPaint) - END_MSG_MAP() - - LRESULT OnMouseMessage(UINT message, WPARAM wparam, LPARAM lparam, - BOOL& handled) { - if (tooltip_.IsWindow()) { - MSG msg = { m_hWnd, message, wparam, lparam }; - tooltip_.RelayEvent(&msg); - } - handled = FALSE; - return 1; - } - - LRESULT OnPaint(UINT /*message*/, WPARAM /*wparam*/, LPARAM /*lparam*/, - BOOL& /*handled*/) { - CPaintDC dc(m_hWnd); - if (file_name_ != NULL) { - RECT rect; - GetClientRect(&rect); - - dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT)); - dc.SetBkMode(TRANSPARENT); - HFONT old_font = dc.SelectFont(AtlGetDefaultGuiFont()); - - dc.DrawText(file_name_, -1, &rect, DT_SINGLELINE | DT_LEFT | - DT_VCENTER | DT_NOPREFIX | DT_PATH_ELLIPSIS); - - dc.SelectFont(old_font); - } - return 0; - } - - DECLARE_WND_CLASS_EX(NULL, 0, COLOR_3DFACE) - - wchar_t* file_name_; - - enum { tooltip_id_ = 1313 }; - CToolTipCtrl tooltip_; -}; - -// Movie properties. -// TODO(fbarchard): Add movie duration in seconds. -class CPageOne : public CPropertyPageImpl<CPageOne> { - public: - enum { IDD = IDD_PROP_PAGE1 }; - - CPageOne() : file_name_(NULL) { - } - - BEGIN_MSG_MAP(CPageOne) - MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) - CHAIN_MSG_MAP(CPropertyPageImpl<CPageOne>) - END_MSG_MAP() - - LRESULT OnInitDialog(UINT /*message*/, WPARAM /*wparam*/, LPARAM /*lparam*/, - BOOL& /*handled*/) { - if (file_name_ != NULL) { - file_location_.Init(GetDlgItem(IDC_FILELOCATION), file_name_); - - WIN32_FIND_DATA find_data; - HANDLE find_handle = ::FindFirstFile(file_name_, &find_data); - if (find_handle != INVALID_HANDLE_VALUE) { - // TODO(fbarchard): Support files larger than 2 GB - int size_k = (find_data.nFileSizeLow / 1024); - if (size_k == 0 && find_data.nFileSizeLow != 0) - size_k = 1; - wchar_t szBuff[100]; - wsprintf(szBuff, L"%i KB", size_k); - SetDlgItemText(IDC_FILESIZE, szBuff); - - // TODO(fbarchard): We need a pipeline property for frame rate. - float duration = media::Movie::GetInstance()->GetDuration(); - float fps = 29.97f; - wsprintf(szBuff, L"%i.%2i Seconds, %i Frames", - static_cast<int>(duration), - static_cast<int>(duration * 100) % 100, - static_cast<int>(duration * fps)); - SetDlgItemText(IDC_FILEDURATION, szBuff); - - SYSTEMTIME st; - ::FileTimeToSystemTime(&find_data.ftCreationTime, &st); - ::GetDateFormat(LOCALE_USER_DEFAULT, 0, &st, - L"dddd, MMMM dd',' yyyy',' ", - szBuff, sizeof(szBuff) / sizeof(szBuff[0])); - wchar_t szBuff1[50]; - ::GetTimeFormat(LOCALE_USER_DEFAULT, 0, &st, - L"hh':'mm':'ss tt", szBuff1, - sizeof(szBuff1) / sizeof(szBuff1[0])); - lstrcat(szBuff, szBuff1); - SetDlgItemText(IDC_FILEDATE, szBuff); - - szBuff[0] = 0; - if ((find_data.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) != 0) - lstrcat(szBuff, L"Archive, "); - if ((find_data.dwFileAttributes & FILE_ATTRIBUTE_READONLY) != 0) - lstrcat(szBuff, L"Read-only, "); - if ((find_data.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) != 0) - lstrcat(szBuff, L"Hidden, "); - if ((find_data.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) != 0) - lstrcat(szBuff, L"System"); - int length = lstrlen(szBuff); - if (length >= 2 && szBuff[length - 2] == L',') - szBuff[length - 2] = 0; - SetDlgItemText(IDC_FILEATTRIB, szBuff); - - ::FindClose(find_handle); - } - } else { - SetDlgItemText(IDC_FILELOCATION, L"(Clipboard)"); - SetDlgItemText(IDC_FILESIZE, L"N/A"); - SetDlgItemText(IDC_FILEDATE, L"N/A"); - SetDlgItemText(IDC_FILEATTRIB, L"N/A"); - } - return TRUE; - } - - CFileName file_location_; - wchar_t* file_name_; -}; - -// Frame properties. -// TODO(fbarchard): This is not implemented for movies yet. -class CPageTwo : public CPropertyPageImpl<CPageTwo> { - public: - enum { IDD = IDD_PROP_PAGE2 }; - - CPageTwo() : file_name_(NULL) { - } - - BEGIN_MSG_MAP(CPageTwo) - MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) - CHAIN_MSG_MAP(CPropertyPageImpl<CPageTwo>) - END_MSG_MAP() - - LRESULT OnInitDialog(UINT /*message*/, WPARAM /*wparam*/, LPARAM /*lparam*/, - BOOL& /*handled*/) { - // Special - remove unused buttons, move Close button, center wizard - CPropertySheetWindow sheet = GetPropertySheet(); -#if !defined(_AYGSHELL_H_) && !defined(__AYGSHELL_H__) // PPC specific. - sheet.CancelToClose(); - RECT rect; - CButton btn_cancel = sheet.GetDlgItem(IDCANCEL); - btn_cancel.GetWindowRect(&rect); - sheet.ScreenToClient(&rect); - btn_cancel.ShowWindow(SW_HIDE); - CButton btn_close = sheet.GetDlgItem(IDOK); - btn_close.SetWindowPos(NULL, &rect, SWP_NOZORDER | SWP_NOSIZE); - sheet.CenterWindow(GetPropertySheet().GetParent()); - - sheet.ModifyStyleEx(WS_EX_CONTEXTHELP, 0); -#endif // (_AYGSHELL_H_) || defined(__AYGSHELL_H__) // PPC specific. - - // Get and display movie prperties. - SetDlgItemText(IDC_TYPE, L"MP4 Movie"); - wchar_t* compression_text = L"H.264"; - - if (file_name_ != NULL) { - HANDLE file_handle = ::CreateFile(file_name_, GENERIC_READ, - FILE_SHARE_READ, NULL, OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL | - FILE_FLAG_SEQUENTIAL_SCAN, NULL); - ATLASSERT(file_handle != INVALID_HANDLE_VALUE); - if (file_handle != INVALID_HANDLE_VALUE) { - DWORD dwRead = 0; - BITMAPFILEHEADER bfh; - ::ReadFile(file_handle, &bfh, sizeof(bfh), &dwRead, NULL); - BITMAPINFOHEADER bih; - ::ReadFile(file_handle, &bih, sizeof(bih), &dwRead, NULL); - ::CloseHandle(file_handle); - - SetDlgItemInt(IDC_WIDTH, bih.biWidth); - SetDlgItemInt(IDC_HEIGHT, bih.biHeight); - SetDlgItemInt(IDC_HORRES, ::MulDiv(bih.biXPelsPerMeter, 254, 10000)); - SetDlgItemInt(IDC_VERTRES, ::MulDiv(bih.biYPelsPerMeter, 254, 10000)); - SetDlgItemInt(IDC_BITDEPTH, bih.biBitCount); - - switch (bih.biCompression) { - case BI_RLE4: - case BI_RLE8: - compression_text = L"RLE"; - break; - case BI_BITFIELDS: - compression_text = L"Uncompressed with bitfields"; - break; - case BI_JPEG: - case BI_PNG: - compression_text = L"Unknown"; - break; - } - SetDlgItemText(IDC_COMPRESSION, compression_text); - } - } else { // Must be pasted from the clipboard. - ATLASSERT(!bmp_.IsNull()); - BITMAP bitmap = { 0 }; - bool result = bmp_.GetBitmap(bitmap); - ATLASSERT(result); - if (result) { - CClientDC dc(NULL); - SetDlgItemInt(IDC_WIDTH, bitmap.bmWidth); - SetDlgItemInt(IDC_HEIGHT, bitmap.bmHeight); - // Should we use screen resolution here??? - SetDlgItemInt(IDC_HORRES, dc.GetDeviceCaps(LOGPIXELSX)); - SetDlgItemInt(IDC_VERTRES, dc.GetDeviceCaps(LOGPIXELSX)); - SetDlgItemInt(IDC_BITDEPTH, bitmap.bmBitsPixel); - SetDlgItemText(IDC_COMPRESSION, compression_text); - } - } - return TRUE; - } - - CBitmapHandle bmp_; - wchar_t* file_name_; -}; - -// Screen properties. -class CPageThree : public CPropertyPageImpl<CPageThree> { - public: - enum { IDD = IDD_PROP_PAGE3 }; - - BEGIN_MSG_MAP(CPageThree) - MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) - CHAIN_MSG_MAP(CPropertyPageImpl<CPageThree>) - END_MSG_MAP() - - LRESULT OnInitDialog(UINT /*message*/, WPARAM /*wparam*/, LPARAM /*lparam*/, - BOOL& /*handled*/) { - // Get and set screen properties. - CClientDC dc(NULL); - SetDlgItemInt(IDC_WIDTH, dc.GetDeviceCaps(HORZRES)); - SetDlgItemInt(IDC_HEIGHT, dc.GetDeviceCaps(VERTRES)); - SetDlgItemInt(IDC_HORRES, dc.GetDeviceCaps(LOGPIXELSX)); - SetDlgItemInt(IDC_VERTRES, dc.GetDeviceCaps(LOGPIXELSY)); - SetDlgItemInt(IDC_BITDEPTH, dc.GetDeviceCaps(BITSPIXEL)); - - return TRUE; - } -}; - -// TODO(fbachard): Frame properties only work for images, so -// this tab is removed until movie frame properties can be -// added. -class CBmpProperties : public CPropertySheetImpl<CBmpProperties> { - public: - - CBmpProperties() { - m_psh.dwFlags |= PSH_NOAPPLYNOW; - - AddPage(page1_); - // AddPage(page2_); // Not implemented for movies yet. - AddPage(page3_); - SetActivePage(0); - SetTitle(L"Movie Properties"); - } - - void SetFileInfo(wchar_t* file_path, HBITMAP bitmap) { - page1_.file_name_ = file_path; - page2_.file_name_ = file_path; - page2_.bmp_ = bitmap; - } - - BEGIN_MSG_MAP(CBmpProperties) - CHAIN_MSG_MAP(CPropertySheetImpl<CBmpProperties>) - END_MSG_MAP() - - CPageOne page1_; - CPageTwo page2_; - CPageThree page3_; -}; - -#endif // MEDIA_TOOLS_PLAYER_WTL_PROPS_H_ diff --git a/media/tools/player_wtl/resource.h b/media/tools/player_wtl/resource.h deleted file mode 100644 index b3e3d07..0000000 --- a/media/tools/player_wtl/resource.h +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by player_wtl.rc -// -#define IDD_ABOUTBOX 100 -#define IDR_MAINFRAME 128 -#define IDR_MAINFRAME2 128 -#define IDR_MAINFRAME3 128 -#define IDR_MAINFRAME4 128 -#define IDR_CONTEXTMENU 201 -#define IDD_PROP_PAGE1 202 -#define IDD_PROP_PAGE2 203 -#define IDD_PROP_PAGE3 204 -#define IDD_SEEK 205 -#define IDC_TYPE 1001 -#define IDC_WIDTH 1002 -#define IDC_HEIGHT 1003 -#define IDC_HORRES 1004 -#define IDC_VERTRES 1005 -#define IDC_BITDEPTH 1006 -#define IDC_COMPRESSION 1008 -#define IDC_FILELOCATION 1009 -#define IDC_FILESIZE 1010 -#define IDC_FILEDATE 1011 -#define IDC_FILEATTRIB 1012 -#define IDC_FILEDURATION 1013 -#define IDC_SEEKSLIDER 1013 -#define IDC_SEEKLOCATION 1014 -#define ID_RECENT_BTN 32777 -#define ID_VIEW_PROPERTIES 32778 -#define ID_VIEW_MEDIADETAILS 32780 -#define ID_PLAY_PLAY 32781 -#define ID_PLAY_PLAY_PAUSE 32782 -#define ID_OPTIONS_EXIT 32840 -#define ID_OPTIONS_DRAW 32792 -#define ID_OPTIONS_AUDIO 32793 -#define ID_OPTIONS_DUMPYUVFILE 32794 -#define ID_Menu 32795 -#define ID_FILE_LAST 32804 -#define ID_Menu32806 32806 -#define ID_VIEW_ROTATE0 32807 -#define ID_VIEW_ROTATE90 32808 -#define ID_VIEW_ROTATE180 32809 -#define ID_VIEW_ROTATE270 32810 -#define ID_VIEW_FILTER 32842 -#define ID_VIEW_MIRROR_HORIZONTAL 32811 -#define ID_VIEW_MIRROR_VERTICAL 32812 -#define ID_VIEW_QUARTERSIZE 32815 -#define ID_VIEW_HALFSIZE 32816 -#define ID_VIEW_NORMALSIZE 32817 -#define ID_VIEW_DOUBLESIZE 32818 -#define ID_VIEW_TRIPLESIZE 32819 -#define ID_VIEW_QUADRUPLESIZE 32820 -#define ID_VIEW_FITTOSCREEN 32821 -#define ID_VIEW_FULLSCREEN 32822 -#define ID_PLAY_HALFSPEED 32823 -#define ID_PLAY_NORMALSPEED 32824 -#define ID_PLAY_DOUBLESPEED 32825 -#define ID_PLAY_TRIPLESPEED 32826 -#define ID_PLAY_QUADRUPLESPEED 32827 -#define ID_PLAY_EIGHTSPEED 32828 -#define ID_PLAY_SIXTEENSPEED 32829 -#define ID_PLAY_STEP_FORWARD 32830 -#define ID_PLAY_STEP_BACKWARD 32831 -#define ID_PLAY_GOTO_FRAME 32836 -#define ID_PLAY_GOTO_START 32838 -#define ID_PLAY_GOTO_END 32839 - - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 206 -#define _APS_NEXT_COMMAND_VALUE 32843 -#define _APS_NEXT_CONTROL_VALUE 1014 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/media/tools/player_wtl/seek.h b/media/tools/player_wtl/seek.h deleted file mode 100644 index 165e592..0000000 --- a/media/tools/player_wtl/seek.h +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef MEDIA_TOOLS_PLAYER_WTL_SEEK_H_ -#define MEDIA_TOOLS_PLAYER_WTL_SEEK_H_ - -#include "media/tools/player_wtl/player_wtl.h" - -// Movie seek dialog. -// TODO(fbachard): Frame properties only work for images, so -// this tab is removed until movie frame properties can be added. -class CSeek - : public CSimpleDialog<IDD_SEEK>, - public CMessageFilter, - public CIdleHandler { - public: - CSeek() { - } - - virtual BOOL PreTranslateMessage(MSG* pMsg) { - return FALSE; - } - - BEGIN_MSG_MAP(CSeek) - MESSAGE_HANDLER(WM_DESTROY, OnDestroy) - MESSAGE_HANDLER(WM_PAINT, OnPaint) - MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) - CHAIN_MSG_MAP(CSimpleDialog<IDD_SEEK>) - END_MSG_MAP() - - LRESULT OnPaint(UINT /*uMsg*/, - WPARAM /*wParam*/, - LPARAM /*lParam*/, - BOOL& bHandled) { - static float previous_position = -1.0f; - - float position = media::Movie::GetInstance()->GetPosition(); - if (static_cast<int>(position * 10) != - static_cast<int>(previous_position * 10)) { - previous_position = position; - wchar_t szBuff[200]; - float duration = media::Movie::GetInstance()->GetDuration(); - float fps = 29.97f; - wsprintf(szBuff, L"%i.%i / %i.%i, %i / %i", - static_cast<int>(position), - static_cast<int>(position * 10) % 10, - static_cast<int>(duration), - static_cast<int>(duration * 10) % 10, - static_cast<int>(position * fps), - static_cast<int>(duration * fps)); - SetDlgItemText(IDC_SEEKLOCATION, szBuff); - bHandled = TRUE; - return FALSE; - } - bHandled = FALSE; - return FALSE; - } - - virtual BOOL OnIdle() { - wchar_t szBuff[200]; - float position = media::Movie::GetInstance()->GetPosition(); - float duration = media::Movie::GetInstance()->GetDuration(); - // TODO(fbarchard): Use frame rate property when it exists. - float fps = 29.97f; - wsprintf(szBuff, L"%i.%i / %i.%i, %i / %i", - static_cast<int>(position), - static_cast<int>(position * 10) % 10, - static_cast<int>(duration), - static_cast<int>(duration * 10) % 10, - static_cast<int>(position * fps), - static_cast<int>(duration * fps)); - SetDlgItemText(IDC_SEEKLOCATION, szBuff); - return FALSE; - } - - LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, - BOOL& /*bHandled*/) { - CMessageLoop* pLoop = g_module.GetMessageLoop(); - ATLASSERT(pLoop != NULL); - pLoop->AddMessageFilter(this); - pLoop->AddIdleHandler(this); - return TRUE; - } - - LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, - BOOL& bHandled) { - // unregister message filtering and idle updates - CMessageLoop* pLoop = g_module.GetMessageLoop(); - ATLASSERT(pLoop != NULL); - pLoop->RemoveMessageFilter(this); - pLoop->RemoveIdleHandler(this); - bHandled = FALSE; - return 1; - } -}; - -#endif // MEDIA_TOOLS_PLAYER_WTL_SEEK_H_ diff --git a/media/tools/player_wtl/toolbar.bmp b/media/tools/player_wtl/toolbar.bmp Binary files differdeleted file mode 100644 index 5843d36..0000000 --- a/media/tools/player_wtl/toolbar.bmp +++ /dev/null diff --git a/media/tools/player_wtl/view.h b/media/tools/player_wtl/view.h deleted file mode 100644 index cc34aa8..0000000 --- a/media/tools/player_wtl/view.h +++ /dev/null @@ -1,471 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef MEDIA_TOOLS_PLAYER_WTL_VIEW_H_ -#define MEDIA_TOOLS_PLAYER_WTL_VIEW_H_ - -#include <stdio.h> -#include <process.h> -#include <string.h> - -#include "base/bind.h" -#include "base/logging.h" -#include "media/base/video_frame.h" -#include "media/base/yuv_convert.h" -#include "media/filters/video_renderer_base.h" -#include "media/tools/player_wtl/movie.h" -#include "media/tools/player_wtl/player_wtl.h" - -// Fetchs current time as milliseconds. -// Returns as double for high duration and precision. -inline double GetTime() { - LARGE_INTEGER perf_time, perf_hz; - QueryPerformanceFrequency(&perf_hz); // May change with speed step. - QueryPerformanceCounter(&perf_time); - return perf_time.QuadPart * 1000.0 / perf_hz.QuadPart; // Convert to ms. -} - -// Paints the current movie frame (with scaling) to the display. -// TODO(fbarchard): Consider rewriting as view.cc and view.h -class WtlVideoWindow : public CScrollWindowImpl<WtlVideoWindow> { - public: - DECLARE_WND_CLASS_EX(NULL, 0, -1) - - BEGIN_MSG_MAP(WtlVideoWindow) - MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackground) - CHAIN_MSG_MAP(CScrollWindowImpl<WtlVideoWindow>); - END_MSG_MAP() - - WtlVideoWindow() { - size_.cx = 0; - size_.cy = 0; - view_size_ = 2; // Normal size. - view_rotate_ = media::ROTATE_0; - view_filter_ = media::FILTER_NONE; - renderer_ = new media::VideoRendererBase( - base::Bind(&WtlVideoWindow::InvalidateWrapper, base::Unretained(this)), - base::Bind(&WtlVideoWindow::SetOpaque, base::Unretained(this)), - true); - last_frame_ = NULL; - hbmp_ = NULL; - } - - // Drops the bool return so we can use base::Bind(). - void InvalidateWrapper() { - Invalidate(); - } - - void SetOpaque(bool /*opaque*/) { - } - - BOOL PreTranslateMessage(MSG* /*msg*/) { - return FALSE; - } - - void AllocateVideoBitmap(CDCHandle dc) { - // See note on SetSize for why we check size_.cy. - if (bmp_.IsNull() && size_.cy > 0) { - BITMAPINFO bmi; - bmi.bmiHeader.biSize = sizeof(bmi.bmiHeader); - bmi.bmiHeader.biWidth = size_.cx; - bmi.bmiHeader.biHeight = size_.cy; - bmi.bmiHeader.biPlanes = 1; - bmi.bmiHeader.biBitCount = 32; - bmi.bmiHeader.biCompression = BI_RGB; - bmi.bmiHeader.biSizeImage = 0; - bmi.bmiHeader.biXPelsPerMeter = 100; - bmi.bmiHeader.biYPelsPerMeter = 100; - bmi.bmiHeader.biClrUsed = 0; - bmi.bmiHeader.biClrImportant = 0; - void* pBits; - bmp_.CreateDIBSection(dc, &bmi, DIB_RGB_COLORS, &pBits, NULL, 0); - SetScrollOffset(0, 0, FALSE); - SetScrollSize(size_); - } - } - - // Called on the video renderer's thread. - // Note that AllocateVideoBitmap examines the size_.cy value to determine - // if a bitmap should be allocated, so we set it last to avoid a race - // condition. - void SetSize(int cx, int cy) { - size_.cx = cx; - size_.cy = cy; - } - - void Reset() { - if (!bmp_.IsNull()) { - bmp_.DeleteObject(); - } - size_.cx = 0; - size_.cy = 0; - // TODO(frank): get rid of renderer at reset too. - } - - LRESULT OnEraseBackground(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, - BOOL& /*bHandled*/) { - CDCHandle dc = reinterpret_cast<HDC>(wParam); - AllocateVideoBitmap(dc); - RECT rect; - GetClientRect(&rect); - int x = 0; - int y = 0; - if (!bmp_.IsNull()) { - x = size_.cx + 1; - y = size_.cy + 1; - } - if (rect.right > m_sizeAll.cx) { - RECT rectRight = rect; - rectRight.left = x; - rectRight.bottom = y; - dc.FillRect(&rectRight, COLOR_WINDOW); - } - if (rect.bottom > m_sizeAll.cy) { - RECT rectBottom = rect; - rectBottom.top = y; - dc.FillRect(&rectBottom, COLOR_WINDOW); - } - if (!bmp_.IsNull()) { - dc.MoveTo(size_.cx, 0); - dc.LineTo(size_.cx, size_.cy); - dc.LineTo(0, size_.cy); - } - return 0; - } - - // Convert the video frame to RGB and Blit. - void ConvertFrame(media::VideoFrame* video_frame) { - BITMAP bm; - bmp_.GetBitmap(&bm); - int dibwidth = bm.bmWidth; - int dibheight = bm.bmHeight; - - uint8 *movie_dib_bits = reinterpret_cast<uint8 *>(bm.bmBits) + - bm.bmWidthBytes * (bm.bmHeight - 1); - int dibrowbytes = -bm.bmWidthBytes; - // Not accounting for cropping presently. - int clipped_width = video_frame->coded_size().width(); - if (dibwidth < clipped_width) { - clipped_width = dibwidth; - } - int clipped_height = video_frame->coded_size().height(); - if (dibheight < clipped_height) { - clipped_height = dibheight; - } - - int scaled_width = clipped_width; - int scaled_height = clipped_height; - switch (view_size_) { - case 0: - scaled_width = clipped_width / 4; - scaled_height = clipped_height / 4; - break; - - case 1: - scaled_width = clipped_width / 2; - scaled_height = clipped_height / 2; - break; - - case 2: - default: // Assume 1:1 for stray view sizes. - scaled_width = clipped_width; - scaled_height = clipped_height; - break; - - case 3: // Double. - scaled_width = clipped_width; - scaled_height = clipped_height; - clipped_width = scaled_width / 2; - clipped_height = scaled_height / 2; - break; - - case 4: // Triple. - scaled_width = clipped_width; - scaled_height = clipped_height; - clipped_width = scaled_width / 3; - clipped_height = scaled_height / 3; - break; - - case 5: // Quadruple. - scaled_width = clipped_width; - scaled_height = clipped_height; - clipped_width = scaled_width / 4; - clipped_height = scaled_height / 4; - break; - } - - // Append each frame to end of file. - bool enable_dump_yuv_file = - media::Movie::GetInstance()->GetDumpYuvFileEnable(); - if (enable_dump_yuv_file) { - DumpYUV(video_frame); - } - -#ifdef TESTING - double yuv_time_start = GetTime(); // Start timer. -#endif - - bool enable_draw = media::Movie::GetInstance()->GetDrawEnable(); - if (enable_draw) { - DCHECK_EQ(32, bm.bmBitsPixel); - DrawYUV(video_frame, - movie_dib_bits, - dibrowbytes, - clipped_width, - clipped_height, - scaled_width, - scaled_height); - } -#ifdef TESTING - double yuv_time_end = GetTime(); - static int yuv_time_count = 0; - static double yuv_time_sum = 0.; - if (!yuv_time_count) - yuv_time_sum = 0.; - yuv_time_sum += (yuv_time_end - yuv_time_start); - ++yuv_time_count; - - char outputbuf[512]; - _snprintf_s(outputbuf, sizeof(outputbuf), "test %f", yuv_time_end); - _snprintf_s(outputbuf, sizeof(outputbuf), - "yuv %5.2f ms avg %5.2f ms\n", - yuv_time_end - yuv_time_start, - yuv_time_sum / yuv_time_count); - OutputDebugStringA(outputbuf); -#endif - } - - void DoPaint(CDCHandle dc) { - AllocateVideoBitmap(dc); - if (!bmp_.IsNull()) { - scoped_refptr<media::VideoFrame> frame; - renderer_->GetCurrentFrame(&frame); - if (frame) { - // Size the window the first time we get a frame. - if (!last_frame_) - SetSize(frame->coded_size().width(), frame->coded_size().height()); - - base::TimeDelta frame_timestamp = frame->GetTimestamp(); - if (frame != last_frame_ || frame_timestamp != last_timestamp_) { - last_frame_ = frame; - last_timestamp_ = frame_timestamp; - ConvertFrame(frame); - } - } - renderer_->PutCurrentFrame(frame); - -#ifdef TESTING - double paint_time_start = GetTime(); - static double paint_time_previous = 0; - if (!paint_time_previous) - paint_time_previous = paint_time_start; -#endif - CDC dcMem; - dcMem.CreateCompatibleDC(dc); - HBITMAP hBmpOld = hbmp_ ? hbmp_: dcMem.SelectBitmap(bmp_); - dc.BitBlt(0, 0, size_.cx, size_.cy, dcMem, 0, 0, SRCCOPY); - dcMem.SelectBitmap(hBmpOld); -#ifdef TESTING - double paint_time_end = GetTime(); - static int paint_count = 0; - static double paint_time_sum = 0; - paint_time_sum += paint_time_end - paint_time_start; - ++paint_count; - char outputbuf[512]; - _snprintf_s(outputbuf, sizeof(outputbuf), - "paint time %5.2f ms blit %5.2f ms avg %5.2f ms\n", - paint_time_start - paint_time_previous, - paint_time_end - paint_time_start, - paint_time_sum / paint_count); - OutputDebugStringA(outputbuf); - - paint_time_previous = paint_time_start; -#endif - } - } // End of DoPaint function. - - void SetViewSize(int view_size) { - view_size_ = view_size; - } - - int GetViewSize() { - return view_size_; - } - - void SetViewRotate(int view_rotate) { - switch (view_rotate) { - default: - case 0: - view_rotate_ = media::ROTATE_0; - break; - case 1: - view_rotate_ = media::ROTATE_90; - break; - case 2: - view_rotate_ = media::ROTATE_180; - break; - case 3: - view_rotate_ = media::ROTATE_270; - break; - case 4: - view_rotate_ = media::MIRROR_ROTATE_0; - break; - case 5: - view_rotate_ = media::MIRROR_ROTATE_180; - break; - } - } - - int GetViewRotate() { - int view_rotate = 0; - switch (view_rotate_) { - default: - case media::ROTATE_0: - view_rotate = 0; - break; - case media::ROTATE_90: - view_rotate = 1; - break; - case media::ROTATE_180: - view_rotate = 2; - break; - case media::ROTATE_270: - view_rotate = 3; - break; - case media::MIRROR_ROTATE_0: - view_rotate = 4; - break; - case media::MIRROR_ROTATE_180: - view_rotate = 5; - break; - } - return view_rotate; - } - - void SetViewFilter(int view_filter) { - switch (view_filter) { - default: - case 0: - view_filter_ = media::FILTER_NONE; - break; - case 1: - view_filter_ = media::FILTER_BILINEAR; - break; - } - } - - int GetViewFilter() { - int view_scalefilter = 0; - switch (view_filter_) { - default: - case media::FILTER_NONE: - view_scalefilter = 0; - break; - case media::FILTER_BILINEAR: - view_scalefilter = 1; - break; - } - return view_scalefilter; - } - - void SetBitmap(HBITMAP hbmp) { - hbmp_ = hbmp; - } - - // Following member variables are accessed by CMainFrame. - CBitmap bmp_; - SIZE size_; - scoped_refptr<media::VideoRendererBase> renderer_; - - private: - HBITMAP hbmp_; // For Images - // View Size: 0=1/4, 1=0.5, 2=normal, 3=2x, 4=3x, 5=4x, 3=fit, 4=full. - int view_size_; - - // View Rotate 0-5 for ID_VIEW_ROTATE0 to ID_VIEW_MIRROR_VERTICAL - media::Rotate view_rotate_; - - // View Filter 0=FILTER_NONE, 1=FILTER_BILINEAR - media::ScaleFilter view_filter_; - - // Draw a frame of YUV to an RGB buffer with scaling. - // Handles different YUV formats. - void DrawYUV(const media::VideoFrame* video_frame, - uint8 *movie_dib_bits, - int dibrowbytes, - int clipped_width, - int clipped_height, - int scaled_width, - int scaled_height) { - media::YUVType yuv_type = - (video_frame->format() == media::VideoFrame::YV12) ? - media::YV12 : media::YV16; - - // Simple convert is not necessary for performance, but allows - // easier alternative implementations. - if ((view_rotate_ == media::ROTATE_0) && // Not scaled or rotated - (view_size_ == 2)) { - media::ConvertYUVToRGB32(video_frame->data(0), - video_frame->data(1), - video_frame->data(2), - movie_dib_bits, - scaled_width, scaled_height, - video_frame->stride(0), - video_frame->stride(1), - dibrowbytes, - yuv_type); - } else { - media::ScaleYUVToRGB32(video_frame->data(0), - video_frame->data(1), - video_frame->data(2), - movie_dib_bits, - clipped_width, clipped_height, - scaled_width, scaled_height, - video_frame->stride(0), - video_frame->stride(1), - dibrowbytes, - yuv_type, - view_rotate_, - view_filter_); - } - } - - // Diagnostic function to write out YUV in format compatible with PYUV tool. - void DumpYUV(const media::VideoFrame* video_frame) { - FILE * file_yuv = fopen("raw.yuv", "ab+"); // Open for append binary. - if (file_yuv != NULL) { - fseek(file_yuv, 0, SEEK_END); - const int frame_size = - video_frame->coded_size().width() * video_frame->coded_size().height(); - for (int y = 0; y < video_frame->coded_size().height(); ++y) - fwrite(video_frame->data(0) + video_frame->stride(0)*y, - video_frame->coded_size().width(), sizeof(uint8), file_yuv); - for (int y = 0; y < video_frame->coded_size().height()/2; ++y) - fwrite(video_frame->data(1) + video_frame->stride(1)*y, - video_frame->coded_size().width() / 2, sizeof(uint8), file_yuv); - for (int y = 0; y < video_frame->coded_size().height()/2; ++y) - fwrite(video_frame->data(2) + video_frame->stride(2)*y, - video_frame->coded_size().width() / 2, sizeof(uint8), file_yuv); - fclose(file_yuv); - -#if TESTING - static int frame_dump_count = 0; - char outputbuf[512]; - _snprintf_s(outputbuf, sizeof(outputbuf), "yuvdump %4d %dx%d stride %d\n", - frame_dump_count, video_frame->coded_size().width(), - video_frame->coded_size().height(), - video_frame->stride(0)); - OutputDebugStringA(outputbuf); - ++frame_dump_count; -#endif - } - } - - media::VideoFrame* last_frame_; - base::TimeDelta last_timestamp_; - - DISALLOW_COPY_AND_ASSIGN(WtlVideoWindow); -}; - -#endif // MEDIA_TOOLS_PLAYER_WTL_VIEW_H_ |