1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file.
4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifndef CHROME_BROWSER_UI_ASH_MEDIA_DELEGATE_CHROMEOS_H_
6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define CHROME_BROWSER_UI_ASH_MEDIA_DELEGATE_CHROMEOS_H_
7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "ash/media_delegate.h"
9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/memory/weak_ptr.h"
10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chrome/browser/media/media_capture_devices_dispatcher.h"
11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class MediaDelegateChromeOS : public ash::MediaDelegate,
13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                              MediaCaptureDevicesDispatcher::Observer {
14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public:
15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  MediaDelegateChromeOS();
16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  virtual ~MediaDelegateChromeOS();
17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  // ash::MediaDelegate:
19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  virtual void HandleMediaNextTrack() OVERRIDE;
20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  virtual void HandleMediaPlayPause() OVERRIDE;
21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  virtual void HandleMediaPrevTrack() OVERRIDE;
22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  virtual ash::MediaCaptureState GetMediaCaptureState(
23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      content::BrowserContext* context) OVERRIDE;
24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  // MediaCaptureDevicesDispatcher::Observer:
26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  virtual void OnRequestUpdate(int render_process_id,
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                               int render_frame_id,
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                               content::MediaStreamType stream_type,
29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)                               const content::MediaRequestState state) OVERRIDE;
30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) private:
32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  void NotifyMediaCaptureChange();
33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  base::WeakPtrFactory<MediaDelegateChromeOS> weak_ptr_factory_;
35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(MediaDelegateChromeOS);
37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)};
38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif  // CHROME_BROWSER_UI_ASH_MEDIA_DELEGATE_CHROMEOS_H_
40