1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
// SPDX-License-Identifier: BSD-3-Clause
// Copyright The Music Player Daemon Project
/*! \file
* \brief MPD client library
*
* Do not include this header directly. Use mpd/client.h instead.
*/
#ifndef MPD_DIRECTORY_H
#define MPD_DIRECTORY_H
#include "compiler.h"
#include <stdbool.h>
#include <time.h>
struct mpd_pair;
struct mpd_connection;
/**
* \struct mpd_directory
*
* An opaque directory object. This is a container for more songs,
* directories or playlists.
*/
struct mpd_directory;
#ifdef __cplusplus
extern "C" {
#endif
/**
* Duplicates a #mpd_directory object.
*
* @return the new object, or NULL on out of memory
*/
mpd_malloc
struct mpd_directory *
mpd_directory_dup(const struct mpd_directory *directory);
/**
* Free memory allocated by the #mpd_directory object.
*/
void mpd_directory_free(struct mpd_directory *directory);
/**
* Returns the path of this directory, relative to the MPD music
* directory. It does not begin with a slash.
*/
mpd_pure
const char *
mpd_directory_get_path(const struct mpd_directory *directory);
/**
* @return the POSIX UTC time stamp of the last modification, or 0 if
* that is unknown
*
* @since libmpdclient 2.9
*/
mpd_pure
time_t
mpd_directory_get_last_modified(const struct mpd_directory *directory);
/**
* Begins parsing a new directory.
*
* @param pair the first pair in this directory (name must be "directory")
* @return the new #mpd_entity object, or NULL on error (out of
* memory, or pair name is not "directory")
*/
mpd_malloc
struct mpd_directory *
mpd_directory_begin(const struct mpd_pair *pair);
/**
* Parses the pair, adding its information to the specified
* #mpd_directory object.
*
* @return true if the pair was parsed and added to the directory (or if
* the pair was not understood and ignored), false if this pair is the
* beginning of the next directory
*/
bool
mpd_directory_feed(struct mpd_directory *directory,
const struct mpd_pair *pair);
/**
* Receives the next directory from the MPD server.
*
* @return a #mpd_directory object, or NULL on error or if the directory list is
* finished
*/
mpd_malloc
struct mpd_directory *
mpd_recv_directory(struct mpd_connection *connection);
#ifdef __cplusplus
}
#endif
#endif
|