Intermediate
This commit is contained in:
@@ -104,9 +104,9 @@ void mdns_unregister(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void mdns_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer) {
|
||||
void mdns_dacp_monitor(rtsp_conn_info *conn) {
|
||||
if ((config.mdns) && (config.mdns->mdns_dacp_monitor)) {
|
||||
int error = config.mdns->mdns_dacp_monitor(dacp_id, port, private_pointer);
|
||||
int error = config.mdns->mdns_dacp_monitor(conn);
|
||||
if (error) {
|
||||
debug(1, "Error starting a DACP monitor.");
|
||||
}
|
||||
@@ -114,9 +114,9 @@ void mdns_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer) {
|
||||
debug(1, "Can't start a DACP monitor.");
|
||||
}
|
||||
|
||||
void mdns_dacp_dont_monitor(void **private_pointer) {
|
||||
void mdns_dacp_dont_monitor(rtsp_conn_info *conn) {
|
||||
if ((config.mdns) && (config.mdns->mdns_dacp_dont_monitor)) {
|
||||
config.mdns->mdns_dacp_dont_monitor(private_pointer);
|
||||
config.mdns->mdns_dacp_dont_monitor(conn);
|
||||
} else
|
||||
debug(1, "Can't stop a DACP monitor.");
|
||||
}
|
||||
|
||||
@@ -3,13 +3,14 @@
|
||||
|
||||
#include "config.h"
|
||||
#include <stdint.h>
|
||||
#include <player.h>
|
||||
|
||||
extern int mdns_pid;
|
||||
|
||||
void mdns_unregister(void);
|
||||
void mdns_register(void);
|
||||
void mdns_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer);
|
||||
void mdns_dacp_dont_monitor(void **private_pointer);
|
||||
void mdns_dacp_monitor(rtsp_conn_info *conn);
|
||||
void mdns_dacp_dont_monitor(rtsp_conn_info *conn);
|
||||
|
||||
void mdns_ls_backends(void);
|
||||
|
||||
@@ -17,8 +18,8 @@ typedef struct {
|
||||
char *name;
|
||||
int (*mdns_register)(char *apname, int port);
|
||||
void (*mdns_unregister)(void);
|
||||
int (*mdns_dacp_monitor)(char *dacp_id, uint16_t *port, void **private_pointer);
|
||||
void (*mdns_dacp_dont_monitor)(void **private_pointer);
|
||||
int (*mdns_dacp_monitor)(rtsp_conn_info *conn);
|
||||
void (*mdns_dacp_dont_monitor)(rtsp_conn_info *conn);
|
||||
} mdns_backend;
|
||||
|
||||
#ifdef CONFIG_METADATA
|
||||
|
||||
+15
-17
@@ -377,9 +377,7 @@ static void avahi_unregister(void) {
|
||||
service_name = NULL;
|
||||
}
|
||||
|
||||
int avahi_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer) {
|
||||
|
||||
dacp_browser_struct **pdbs = (dacp_browser_struct **)private_pointer;
|
||||
int avahi_dacp_monitor(rtsp_conn_info *conn) {
|
||||
|
||||
dacp_browser_struct *dbs = (dacp_browser_struct *)malloc(sizeof(dacp_browser_struct));
|
||||
|
||||
@@ -435,24 +433,24 @@ int avahi_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer) {
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
*pdbs = dbs;
|
||||
conn->mdns_private_pointer = (void *)dbs;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void avahi_dacp_dont_monitor(void **private_pointer) {
|
||||
dacp_browser_struct **pdbs = (dacp_browser_struct **)private_pointer;
|
||||
if (*pdbs) {
|
||||
void avahi_dacp_dont_monitor(rtsp_conn_info *conn) {
|
||||
dacp_browser_struct *dbs = (dacp_browser_struct *)conn->mdns_private_pointer;
|
||||
if (dbs) {
|
||||
// stop and dispose of everything
|
||||
if ((*pdbs)->service_poll)
|
||||
avahi_threaded_poll_stop((*pdbs)->service_poll);
|
||||
if ((*pdbs)->service_browser)
|
||||
avahi_service_browser_free((*pdbs)->service_browser);
|
||||
if ((*pdbs)->service_client)
|
||||
avahi_client_free((*pdbs)->service_client);
|
||||
if ((*pdbs)->service_poll)
|
||||
avahi_threaded_poll_free((*pdbs)->service_poll);
|
||||
free((char *)(*pdbs));
|
||||
*pdbs = NULL;
|
||||
if ((dbs)->service_poll)
|
||||
avahi_threaded_poll_stop((dbs)->service_poll);
|
||||
if ((dbs)->service_browser)
|
||||
avahi_service_browser_free((dbs)->service_browser);
|
||||
if ((dbs)->service_client)
|
||||
avahi_client_free((dbs)->service_client);
|
||||
if ((dbs)->service_poll)
|
||||
avahi_threaded_poll_free((dbs)->service_poll);
|
||||
free((char *)(dbs));
|
||||
conn->mdns_private_pointer = NULL;
|
||||
} else {
|
||||
debug(1, "DHCP Monitor is not running.");
|
||||
}
|
||||
|
||||
@@ -1579,7 +1579,8 @@ static void *player_thread_func(void *arg) {
|
||||
|
||||
// start an mdns/zeroconf thread to look for DACP messages containing our DACP_ID and getting the
|
||||
// port number
|
||||
mdns_dacp_monitor(conn->dacp_id, &conn->dacp_port, &conn->dacp_private);
|
||||
//mdns_dacp_monitor(conn->dacp_id, &conn->dacp_port, &conn->dacp_private);
|
||||
mdns_dacp_monitor(conn);
|
||||
|
||||
conn->framesProcessedInThisEpoch = 0;
|
||||
conn->framesGeneratedInThisEpoch = 0;
|
||||
@@ -2186,7 +2187,7 @@ static void *player_thread_func(void *arg) {
|
||||
}
|
||||
|
||||
// stop watching for DACP port number stuff
|
||||
mdns_dacp_dont_monitor(&conn->dacp_private); // begin looking out for information about the client
|
||||
mdns_dacp_dont_monitor(conn); // begin looking out for information about the client
|
||||
// as a remote control. Specifically we might need
|
||||
// the port number
|
||||
|
||||
|
||||
Reference in New Issue
Block a user