## Service Added Callback

Service Added Callback — Defining a Service Added Callback

## Service Added Callback

The "service-added" callback typically creates DmapDb and DmapRecordFactory objects, and then passes these objects to dmap_connection_new. A subsequent call to the dmap_connection_start method causes this connection object to interact with the DAAP share in order to populate the client's DmapDb.

The following is a simple "service-added" callback which creates a DAAP connection:

    static void
    service_added_cb(DmapMdnsBrowser *browser, DmapMdnsBrowserService *service, gpointer user_data)

    	DmapDb *db;
    	DmapRecordFactory *factory;
    	DmapConnection *conn;

    	db      = DMAP_DB(my_dmap_db_new());
    	factory = DMAP_RECORD_FACTORY(my_dmap_av_record_factory_new());
    	conn    = DMAP_CONNECTION(dmap_av_connection_new(service->name, service->host, service->port, db, factory));

    	g_signal_connect(conn, "authenticate", G_CALLBACK(authenticate_cb), NULL, NULL);
    	g_signal_connect(conn, "error", G_CALLBACK(error_cb), NULL, NULL);

    	dmap_connection_start(conn, (DmapConnectionFunc) connected_cb, db);
    }