1 /* GStreamer 2 * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu> 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public 15 * License along with this library; if not, write to the 16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 * Boston, MA 02110-1301, USA. 18 */ 19 20 21 #ifndef __GST_SHOUT2SEND_H__ 22 #define __GST_SHOUT2SEND_H__ 23 24 #include <gst/gst.h> 25 #include <gst/base/gstbasesink.h> 26 #include <shout/shout.h> 27 28 G_BEGIN_DECLS 29 30 /* Protocol type enum */ 31 typedef enum { 32 SHOUT2SEND_PROTOCOL_XAUDIOCAST = 1, 33 SHOUT2SEND_PROTOCOL_ICY, 34 SHOUT2SEND_PROTOCOL_HTTP 35 } GstShout2SendProtocol; 36 37 38 #define GST_TYPE_SHOUT2SEND (gst_shout2send_get_type()) 39 G_DECLARE_FINAL_TYPE (GstShout2send, gst_shout2send, GST, SHOUT2SEND, 40 GstBaseSink) 41 42 struct _GstShout2send { 43 GstBaseSink parent; 44 45 GstShout2SendProtocol protocol; 46 47 GstPoll *timer; 48 49 shout_t *conn; 50 51 guint64 prev_queuelen; 52 guint64 data_sent; 53 GstClockTime datasent_reset_ts; 54 gboolean stalled; 55 GstClockTime stalled_ts; 56 57 gchar *ip; 58 guint port; 59 gchar *password; 60 gchar *username; 61 gchar *streamname; 62 gchar *description; 63 gchar *genre; 64 gchar *mount; 65 gchar *url; 66 gboolean connected; 67 gboolean ispublic; 68 gchar *songmetadata; 69 gchar *songartist; 70 gchar *songtitle; 71 gint format; 72 guint timeout; 73 74 GstTagList* tags; 75 }; 76 77 GST_ELEMENT_REGISTER_DECLARE (shout2send); 78 79 G_END_DECLS 80 81 #endif /* __GST_SHOUT2SEND_H__ */ 82