diff options
author | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-29 05:25:45 +0000 |
---|---|---|
committer | fbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-29 05:25:45 +0000 |
commit | 5956dc1623897c0674d05fe0842a9f48ddf4b2cd (patch) | |
tree | 93852ff89eb099f8b4c4733431953675182c016e /media/player | |
parent | ca68883a7ecaeee14e48a478065efb278988d0a3 (diff) | |
download | chromium_src-5956dc1623897c0674d05fe0842a9f48ddf4b2cd.zip chromium_src-5956dc1623897c0674d05fe0842a9f48ddf4b2cd.tar.gz chromium_src-5956dc1623897c0674d05fe0842a9f48ddf4b2cd.tar.bz2 |
player_wtl main entry point separated from the rest of media player for code review.
Review URL: http://codereview.chromium.org/56076
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14829 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/player')
-rw-r--r-- | media/player/player_wtl.cc | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/media/player/player_wtl.cc b/media/player/player_wtl.cc new file mode 100644 index 0000000..0c2bb6b --- /dev/null +++ b/media/player/player_wtl.cc @@ -0,0 +1,96 @@ +// 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. + +// ATL compatibility with Chrome build settings. +#undef NOMINMAX +#undef WIN32_LEAN_AND_MEAN + +#undef min +#undef max +#define NOMINMAX + +// Note this header must come before other ATL headers. +#include "media/player/stdafx.h" +#include <atlcrack.h> +#include <atlctrls.h> +#include <atlctrlw.h> +#include <atldlgs.h> +#include <atlframe.h> +#include <atlmisc.h> +#include <atlprint.h> +#include <atlscrl.h> + +// Note these headers are order sensitive. +#include "base/at_exit.h" +#include "media/base/factory.h" +#include "media/base/pipeline_impl.h" +#include "media/player/movie.h" +#include "media/player/resource.h" +#include "media/player/wtl_renderer.h" +#include "media/player/view.h" +#include "media/player/props.h" +#include "media/player/list.h" +#include "media/player/mainfrm.h" + +// Note these headers are NOT order sensitive. +#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" + +CAppModule g_module; + +int Run(wchar_t* cmd_line, int cmd_show) { + 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); + + base::AtExitManager exit_manager; + + wchar_t* url = NULL; + if (cmd_line && *cmd_line) { + url = cmd_line; + } + + if (url) { + wnd_main.MovieOpenFile(url); + } + + int result = the_loop.Run(); + + media::Movie::get()->Close(); + + g_module.RemoveMessageLoop(); + return result; +} + +int WINAPI _tWinMain(HINSTANCE instance, HINSTANCE /*previous_instance*/, + wchar_t* cmd_line, int cmd_show) { + 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(); + return result; +} + |