![]() |
![]() |
![]() |
libdmapsharing Reference Manual | ![]() |
---|
Service Added CallbackService Added Callback — Defining a Service Added Callback |
A "service-added" callback should create a media DB and a record factory. Both of these objects will be passed to dmap_connection_new. This object will interact with a DMAP share and populate the media DB. In order to instruct the object to begin interrogating the DMAP service, call the dmap_connection_connect function and pass it a "connected" callback. The following is a simple "service-added" callback that creates a DAAP connection:
static void service_added_cb (DMAPMdnsBrowser *browser, DMAPMdnsBrowserService *service, gpointer user_data) { DMAPRecordFactory *factory; DMAPConnection *conn; DMAPDb *db; db = DMAP_DB (my_dmap_db_new ()); if (db == NULL) { g_error ("Error creating DB"); } factory = DMAP_RECORD_FACTORY (my_daap_record_factory_new ()); if (factory == NULL) { g_error ("Error creating record factory"); } conn = DMAP_CONNECTION (dmap_connection_new (service->name, service->host, service->port, FALSE, db, factory)); dmap_connection_connect (DMAP_CONNECTION (conn), (DMAPConnectionCallback) connected_cb, db); }