47f80725bbbee7de2bce6b6f88c8a6eeefc42ded
[vlc.git] / modules / gui / macosx / VLCRendererItem.h
1 /*****************************************************************************
2  * VLCRendererItem.h: Wrapper class for vlc_renderer_item_t
3  *****************************************************************************
4  * Copyright (C) 2016 VLC authors and VideoLAN
5  * $Id$
6  *
7  * Authors: Marvin Scholz <epirat07 at gmail dot com>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23
24 #import <Foundation/Foundation.h>
25
26 #include <vlc_common.h>
27 #include <vlc_playlist.h>
28
29 /**
30  \c VLCRendererItem is a simple wrapper class for libvlc’s
31  \c vlc_renderer_item_t. It's initialized with the renderer item and
32  manages it's lifetime.
33  */
34 @interface VLCRendererItem : NSObject
35
36 /**
37  Initialize the object with a renderer item, typically received from
38  a \c vlc_renderer_discovery_t event.
39  */
40 - (instancetype)initWithRendererItem:(vlc_renderer_item_t*)item;
41
42 /**
43  The underlying \c vlc_renderer_item_t item
44  */
45 @property (readonly, assign) vlc_renderer_item_t* rendererItem;
46
47 /**
48  The name of the renderer item
49  */
50 - (NSString*)name;
51
52 /**
53  The iconURI of the renderer item
54  */
55 - (NSString*)iconURI;
56
57 /**
58  Flags indicating capabilities of the renderer item
59
60  Compare it to:
61     \li \c VLC_RENDERER_CAN_AUDIO
62     \li \c VLC_RENDERER_CAN_VIDEO
63  */
64 - (int)capabilityFlags;
65
66 /**
67  Checks if the Item’s sout string is equivalent to the given
68  sout string. If output is YES, it's checked if it's an
69  output sout as well.
70
71  \param sout    The sout c string to compare with
72  \param output  Indicates wether to check if sout is an output
73
74  \return YES if souts match the given sout and output, NO otherwise
75  */
76 - (bool)isSoutEqualTo:(const char*)sout asOutput:(bool)output;
77
78 /**
79  Sets the passed playlist’s sout to the sout of the \c VLCRendererItem.
80
81  \param playlist The playlist for which to set the sout
82  */
83 - (void)setSoutForPlaylist:(playlist_t*)playlist;
84
85 @end