[Goodies-commits] r1835 - in xfce4-mpc-plugin/trunk: . panel-plugin

Landry Breuil landry at xfce.org
Wed Aug 2 19:50:07 CEST 2006


Author: landry
Date: 2006-08-02 17:50:05 +0000 (Wed, 02 Aug 2006)
New Revision: 1835

Added:
   xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h
Modified:
   xfce4-mpc-plugin/trunk/config.h.in
   xfce4-mpc-plugin/trunk/configure.ac
   xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.c
Log:
- Applied patch from mmassonnet replacing gtk_dialog_new_with_buttons() with xfce_titled_dialog_new_with_buttons()
- improved configure.ac for libmpd detection
- started working on reimplementation of the interface with mpd if libmpd is not detected
(atm, don't try to use/compile if you don't have libmpd installed)
- created skeleton for theses mpd_*() functions


Modified: xfce4-mpc-plugin/trunk/config.h.in
===================================================================
--- xfce4-mpc-plugin/trunk/config.h.in	2006-08-02 09:07:07 UTC (rev 1834)
+++ xfce4-mpc-plugin/trunk/config.h.in	2006-08-02 17:50:05 UTC (rev 1835)
@@ -94,3 +94,7 @@
 
 /* Define to 1 if you need to in order for `stat' and other things to work. */
 #undef _POSIX_SOURCE
+
+/* Define to 1 if using and linking against libmpd */
+#undef HAVE_LIBMPD
+

Modified: xfce4-mpc-plugin/trunk/configure.ac
===================================================================
--- xfce4-mpc-plugin/trunk/configure.ac	2006-08-02 09:07:07 UTC (rev 1834)
+++ xfce4-mpc-plugin/trunk/configure.ac	2006-08-02 17:50:05 UTC (rev 1835)
@@ -31,29 +31,36 @@
 XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.3.22])
 
 dnl check for libmpd presence
+AC_DEFINE(HAVE_LIBMPD, 0)
 
 AC_ARG_WITH(libmpd,
-    AC_HELP_STRING([--with-libmpd=path], [path to libmpd directory]),
+    AC_HELP_STRING([--with-libmpd=path], [path to libmpd base directory]),
         LIBMPD_PATH="$withval", LIBMPD_PATH="")
 
-AC_MSG_CHECKING(whether --libmpd was used)
-if test -n "$LIBMPD_PATH" ; then
-   AC_MSG_RESULT(yes, using $LIBMPD_PATH)
+AC_MSG_CHECKING([whether --libmpd was used])
+if test x"$LIBMPD_PATH" != x"" ; then
+   AC_MSG_RESULT([yes, using $LIBMPD_PATH])
    LIBMPD_CFLAGS="-I${LIBMPD_PATH}/include/"
    LIBMPD_LIBS="-L${LIBMPD_PATH}/lib/ -lmpd"
+   AM_CONDITIONAL(HAVE_LIBMPD, true)
+   AC_SUBST([LIBMPD_CFLAGS])
+   AC_SUBST([LIBMPD_LIBS])
 else
-   AC_MSG_RESULT(no, falling back to pkg-config)
-   PKG_CHECK_MODULES([LIBMPD], [libmpd >= 0.12])
+   AC_MSG_RESULT([no, falling back to pkg-config])
+   XDT_CHECK_OPTIONAL_PACKAGE([LIBMPD], [libmpd], [0.12], [libmpd], [libmpd])
+   if test x"$LIBMPD_FOUND" = x"yes"; then
+      AM_CONDITIONAL(HAVE_LIBMPD, true)
+      echo "* Build with libmpd: yes"
+   else
+      echo "* Build with libmpd: no, falling back to our implementation"
+   fi
 fi
 
-
 dnl Translations
 XDT_I18N([])
 
 dnl Check for debugging support
 XDT_FEATURE_DEBUG()
