1// Copyright 2014 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 CHROME_BROWSER_UI_ASH_MEDIA_DELEGATE_CHROMEOS_H_
6#define CHROME_BROWSER_UI_ASH_MEDIA_DELEGATE_CHROMEOS_H_
7
8#include "ash/media_delegate.h"
9#include "base/memory/weak_ptr.h"
10#include "chrome/browser/media/media_capture_devices_dispatcher.h"
11
12class MediaDelegateChromeOS : public ash::MediaDelegate,
13                              MediaCaptureDevicesDispatcher::Observer {
14 public:
15  MediaDelegateChromeOS();
16  virtual ~MediaDelegateChromeOS();
17
18  // ash::MediaDelegate:
19  virtual void HandleMediaNextTrack() OVERRIDE;
20  virtual void HandleMediaPlayPause() OVERRIDE;
21  virtual void HandleMediaPrevTrack() OVERRIDE;
22  virtual ash::MediaCaptureState GetMediaCaptureState(
23      content::BrowserContext* context) OVERRIDE;
24
25  // MediaCaptureDevicesDispatcher::Observer:
26  virtual void OnRequestUpdate(int render_process_id,
27                               int render_frame_id,
28                               content::MediaStreamType stream_type,
29                               const content::MediaRequestState state) OVERRIDE;
30
31 private:
32  void NotifyMediaCaptureChange();
33
34  base::WeakPtrFactory<MediaDelegateChromeOS> weak_ptr_factory_;
35
36  DISALLOW_COPY_AND_ASSIGN(MediaDelegateChromeOS);
37};
38
39#endif  // CHROME_BROWSER_UI_ASH_MEDIA_DELEGATE_CHROMEOS_H_
40