VLC  2.1.0-git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures
vlc_services_discovery.h File Reference

This file lists functions and structures for service discovery (SD) in vlc. More...

Include dependency graph for vlc_services_discovery.h:

Go to the source code of this file.

Data Structures

struct  services_discovery_t
 Main service discovery structure to build a SD module. More...
struct  services_discovery_descriptor_t
 Service discovery descriptor. More...
#define vlc_sd_GetNames(obj, pln, pcat)   vlc_sd_GetNames(VLC_OBJECT(obj), pln, pcat)
#define VLC_SD_PROBE_SUBMODULE
#define VLC_SD_PROBE_HELPER(name, longname, cat)
enum  services_discovery_category_e { SD_CAT_DEVICES = 1, SD_CAT_LAN, SD_CAT_INTERNET, SD_CAT_MYCOMPUTER }
 Service discovery categories. More...
enum  services_discovery_command_e { SD_CMD_SEARCH = 1, SD_CMD_DESCRIPTOR }
 Service discovery control commands. More...
enum  services_discovery_capability_e { SD_CAP_SEARCH = 1 }
 Service discovery capabilities. More...
static int vlc_sd_control (services_discovery_t *p_sd, int i_control, va_list args)
 Ask for a research in the SD.
char ** vlc_sd_GetNames (vlc_object_t *, char ***, int **)
services_discovery_tvlc_sd_Create (vlc_object_t *, const char *)
 Create a Service discovery.
bool vlc_sd_Start (services_discovery_t *)
 Start a Service Discovery.
void vlc_sd_Stop (services_discovery_t *)
 Stop a Service Discovery.
void vlc_sd_Destroy (services_discovery_t *)
 Destroy a Service Discovery.
static void vlc_sd_StopAndDestroy (services_discovery_t *p_this)
 Helper to stop and destroy the Service Discovery.
char * services_discovery_GetLocalizedName (services_discovery_t *p_this)
 Get the Localized Name.
vlc_event_manager_tservices_discovery_EventManager (services_discovery_t *p_this)
 Getter for the EventManager.
void services_discovery_AddItem (services_discovery_t *p_this, input_item_t *p_item, const char *psz_category)
 Add an item to the Service Discovery listing.
void services_discovery_RemoveItem (services_discovery_t *p_this, input_item_t *p_item)
 Remove an item from the Service Discovery listing.
void services_discovery_RemoveAll (services_discovery_t *p_sd)
 Remove all items from the Service Discovery listing.
int vlc_sd_probe_Add (vlc_probe_t *, const char *, const char *, int category)

Detailed Description

This file lists functions and structures for service discovery (SD) in vlc.

Macro Definition Documentation

#define vlc_sd_GetNames (   obj,
  pln,
  pcat 
)    vlc_sd_GetNames(VLC_OBJECT(obj), pln, pcat)
#define VLC_SD_PROBE_HELPER (   name,
  longname,
  cat 
)
Value:
static int vlc_sd_probe_Open (vlc_object_t *obj) \
{ \
return vlc_sd_probe_Add ((struct vlc_probe_t *)obj, \
name "{longname=\"" longname "\"}", \
longname, cat); \
}
#define VLC_SD_PROBE_SUBMODULE
Value:
set_capability( "services probe", 100 ) \
set_callbacks( vlc_sd_probe_Open, NULL )

Enumeration Type Documentation

Service discovery capabilities.

Enumerator:
SD_CAP_SEARCH 

One can search in the SD.

Service discovery categories.

See Also
vlc_sd_probe_Add
Enumerator:
SD_CAT_DEVICES 

Devices, like portable music players.

SD_CAT_LAN 

LAN/WAN services, like Upnp or SAP.

SD_CAT_INTERNET 

Internet or Website channels services.

SD_CAT_MYCOMPUTER 

Computer services, like Discs or Apps.

Service discovery control commands.

Enumerator:
SD_CMD_SEARCH 

arg1 = query

SD_CMD_DESCRIPTOR 

arg1 = services_discovery_descriptor_t*

Function Documentation

void services_discovery_AddItem ( services_discovery_t p_this,
input_item_t p_item,
const char *  psz_category 
)

Add an item to the Service Discovery listing.

References services_discovery_t::event_manager, vlc_event_t::type, vlc_event_send(), and vlc_ServicesDiscoveryItemAdded.

vlc_event_manager_t* services_discovery_EventManager ( services_discovery_t p_sd)

Getter for the EventManager.

You can receive event notification This is the preferred way to get new items

References services_discovery_t::event_manager.

Referenced by playlist_ServicesDiscoveryAdd(), and playlist_ServicesDiscoveryRemove().

char* services_discovery_GetLocalizedName ( services_discovery_t p_sd)

Get the Localized Name.

This is useful for interfaces and libVLC

References module_get_name(), services_discovery_t::p_module, and strdup().

void services_discovery_RemoveAll ( services_discovery_t p_sd)

Remove all items from the Service Discovery listing.

References services_discovery_t::event_manager, vlc_event_t::type, vlc_event_send(), and vlc_ServicesDiscoveryItemRemoveAll.

void services_discovery_RemoveItem ( services_discovery_t p_this,
input_item_t p_item 
)

Remove an item from the Service Discovery listing.

References services_discovery_t::event_manager, vlc_event_t::type, vlc_event_send(), and vlc_ServicesDiscoveryItemRemoved.

static int vlc_sd_control ( services_discovery_t p_sd,
int  i_control,
va_list  args 
)
inlinestatic

Ask for a research in the SD.

Parameters
p_sd,:the Service Discovery
i_control,:the command to issue
args,:the argument list
Returns
VLC_SUCCESS in case of success, the error code overwise

< Unspecified error

References services_discovery_t::pf_control, and VLC_EGENERIC.

Referenced by playlist_ServicesDiscoveryControl().

services_discovery_t* vlc_sd_Create ( vlc_object_t ,
const char *   
)
void vlc_sd_Destroy ( services_discovery_t )
char** vlc_sd_GetNames ( vlc_object_t ,
char ***  ,
int **   
)
int vlc_sd_probe_Add ( vlc_probe_t ,
const char *  ,
const char *  ,
int  category 
)

< Not enough memory

< Unspecified error

References vlc_sd_probe_t::longname, vlc_sd_probe_t::name, strdup(), unlikely, VLC_ENOMEM, vlc_probe_add(), and VLC_PROBE_CONTINUE.

bool vlc_sd_Start ( services_discovery_t )
void vlc_sd_Stop ( services_discovery_t )
static void vlc_sd_StopAndDestroy ( services_discovery_t p_this)
inlinestatic

Helper to stop and destroy the Service Discovery.

References vlc_sd_Destroy(), and vlc_sd_Stop().