• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 ASH_MEDIA_DELEGATE_H_
6 #define ASH_MEDIA_DELEGATE_H_
7 
8 namespace content {
9 class BrowserContext;
10 }
11 
12 namespace ash {
13 
14 enum MediaCaptureState {
15   MEDIA_CAPTURE_NONE = 0,
16   MEDIA_CAPTURE_AUDIO = 1 << 0,
17   MEDIA_CAPTURE_VIDEO = 1 << 1,
18   MEDIA_CAPTURE_AUDIO_VIDEO = MEDIA_CAPTURE_AUDIO | MEDIA_CAPTURE_VIDEO,
19 };
20 
21 // A delegate class to control media playback.
22 class MediaDelegate {
23  public:
~MediaDelegate()24   virtual ~MediaDelegate() {}
25 
26   // Handles the Next Track Media shortcut key.
27   virtual void HandleMediaNextTrack() = 0;
28 
29   // Handles the Play/Pause Toggle Media shortcut key.
30   virtual void HandleMediaPlayPause() = 0;
31 
32   // Handles the Previous Track Media shortcut key.
33   virtual void HandleMediaPrevTrack() = 0;
34 
35   // Returns the current media recording state of web contents
36   // that belongs to the |context|.
37   virtual MediaCaptureState GetMediaCaptureState(
38       content::BrowserContext* context) = 0;
39 };
40 
41 }  // namespace ash
42 
43 #endif  // ASH_MEDIA_DELEGATE_H_
44