Skip to content

Commit

Permalink
Intermediate
Browse files Browse the repository at this point in the history
  • Loading branch information
mikebrady committed Dec 2, 2017
1 parent fe3b70b commit af50e91
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 27 deletions.
8 changes: 4 additions & 4 deletions mdns.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,19 +104,19 @@ 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.");
}
} else
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.");
}
Expand Down
9 changes: 5 additions & 4 deletions mdns.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,23 @@

#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);

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
Expand Down
32 changes: 15 additions & 17 deletions mdns_avahi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));

Expand Down Expand Up @@ -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.");
}
Expand Down
5 changes: 3 additions & 2 deletions player.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit af50e91

Please sign in to comment.