Upstream version 9.38.204.0
[platform/framework/web/crosswalk.git] / src / xwalk / tizen / renderer / media / mediaplayer_impl.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Copyright (c) 2013 Intel Corporation. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5
6
7 #ifndef XWALK_TIZEN_RENDERER_MEDIA_MEDIAPLAYER_IMPL_H_
8 #define XWALK_TIZEN_RENDERER_MEDIA_MEDIAPLAYER_IMPL_H_
9
10 #include "base/memory/scoped_ptr.h"
11 #include "base/memory/weak_ptr.h"
12 #include "content/renderer/media/webmediaplayer_impl.h"
13 #include "xwalk/tizen/renderer/media/renderer_mediaplayer_manager.h"
14
15 namespace tizen {
16
17 // Substitute for WebMediaPlayerImpl to be used in Tizen.
18 class MediaPlayerImpl : public content::WebMediaPlayerImpl {
19  public:
20   MediaPlayerImpl(
21       blink::WebLocalFrame* frame,
22       blink::WebMediaPlayerClient* client,
23       base::WeakPtr<content::WebMediaPlayerDelegate> delegate,
24       RendererMediaPlayerManager* manager,
25       const content::WebMediaPlayerParams& params);
26   virtual ~MediaPlayerImpl();
27
28   // WebMediaPlayerImpl method.
29   virtual void load(LoadType load_type,
30                     const blink::WebURL& url,
31                     CORSMode cors_mode) OVERRIDE;
32
33   // Playback controls.
34   virtual void play();
35   virtual void pause();
36
37   // Detach the player from its manager.
38   void Detach();
39
40   // Functions called when media player status changes.
41   void OnMediaPlayerPlay();
42   void OnMediaPlayerPause();
43
44  private:
45   void InitializeMediaPlayer(const blink::WebURL& url);
46
47   blink::WebMediaPlayerClient* client_;
48
49   // Manager for managing this object and for delegating method calls on
50   // Render Thread.
51   RendererMediaPlayerManager* manager_;
52
53   // Player ID assigned by the |manager_|.
54   MediaPlayerID player_id_;
55
56   DISALLOW_COPY_AND_ASSIGN(MediaPlayerImpl);
57 };
58
59 }  // namespace tizen
60
61 #endif  // XWALK_TIZEN_RENDERER_MEDIA_MEDIAPLAYER_IMPL_H_