DMAPDb: libdmapsharing-3.0 Reference Manual

## DMAPDb DMAPDb |

## Functions

const char * | (*RecordGetValueFunc) ()
guint | dmap_db_add ()
guint | dmap_db_add_with_id ()
guint | dmap_db_add_path ()
DMAPRecord * | dmap_db_lookup_by_id ()
guint | dmap_db_lookup_id_by_location ()
void | dmap_db_foreach ()
gulong | dmap_db_count ()
GHashTable * | dmap_db_apply_filter ()

## Object Hierarchy

        GInterface
        ╰── DMAPDb

## Description

## Functions

### RecordGetValueFunc ()

    const char *
    (*RecordGetValueFunc) (DMAPRecord *record);

### dmap_db_add ()

    guint
    dmap_db_add (DMAPDb *db,
                 DMAPRecord *record);

Add a record to the database.

#### Parameters

db | A media database. |
record | A database record. |

#### Returns

The ID for the newly added record. A reference to the record will be retained by the database (if required; an adapter-type implementation may not want to retain a reference as the record data may be placed elsewhere). In all cases, the record should be unrefed by the calling code.

### dmap_db_add_with_id ()

    guint
    dmap_db_add_with_id (DMAPDb *db,
                         DMAPRecord *record,
                         guint id);

Add a record to the database and assign it the given ID.

#### Parameters

db | A media database. |
record | A database record. |
id | A database record ID. |

#### Returns

The ID for the newly added record.

See also the notes for dmap_db_add regarding reference counting.

### dmap_db_add_path ()

    guint
    dmap_db_add_path (DMAPDb *db,
                      const gchar *path);

Create a record and add it to the database.

#### Parameters

db | A media database. |
path | A path to an appropriate media file. |

#### Returns

The ID for the newly added record.

See also the notes for dmap_db_add regarding reference counting.

### dmap_db_lookup_by_id ()

    DMAPRecord *
    dmap_db_lookup_by_id (const DMAPDb *db,
                          guint id);

#### Parameters

db | A media database. |
id | A record ID. |

#### Returns

the database record corresponding to `id` . This record should be unrefed by the calling code when no longer required.

If you are implementing a full database using this API, then you probably want to increment the reference count before returning a record pointer.

On the other hand, if you are implementing an adapter class and the records are stored elsewhere, then you will probably return a transient record. That is, once the user is done using it, the returned record should be free'd because it is a adapter copy of the real record. In this case, the reference count should not be incremented before returning a record pointer.

### dmap_db_lookup_id_by_location ()

    guint
    dmap_db_lookup_id_by_location (const DMAPDb *db,
                                   const gchar *location);

#### Parameters

db | A media database. |
location | A record location. |

#### Returns

the database id for the record corresponding to `path` or 0 if such a record does not exist.

### dmap_db_foreach ()

    void
    dmap_db_foreach (const DMAPDb *db,
                     GHFunc func,
                     gpointer data);

Apply a function to each record in a media database.

#### Parameters

db | A media database. |
func | The function to apply to each record in the database. |
data | User data to pass to the function. |

### dmap_db_count ()

    gulong
    dmap_db_count (const DMAPDb *db);

#### Parameters

db | A media database. |

#### Returns

the number of records in the database.

### dmap_db_apply_filter ()

    GHashTable *
    dmap_db_apply_filter (DMAPDb *db,
                          GSList *filter_def);