| // Copyright 2013 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. |
| |
| #ifndef ASH_MEDIA_DELEGATE_H_ |
| #define ASH_MEDIA_DELEGATE_H_ |
| |
| namespace content { |
| class BrowserContext; |
| } |
| |
| namespace ash { |
| |
| enum MediaCaptureState { |
| MEDIA_CAPTURE_NONE = 0, |
| MEDIA_CAPTURE_AUDIO = 1 << 0, |
| MEDIA_CAPTURE_VIDEO = 1 << 1, |
| MEDIA_CAPTURE_AUDIO_VIDEO = MEDIA_CAPTURE_AUDIO | MEDIA_CAPTURE_VIDEO, |
| }; |
| |
| // A delegate class to control media playback. |
| class MediaDelegate { |
| public: |
| virtual ~MediaDelegate() {} |
| |
| // Handles the Next Track Media shortcut key. |
| virtual void HandleMediaNextTrack() = 0; |
| |
| // Handles the Play/Pause Toggle Media shortcut key. |
| virtual void HandleMediaPlayPause() = 0; |
| |
| // Handles the Previous Track Media shortcut key. |
| virtual void HandleMediaPrevTrack() = 0; |
| |
| // Returns the current media recording state of web contents |
| // that belongs to the |context|. |
| virtual MediaCaptureState GetMediaCaptureState( |
| content::BrowserContext* context) = 0; |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_MEDIA_DELEGATE_H_ |