Intermediate

This commit is contained in:
Mike Brady
2017-12-02 16:21:46 +00:00
parent fe3b70b4b2
commit af50e91232
4 changed files with 27 additions and 27 deletions
+4 -4
View File
@@ -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.");
}
+5 -4
View File
@@ -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
View File
@@ -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.");
}
+3 -2
View File
@@ -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