-AC_SUBST([LIBMPD_CFLAGS])
-AC_SUBST([LIBMPD_LIBS])
 AC_OUTPUT([
 Makefile
 panel-plugin/Makefile

Modified: xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.c
===================================================================
--- xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.c	2006-08-02 09:07:07 UTC (rev 1834)
+++ xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.c	2006-08-02 17:50:05 UTC (rev 1835)
@@ -17,45 +17,39 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
  
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
 #include <stdio.h>
 #include <string.h>
 
-#include <gtk/gtk.h>
 #include <libxfce4util/libxfce4util.h>
 #include <libxfcegui4/libxfcegui4.h>
-#include <libxfce4panel/xfce-panel-plugin.h>
 
-#include <libmpd/libmpd.h>
-
 #define DEFAULT_MPD_HOST "localhost"
 #define DEFAULT_MPD_PORT 6600
 #define DIALOG_ENTRY_WIDTH 15
 
-typedef struct {
-   XfcePanelPlugin *plugin;
-   GtkTooltips *tips;
-   GtkWidget *frame,*ebox,*box,*prev,*stop,*play,*next;
-   /* mpd handle */
-   MpdObj *mo;
-   gchar* mpd_host;
-   gint mpd_port;
-   gchar * mpd_password;
-   gboolean show_frame;
-/* gboolean stay_connected; */
-} t_mpc;
+#include "xfce4-mpc-plugin.h"
 
-typedef struct {
-   t_mpc *mpc;
-   GtkWidget *textbox_host;
-   GtkWidget *textbox_port;
-   GtkWidget *textbox_password;
-   GtkWidget *checkbox_frame;
-/* GtkWidget *checkbox_connected; */
-} t_mpc_dialog;
+#ifndef HAVE_LIBMPD
+MpdObj* mpd_new(char* host, int port, char* pass)
+{
+}
+void mpd_free(MpdObj* mo){}
+void mpd_connect(MpdObj* mo){}
+int mpd_status_get_volume(MpdObj* mo){}
+void mpd_status_set_volume(MpdObj* mo, int newvol){}
+int mpd_status_update(MpdObj* mo){}
+int mpd_player_get_state(MpdObj* mo){}
+int mpd_player_prev(MpdObj* mo){}
+int mpd_player_next(MpdObj* mo){}
+int mpd_player_stop(MpdObj* mo){}
+int mpd_player_play(MpdObj* mo){}
+mpd_Song* mpd_playlist_get_current_song(MpdObj* mo){}
+int mpd_check_error(MpdObj* mo){}
+void mpd_set_hostname(MpdObj* mo, char* host){}
+void mpd_set_password(MpdObj* mo, char* pass){}
+void mpd_send_password(MpdObj* mo){}
+void mpd_set_port(MpdObj* mo,int port){}
+#endif
 
 static void
 mpc_free (XfcePanelPlugin * plugin, t_mpc * mpc)
@@ -233,28 +227,19 @@
 
    xfce_panel_plugin_block_menu (plugin);
 
-   dlg = gtk_dialog_new_with_buttons (_("Properties"),
-                                       GTK_WINDOW (gtk_widget_get_toplevel
-                                                   (GTK_WIDGET (plugin))),
-                                       GTK_DIALOG_DESTROY_WITH_PARENT |
-                                       GTK_DIALOG_NO_SEPARATOR,
-                                       GTK_STOCK_CLOSE, GTK_RESPONSE_OK,
-                                       NULL);
+   dlg = xfce_titled_dialog_new_with_buttons (_("Mpd Client Plugin"),
+                                              NULL,
+                                              GTK_DIALOG_NO_SEPARATOR,
+                                              GTK_STOCK_CLOSE,
+                                              GTK_RESPONSE_OK,
+                                              NULL);
+   xfce_titled_dialog_set_subtitle (XFCE_TITLED_DIALOG (dlg), _("Properties"));
 
+   gtk_window_set_position   (GTK_WINDOW (dlg), GTK_WIN_POS_CENTER);
+   gtk_window_set_icon_name  (GTK_WINDOW (dlg), "xfce-multimedia");
+
    g_signal_connect (dlg, "response", G_CALLBACK (mpc_dialog_response), dialog);
 
-   gtk_container_set_border_width (GTK_CONTAINER (dlg), 2);
-
-   pb = xfce_themed_icon_load ("xfce4-panel", 48);
-   gtk_window_set_icon (GTK_WINDOW (dlg), pb);
-   g_object_unref (pb);
-
-   header = xfce_create_header (NULL, _("Mpd Client Plugin"));
-   gtk_widget_set_size_request (GTK_BIN (header)->child, -1, 32);
-   gtk_container_set_border_width (GTK_CONTAINER (header), 5);
-   gtk_widget_show (header);
-   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), header, FALSE, TRUE, 0);
-
    vbox = gtk_vbox_new (FALSE, 8);
    gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
    gtk_widget_show (vbox);

Added: xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h
===================================================================
--- xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h	                        (rev 0)
+++ xfce4-mpc-plugin/trunk/panel-plugin/xfce4-mpc-plugin.h	2006-08-02 17:50:05 UTC (rev 1835)
@@ -0,0 +1,88 @@
+/* xfce4-mpc-plugin.h
+ * 
+ * Copyright (c) 2006 Landry Breuil (landry at fr.homeunix.org / gaston at gcu.info)
+ * This code is licenced under a BSD-style licence. 
+ * (OpenBSD variant modeled after the ISC licence)
+ * All rights reserved.
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+ 
+#include <gtk/gtk.h>
+#include <libxfce4panel/xfce-panel-plugin.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_LIBMPD
+#include <libmpd/libmpd.h>
+#else
+
+#define MPD_PLAYER_STOP 1
+#define MPD_PLAYER_PLAY 2
+#define MPD_PLAYER_PAUSE 3
+#define MPD_OK 0
+
+typedef struct {
+
+} MpdObj;
+
+typedef struct {
+   char* artist;
+   char* album;
+   char* track;
+   char* title;
+} mpd_Song;
+
+MpdObj* mpd_new(char*,int,char*);
+void mpd_free(MpdObj*);
+void mpd_connect(MpdObj*);
+int mpd_status_get_volume(MpdObj*);
+void mpd_status_set_volume(MpdObj*,int);
+int mpd_status_update(MpdObj*);
+int mpd_player_get_state(MpdObj*);
+int mpd_player_prev(MpdObj*);
+int mpd_player_next(MpdObj*);
+int mpd_player_stop(MpdObj*);
+int mpd_player_play(MpdObj*);
+mpd_Song* mpd_playlist_get_current_song(MpdObj*);
+int mpd_check_error(MpdObj*);
+void mpd_set_hostname(MpdObj*,char*);
+void mpd_set_password(MpdObj*,char*);
+void mpd_send_password(MpdObj*);
+void mpd_set_port(MpdObj*,int);
+
+#endif
+
+typedef struct {
+   XfcePanelPlugin *plugin;
+   GtkTooltips *tips;
+   GtkWidget *frame,*ebox,*box,*prev,*stop,*play,*next;
+   /* mpd handle */
+   MpdObj *mo;
+   gchar* mpd_host;
+   gint mpd_port;
+   gchar * mpd_password;
+   gboolean show_frame;
+/* gboolean stay_connected; */
+} t_mpc;
+
+typedef struct {
+   t_mpc *mpc;
+   GtkWidget *textbox_host;
+   GtkWidget *textbox_port;
+   GtkWidget *textbox_password;
+   GtkWidget *checkbox_frame;
+/* GtkWidget *checkbox_connected; */
+} t_mpc_dialog;
+




More information about the Goodies-commits mailing list