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.

1 for(data = mpd_database_get_albums(mi);data != NULL; data = mpd_data_get_next(data))
2 {
3  // do your thing
4 }
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.

Copyright 2006 Qball Cow