static void create_connection (const DMAPMdnsBrowserServiceType protocol, const char *name, const char *host, const guint port) { DMAPRecordFactory *factory; DMAPConnection *conn; DMAPDb *db; db = DMAP_DB (g_object_new (TYPE_DMAPD_DMAP_DB_GHASHTABLE, NULL)); if (db == NULL) { g_error ("Error creating DB"); } /* FIXME: switch on DMAP_MDNS_BROWSER_SERVICE_TYPE_DAAP, _DPAP, _DACP or _INVALID */ if (protocol == DMAP_MDNS_BROWSER_SERVICE_TYPE_DAAP) { factory = DMAP_RECORD_FACTORY (g_object_new (TYPE_DMAPD_DAAP_RECORD_FACTORY, NULL)); if (factory == NULL) { g_error ("Error creating record factory"); } conn = DMAP_CONNECTION (daap_connection_new (name, host, port, db, factory)); } else { factory = DMAP_RECORD_FACTORY (g_object_new (TYPE_DMAPD_DPAP_RECORD_FACTORY, NULL)); if (factory == NULL) { g_error ("Error creating record factory"); } conn = DMAP_CONNECTION (dpap_connection_new (name, host, port, db, factory)); } dmap_connection_connect (DMAP_CONNECTION (conn), (DMAPConnectionCallback) connected_cb, db); }
static void dmapd_dmap_db_ghashtable_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { DmapdDMAPDbGHashTable *db = DMAPD_DMAP_DB_GHASHTABLE (object); switch (prop_id) { case PROP_DB_DIR: g_free (db->priv->db_dir); db->priv->db_dir = g_value_dup_string (value); break; case PROP_RECORD_FACTORY: if (db->priv->record_factory) g_object_unref (db->priv->record_factory); db->priv->record_factory = DMAP_RECORD_FACTORY (g_value_get_pointer (value)); break; case PROP_ACCEPTABLE_FORMATS: db->priv->acceptable_formats = g_value_get_pointer (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void grl_dpap_connect (gchar *name, gchar *host, guint port, ResultCbAndArgsAndDb *cb_and_db, DMAPConnectionCallback callback) { DMAPRecordFactory *factory; DMAPConnection *connection; factory = DMAP_RECORD_FACTORY (grl_dpap_record_factory_new ()); connection = DMAP_CONNECTION (dpap_connection_new (name, host, port, DMAP_DB (cb_and_db->db), factory)); dmap_connection_connect (connection, (DMAPConnectionCallback) callback, cb_and_db); }
static void dmap_connection_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { DMAPConnectionPrivate *priv = DMAP_CONNECTION (object)->priv; switch (prop_id) { case PROP_NAME: g_free (priv->name); priv->name = g_value_dup_string (value); break; case PROP_DB: priv->db = DMAP_DB (g_value_get_pointer (value)); break; case PROP_FACTORY: priv->record_factory = DMAP_RECORD_FACTORY (g_value_get_pointer (value)); break; case PROP_PASSWORD_PROTECTED: priv->password_protected = g_value_get_boolean (value); break; case PROP_HOST: g_free (priv->host); priv->host = g_value_dup_string (value); break; case PROP_PORT: priv->port = g_value_get_uint (value); break; case PROP_BASE_URI: priv->base_uri = g_value_get_pointer (value); break; case PROP_DATABASE_ID: priv->database_id = g_value_get_int (value); break; case PROP_SESSION_ID: priv->session_id = g_value_get_int (value); break; case PROP_DMAP_VERSION: priv->dmap_version = g_value_get_double (value); break; case PROP_REVISION_NUMBER: priv->revision_number = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }