Commit ace8442c authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

probe: helpers for services discovery

parent 1cfe42c9
...@@ -24,6 +24,10 @@ ...@@ -24,6 +24,10 @@
#ifndef VLC_SERVICES_DISCOVERY_H_ #ifndef VLC_SERVICES_DISCOVERY_H_
#define VLC_SERVICES_DISCOVERY_H_ #define VLC_SERVICES_DISCOVERY_H_
#include <vlc_input.h>
#include <vlc_events.h>
#include <vlc_probe.h>
/** /**
* \file * \file
* This file functions and structures for service discovery in vlc * This file functions and structures for service discovery in vlc
...@@ -37,9 +41,6 @@ extern "C" { ...@@ -37,9 +41,6 @@ extern "C" {
* @{ * @{
*/ */
#include <vlc_input.h>
#include <vlc_events.h>
struct services_discovery_t struct services_discovery_t
{ {
VLC_COMMON_MEMBERS VLC_COMMON_MEMBERS
...@@ -88,6 +89,22 @@ VLC_EXPORT( vlc_event_manager_t *, services_discovery_EventManager, ( services_ ...@@ -88,6 +89,22 @@ VLC_EXPORT( vlc_event_manager_t *, services_discovery_EventManager, ( services_
VLC_EXPORT( void, services_discovery_AddItem, ( services_discovery_t * p_this, input_item_t * p_item, const char * psz_category ) ); VLC_EXPORT( void, services_discovery_AddItem, ( services_discovery_t * p_this, input_item_t * p_item, const char * psz_category ) );
VLC_EXPORT( void, services_discovery_RemoveItem, ( services_discovery_t * p_this, input_item_t * p_item ) ); VLC_EXPORT( void, services_discovery_RemoveItem, ( services_discovery_t * p_this, input_item_t * p_item ) );
/* SD probing */
VLC_EXPORT(int, vlc_sd_probe_Add, (vlc_probe_t *, const char *, const char *));
#define VLC_SD_PROBE_SUBMODULE \
add_submodule() \
set_capability( "services probe", 100 ) \
set_callbacks( vlc_sd_probe_Open, NULL )
#define VLC_SD_PROBE_HELPER(name, longname) \
static int vlc_sd_probe_Open (vlc_object_t *obj) \
{ \
return vlc_sd_probe_Add ((struct vlc_probe_t *)obj, name, longname); \
}
/** @} */ /** @} */
# ifdef __cplusplus # ifdef __cplusplus
} }
......
...@@ -537,6 +537,7 @@ vlc_rwlock_wrlock ...@@ -537,6 +537,7 @@ vlc_rwlock_wrlock
vlc_savecancel vlc_savecancel
vlc_sd_Create vlc_sd_Create
vlc_sd_GetNames vlc_sd_GetNames
vlc_sd_probe_Add
vlc_sdp_Start vlc_sdp_Start
vlc_sd_Start vlc_sd_Start
vlc_sd_Stop vlc_sd_Stop
......
...@@ -33,14 +33,29 @@ ...@@ -33,14 +33,29 @@
#include "playlist_internal.h" #include "playlist_internal.h"
#include "../libvlc.h" #include "../libvlc.h"
#undef vlc_sd_GetNames
typedef struct typedef struct
{ {
char *name; char *name;
char *longname; char *longname;
} vlc_sd_probe_t; } vlc_sd_probe_t;
int vlc_sd_probe_Add (vlc_probe_t *probe, const char *name,
const char *longname)
{
vlc_sd_probe_t names = { strdup(name), strdup(longname) };
if (unlikely (names.name == NULL || names.longname == NULL
|| vlc_probe_add (probe, &names, sizeof (names))))
{
free (names.name);
free (names.longname);
return VLC_ENOMEM;
}
return VLC_PROBE_CONTINUE;
}
#undef vlc_sd_GetNames
/** /**
* Gets the list of available services discovery plugins. * Gets the list of available services discovery plugins.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment