libmpd 0.20.0

Data Object

Data Structures

struct  _MpdData

Typedefs

typedef struct _MpdData MpdData

Enumerations

enum  MpdDataType {
  MPD_DATA_TYPE_NONE, MPD_DATA_TYPE_TAG, MPD_DATA_TYPE_DIRECTORY, MPD_DATA_TYPE_SONG,
  MPD_DATA_TYPE_PLAYLIST, MPD_DATA_TYPE_OUTPUT_DEV
}

Functions

int mpd_data_is_last (MpdData const *data)
void mpd_data_free (MpdData *data)
MpdDatampd_data_get_next (MpdData *data)
MpdDatampd_data_get_first (MpdData const *data)
MpdDatampd_data_delete_item (MpdData *data)

Detailed Description

This is a fast linked list implementation where data returned from mpd is stored in.


Typedef Documentation

typedef struct _MpdData MpdData

# A fast linked list that is used to pass data from libmpd to the client.


Enumeration Type Documentation

enumeration to determine what value the MpdData structure hold. The MpdData structure can hold only one type of value, but a list of MpdData structs can hold structs with different type of values. It's required to check every MpdData Structure.

Enumerator:
MPD_DATA_TYPE_NONE 

The MpdData structure holds no value

MPD_DATA_TYPE_TAG 

Holds an Tag String. value->tag is filled value->tag_type defines what type of tag.

MPD_DATA_TYPE_DIRECTORY 

Holds an Directory String. value->directory is filled.

MPD_DATA_TYPE_SONG 

Holds an MpdSong Structure. value->song is valid.

MPD_DATA_TYPE_PLAYLIST 

Holds an Playlist String. value->playlist is filled.

MPD_DATA_TYPE_OUTPUT_DEV 

Holds an MpdOutputDevice structure. value->output_dev is valid.

Definition at line 121 of file libmpd.h.


Function Documentation

MpdData* mpd_data_delete_item ( MpdData data)
Parameters:
dataa MpdData item

removes the passed MpdData from the underlying list, and returns the element before data

Returns:
a MpdData list
void mpd_data_free ( MpdData data)
Parameters:
dataa MpdData

Free's a MpdData List

MpdData* mpd_data_get_first ( MpdData const *  data)
Parameters:
dataa MpdData

Returns the first MpdData in the list.

Returns:
The first MpdData or NULL
MpdData* mpd_data_get_next ( MpdData data)
Parameters:
dataa MpdData

Returns the next MpdData in the list. If it's the last item in the list, it will free the list.

You can iterate through a list like this and have it freed afterwards.

        for(data = mpd_database_get_albums(mi);data != NULL; data = mpd_data_get_next(data))
        {
                // do your thing
        }
Returns:
The next MpdData or NULL
Examples:
testcase.c.
int mpd_data_is_last ( MpdData const *  data)
Parameters:
dataa MpdData

Checks if the passed MpdData is the last in a list

Returns:
TRUE when data is the last in the list.