Upstream version 8.37.180.0
[platform/framework/web/crosswalk.git] / src / media / base / android / media_player_manager.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_
6 #define MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_
7
8 #include "base/basictypes.h"
9 #include "base/time/time.h"
10 #include "media/base/android/demuxer_stream_player_params.h"
11 #include "media/base/media_export.h"
12
13 namespace media {
14
15 class MediaPlayerAndroid;
16 class MediaResourceGetter;
17
18 // This class is responsible for managing active MediaPlayerAndroid objects.
19 class MEDIA_EXPORT MediaPlayerManager {
20  public:
21   virtual ~MediaPlayerManager() {}
22
23   // Return a pointer to the MediaResourceGetter object.
24   virtual MediaResourceGetter* GetMediaResourceGetter() = 0;
25
26   // Called when time update messages need to be sent. Args: player ID,
27   // current time.
28   virtual void OnTimeUpdate(int player_id, base::TimeDelta current_time) = 0;
29
30   // Called when media metadata changed. Args: player ID, duration of the
31   // media, width, height, whether the metadata is successfully extracted.
32   virtual void OnMediaMetadataChanged(
33       int player_id,
34       base::TimeDelta duration,
35       int width,
36       int height,
37       bool success) = 0;
38
39   // Called when playback completed. Args: player ID.
40   virtual void OnPlaybackComplete(int player_id) = 0;
41
42   // Called when media download was interrupted. Args: player ID.
43   virtual void OnMediaInterrupted(int player_id) = 0;
44
45   // Called when buffering has changed. Args: player ID, percentage
46   // of the media.
47   virtual void OnBufferingUpdate(int player_id, int percentage) = 0;
48
49   // Called when seek completed. Args: player ID, current time.
50   virtual void OnSeekComplete(
51       int player_id,
52       const base::TimeDelta& current_time) = 0;
53
54   // Called when error happens. Args: player ID, error type.
55   virtual void OnError(int player_id, int error) = 0;
56
57   // Called when video size has changed. Args: player ID, width, height.
58   virtual void OnVideoSizeChanged(int player_id, int width, int height) = 0;
59
60   // Returns the player that's in the fullscreen mode currently.
61   virtual MediaPlayerAndroid* GetFullscreenPlayer() = 0;
62
63   // Returns the player with the specified id.
64   virtual MediaPlayerAndroid* GetPlayer(int player_id) = 0;
65
66   // Called by the player to get a hardware protected surface.
67   virtual void RequestFullScreen(int player_id) = 0;
68
69 #if defined(VIDEO_HOLE)
70   // Returns true if a media player should use video-overlay for the embedded
71   // encrypted video.
72   virtual bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() = 0;
73 #endif  // defined(VIDEO_HOLE)
74 };
75
76 }  // namespace media
77
78 #endif  // MEDIA_BASE_ANDROID_MEDIA_PLAYER_MANAGER_H_