VLC 4.0.0-dev
libvlc_media_discoverer.h
Go to the documentation of this file.
1/*****************************************************************************
2 * libvlc_media_discoverer.h: libvlc external API
3 *****************************************************************************
4 * Copyright (C) 1998-2009 VLC authors and VideoLAN
5 *
6 * Authors: Clément Stenac <zorglub@videolan.org>
7 * Jean-Paul Saman <jpsaman@videolan.org>
8 * Pierre d'Herbemont <pdherbemont@videolan.org>
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU Lesser General Public License as published by
12 * the Free Software Foundation; either version 2.1 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * along with this program; if not, write to the Free Software Foundation,
22 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23 *****************************************************************************/
24
25#ifndef VLC_LIBVLC_MEDIA_DISCOVERER_H
26#define VLC_LIBVLC_MEDIA_DISCOVERER_H 1
27
28# ifdef __cplusplus
29extern "C" {
30# endif
31
32/**
33 * Category of a media discoverer
34 * \see libvlc_media_discoverer_list_get()
35 */
37 /** devices, like portable music player */
39 /** LAN/WAN services, like Upnp, SMB, or SAP */
41 /** Podcasts */
43 /** Local directories, like Video, Music or Pictures directories */
46
47/**
48 * Media discoverer description
49 * \see libvlc_media_discoverer_list_get()
50 */
52 char *psz_name;
56
57/** \defgroup libvlc_media_discoverer LibVLC media discovery
58 * \ingroup libvlc
59 * LibVLC media discovery finds available media via various means.
60 * This corresponds to the service discovery functionality in VLC media player.
61 * Different plugins find potential medias locally (e.g. user media directory),
62 * from peripherals (e.g. video capture device), on the local network
63 * (e.g. SAP) or on the Internet (e.g. Internet radios).
64 * @{
65 * \file
66 * LibVLC media discovery external API
67 */
68
70
71/**
72 * Create a media discoverer object by name.
73 *
74 * After this object is created, you should attach to media_list events in
75 * order to be notified of new items discovered.
76 *
77 * You need to call libvlc_media_discoverer_start() in order to start the
78 * discovery.
79 *
80 * \see libvlc_media_discoverer_media_list
81 * \see libvlc_media_discoverer_start
82 *
83 * \param p_inst libvlc instance
84 * \param psz_name service name; use libvlc_media_discoverer_list_get() to get
85 * a list of the discoverer names available in this libVLC instance
86 * \return media discover object or NULL in case of error
87 * \version LibVLC 3.0.0 or later
88 */
91 const char * psz_name );
92
93/**
94 * Start media discovery.
95 *
96 * To stop it, call libvlc_media_discoverer_stop() or
97 * libvlc_media_discoverer_list_release() directly.
98 *
99 * \see libvlc_media_discoverer_stop
100 *
101 * \param p_mdis media discover object
102 * \return -1 in case of error, 0 otherwise
103 * \version LibVLC 3.0.0 or later
104 */
105LIBVLC_API int
107
108/**
109 * Stop media discovery.
110 *
111 * \see libvlc_media_discoverer_start
112 *
113 * \param p_mdis media discover object
114 * \version LibVLC 3.0.0 or later
115 */
116LIBVLC_API void
118
119/**
120 * Release media discover object. If the reference count reaches 0, then
121 * the object will be released.
122 *
123 * \param p_mdis media service discover object
124 */
125LIBVLC_API void
127
128/**
129 * Get media service discover media list.
130 *
131 * \param p_mdis media service discover object
132 * \return list of media items
133 */
136
137/**
138 * Query if media service discover object is running.
139 *
140 * \param p_mdis media service discover object
141 *
142 * \retval true running
143 * \retval false not running
144 */
145LIBVLC_API bool
147
148/**
149 * Get media discoverer services by category
150 *
151 * \version LibVLC 3.0.0 and later.
152 *
153 * \param p_inst libvlc instance
154 * \param i_cat category of services to fetch
155 * \param ppp_services address to store an allocated array of media discoverer
156 * services (must be freed with libvlc_media_discoverer_list_release() by
157 * the caller) [OUT]
158 *
159 * \return the number of media discoverer services (0 on error)
160 */
161LIBVLC_API size_t
165
166/**
167 * Release an array of media discoverer services
168 *
169 * \version LibVLC 3.0.0 and later.
170 *
171 * \see libvlc_media_discoverer_list_get()
172 *
173 * \param pp_services array to release
174 * \param i_count number of elements in the array
175 */
176LIBVLC_API void
178 size_t i_count );
179
180/**@} */
181
182# ifdef __cplusplus
183}
184# endif
185
186#endif /* <vlc/libvlc.h> */
struct libvlc_instance_t libvlc_instance_t
This structure is opaque.
Definition: libvlc.h:76
LIBVLC_API bool libvlc_media_discoverer_is_running(libvlc_media_discoverer_t *p_mdis)
Query if media service discover object is running.
LIBVLC_API libvlc_media_discoverer_t * libvlc_media_discoverer_new(libvlc_instance_t *p_inst, const char *psz_name)
Create a media discoverer object by name.
LIBVLC_API void libvlc_media_discoverer_stop(libvlc_media_discoverer_t *p_mdis)
Stop media discovery.
LIBVLC_API int libvlc_media_discoverer_start(libvlc_media_discoverer_t *p_mdis)
Start media discovery.
LIBVLC_API void libvlc_media_discoverer_release(libvlc_media_discoverer_t *p_mdis)
Release media discover object.
LIBVLC_API void libvlc_media_discoverer_list_release(libvlc_media_discoverer_description_t **pp_services, size_t i_count)
Release an array of media discoverer services.
LIBVLC_API size_t libvlc_media_discoverer_list_get(libvlc_instance_t *p_inst, libvlc_media_discoverer_category_t i_cat, libvlc_media_discoverer_description_t ***ppp_services)
Get media discoverer services by category.
LIBVLC_API libvlc_media_list_t * libvlc_media_discoverer_media_list(libvlc_media_discoverer_t *p_mdis)
Get media service discover media list.
struct libvlc_media_discoverer_t libvlc_media_discoverer_t
Definition: libvlc_media_discoverer.h:69
struct libvlc_media_list_t libvlc_media_list_t
Definition: libvlc_media_list.h:38
#define LIBVLC_API
Definition: libvlc.h:42
libvlc_media_discoverer_category_t
Category of a media discoverer.
Definition: libvlc_media_discoverer.h:36
@ libvlc_media_discoverer_localdirs
Local directories, like Video, Music or Pictures directories.
Definition: libvlc_media_discoverer.h:44
@ libvlc_media_discoverer_lan
LAN/WAN services, like Upnp, SMB, or SAP.
Definition: libvlc_media_discoverer.h:40
@ libvlc_media_discoverer_podcasts
Podcasts.
Definition: libvlc_media_discoverer.h:42
@ libvlc_media_discoverer_devices
devices, like portable music player
Definition: libvlc_media_discoverer.h:38
struct libvlc_media_discoverer_description_t libvlc_media_discoverer_description_t
Media discoverer description.
Media discoverer description.
Definition: libvlc_media_discoverer.h:51
char * psz_name
Definition: libvlc_media_discoverer.h:52
char * psz_longname
Definition: libvlc_media_discoverer.h:53
libvlc_media_discoverer_category_t i_cat
Definition: libvlc_media_discoverer.h:54
const char * psz_name
Definition: text_style.c:33