File: database.h

package info (click to toggle)
libmpdclient 2.22-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 896 kB
  • sloc: ansic: 9,923; makefile: 9
file content (156 lines) | stat: -rw-r--r-- 4,467 bytes parent folder | download
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
// SPDX-License-Identifier: BSD-2-Clause
// Copyright The Music Player Daemon Project

/*! \file
 * \brief Database
 *
 * This file declares functions which query or update MPD's music
 * database.
 *
 * Do not include this header directly.  Use mpd/client.h instead.
 */

#ifndef MPD_DATABASE_H
#define MPD_DATABASE_H

#include <stdbool.h>

struct mpd_connection;

#ifdef __cplusplus
extern "C" {
#endif

/**
 * Get a recursive list of all directories, songs and playlist from
 * MPD.  They are returned without metadata.  This is a rather
 * expensive operation, because the response may be large.
 *
 * To read the response, you may use mpd_recv_entity().
 *
 * @param connection the connection to MPD
 * @param path an optional base path for the query
 * @return true on success, false on error
 */
bool
mpd_send_list_all(struct mpd_connection *connection, const char *path);

/**
 * Like #mpd_send_list_all(), but return metadata.  This operation is
 * even more expensive, because the response is larger.  If it is
 * larger than a configurable server-side limit, MPD may disconnect
 * you.
 *
 * To read the response, you may use mpd_recv_entity().
 *
 * @param connection the connection to MPD
 * @param path an optional base path for the query
 * @return true on success, false on error
 */
bool
mpd_send_list_all_meta(struct mpd_connection *connection, const char *path);

/**
 * Get a list of all directories, songs and playlist in a directory
 * from MPD, including metadata.
 *
 * To read the response, you may use mpd_recv_entity().
 *
 * @param connection the connection to MPD
 * @param path an optional directory to be listed
 * @return true on success, false on error
 */
bool
mpd_send_list_meta(struct mpd_connection *connection, const char *path);

/**
 * Lists the contents of the specified directory, including files that are
 * not recognized by MPD (command "listfiles").
 *
 * To read the response, you may use mpd_recv_entity().  All regular
 * files will be reported as #MPD_ENTITY_TYPE_SONG, even if they are
 * not actually songs.
 *
 * @param connection the connection to MPD
 * @param uri the directory to be listed
 * @return true on success, false on error
 *
 * @since libmpdclient 2.12, MPD 0.19
 */
bool
mpd_send_list_files(struct mpd_connection *connection, const char *uri);

/**
 * Send "readcomments".  Read the "comments" of a song file.  This
 * returns key/value pairs which can be read using mpd_recv_pair().
 *
 * @param connection the connection to MPD
 * @param path the relative path of the song file within the music
 * directory or an arbitrary file path starting with file:///
 * @return true on success, false on error
 *
 * @since libmpdclient 2.9
 */
bool
mpd_send_read_comments(struct mpd_connection *connection, const char *path);

/**
 * Instructs MPD to update the music database: find new files, remove
 * deleted files, update modified files.
 *
 * @param connection the connection to MPD
 * @param path optional path to update; if NULL, then all of the music
 * directory is updated
 * @return true on success, false on error
 */
bool
mpd_send_update(struct mpd_connection *connection, const char *path);

/**
 * Like mpd_send_update(), but also rescans unmodified files.
 *
 * @param connection the connection to MPD
 * @param path optional path to update; if NULL, then all of the music
 * directory is updated
 * @return true on success, false on error
 */
bool
mpd_send_rescan(struct mpd_connection *connection, const char *path);

/**
 * Receives the id of the update job which was submitted by
 * mpd_send_update().
 *
 * @param connection the connection to MPD
 * @return a positive job id on success, 0 on error
 */
unsigned
mpd_recv_update_id(struct mpd_connection *connection);

/**
 * Shortcut for mpd_send_update() and mpd_recv_update_id().
 *
 * @param connection the connection to MPD
 * @param path optional path to update; if NULL, then all of the music
 * directory is updated
 * @return a positive job id on success, 0 on error
 */
unsigned
mpd_run_update(struct mpd_connection *connection, const char *path);

/**
 * Like mpd_run_update(), but also rescans unmodified files.
 *
 * @param connection the connection to MPD
 * @param path optional path to update; if NULL, then all of the music
 * directory is updated
 * @return a positive job id on success, 0 on error
 */
unsigned
mpd_run_rescan(struct mpd_connection *connection, const char *path);

#ifdef __cplusplus
}
#endif

#endif