libmpdclient  2.7
mpd/message.h
Go to the documentation of this file.
00001 /* libmpdclient
00002    (c) 2003-2010 The Music Player Daemon Project
00003    This project's homepage is: http://www.musicpd.org
00004 
00005    Redistribution and use in source and binary forms, with or without
00006    modification, are permitted provided that the following conditions
00007    are met:
00008 
00009    - Redistributions of source code must retain the above copyright
00010    notice, this list of conditions and the following disclaimer.
00011 
00012    - Redistributions in binary form must reproduce the above copyright
00013    notice, this list of conditions and the following disclaimer in the
00014    documentation and/or other materials provided with the distribution.
00015 
00016    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00017    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00018    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
00019    A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
00020    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00021    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00022    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00023    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00024    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00025    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00026    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027 */
00028 
00035 #ifndef MPD_MESSAGE_H
00036 #define MPD_MESSAGE_H
00037 
00038 #include <mpd/recv.h>
00039 #include <mpd/compiler.h>
00040 
00041 #include <stdbool.h>
00042 
00043 struct mpd_pair;
00047 struct mpd_message;
00048 struct mpd_connection;
00049 
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif
00053 
00061 mpd_malloc
00062 struct mpd_message *
00063 mpd_message_begin(const struct mpd_pair *pair);
00064 
00073 bool
00074 mpd_message_feed(struct mpd_message *output, const struct mpd_pair *pair);
00075 
00079 void
00080 mpd_message_free(struct mpd_message *message);
00081 
00085 mpd_pure
00086 const char *
00087 mpd_message_get_channel(const struct mpd_message *message);
00088 
00092 mpd_pure
00093 const char *
00094 mpd_message_get_text(const struct mpd_message *message);
00095 
00103 bool
00104 mpd_send_subscribe(struct mpd_connection *connection, const char *channel);
00105 
00113 bool
00114 mpd_run_subscribe(struct mpd_connection *connection, const char *channel);
00115 
00124 bool
00125 mpd_send_unsubscribe(struct mpd_connection *connection, const char *channel);
00126 
00134 bool
00135 mpd_run_unsubscribe(struct mpd_connection *connection, const char *channel);
00136 
00145 bool
00146 mpd_send_send_message(struct mpd_connection *connection,
00147                       const char *channel, const char *text);
00148 
00157 bool
00158 mpd_run_send_message(struct mpd_connection *connection,
00159                      const char *channel, const char *text);
00160 
00167 bool
00168 mpd_send_read_messages(struct mpd_connection *connection);
00169 
00177 mpd_malloc
00178 struct mpd_message *
00179 mpd_recv_message(struct mpd_connection *connection);
00180 
00187 bool
00188 mpd_send_channels(struct mpd_connection *connection);
00189 
00200 mpd_malloc
00201 static inline struct mpd_pair *
00202 mpd_recv_channel_pair(struct mpd_connection *connection)
00203 {
00204         return mpd_recv_pair_named(connection, "channel");
00205 }
00206 
00207 #ifdef __cplusplus
00208 }
00209 #endif
00210 
00211 #endif