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.
5 #ifndef CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_BRIDGE_H_
6 #define CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_BRIDGE_H_
8 #include "base/basictypes.h"
9 #include "chrome/browser/media/desktop_media_list_observer.h"
11 // Protocol corresponding to |DesktopMediaListObserver|.
12 @protocol DesktopMediaPickerObserver
13 - (void)sourceAddedAtIndex
:(int)index
;
14 - (void)sourceRemovedAtIndex
:(int)index
;
15 - (void)sourceNameChangedAtIndex
:(int)index
;
16 - (void)sourceThumbnailChangedAtIndex
:(int)index
;
19 // Provides a |DesktopMediaListObserver| implementation that forwards
20 // notifications to a objective-c object implementing the
21 // |DesktopMediaPickerObserver| protocol.
22 class DesktopMediaPickerBridge
: public DesktopMediaListObserver
{
24 DesktopMediaPickerBridge(id
<DesktopMediaPickerObserver
> observer
);
25 virtual ~DesktopMediaPickerBridge();
27 // DesktopMediaListObserver overrides.
28 virtual void OnSourceAdded(int index
) OVERRIDE
;
29 virtual void OnSourceRemoved(int index
) OVERRIDE
;
30 virtual void OnSourceNameChanged(int index
) OVERRIDE
;
31 virtual void OnSourceThumbnailChanged(int index
) OVERRIDE
;
34 id
<DesktopMediaPickerObserver
> observer_
; // weak; owns this
36 DISALLOW_COPY_AND_ASSIGN(DesktopMediaPickerBridge
);
39 #endif // CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_DESKTOP_MEDIA_PICKER_BRIDGE_H_