Share API

Share API — Using the share API

Share API

A DmapAvShare (or DmapImageShare) allows a program to share the media described by its DmapDb object. The libdmapsharing package also provides an optional interface, DmapRecordFactory, that can be used in conjunction with a DmapDb implementation. The following demonstrates the use of the share API; it serves up a media database made up of a single record.

DmapRecordFactory *factory;
DmapRecord *record;
DmapDb *db;
gboolean ok;
DmapShare *share;
GError *error = NULL;

factory = DMAP_RECORD_FACTORY (my_dmap_av_record_factory_new ());

record  = DMAP_RECORD (dmap_record_factory_create (factory, path_to_media_file, &error));
if (record == NULL) {
	g_error("Error reading record: %s\n", error->messaage);
}

db = DMAP_DB (my_dmap_db_new ());
dmap_db_add (db, record, &error);
g_object_unref (record);

share = DMAP_SHARE(dmap_av_share_new (name, NULL, db, dmap_container_db, NULL);

ok = dmap_share_serve(share, &error);
if (!ok) {
	g_error("Error sharing: %s", error->message);
}

ok = dmap_share_publish(share, &errro);
if (!ok) {
	g_error("Error publishing: %s", error->message);
}

g_main_loop_run(loop);