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