summaryrefslogtreecommitdiffstats
path: root/media/player
diff options
context:
space:
mode:
authorfbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-29 05:25:45 +0000
committerfbarchard@chromium.org <fbarchard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-29 05:25:45 +0000
commit5956dc1623897c0674d05fe0842a9f48ddf4b2cd (patch)
tree93852ff89eb099f8b4c4733431953675182c016e /media/player
parentca68883a7ecaeee14e48a478065efb278988d0a3 (diff)
downloadchromium_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.cc96
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;
+}
+