[Xfce4-commits] r26566 - in xfce4-mixer/trunk: . icons icons/16x16 icons/24x24 icons/48x48 icons/scalable pixmaps po xfce4-mixer

Jannis Pohlmann jannis at xfce.org
Sun Jan 13 20:27:18 CET 2008


Author: jannis
Date: 2008-01-13 19:27:18 +0000 (Sun, 13 Jan 2008)
New Revision: 26566

Added:
   xfce4-mixer/trunk/po/xfce4-mixer.pot
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.h
Modified:
   xfce4-mixer/trunk/
   xfce4-mixer/trunk/ChangeLog
   xfce4-mixer/trunk/Makefile.am
   xfce4-mixer/trunk/autogen.sh
   xfce4-mixer/trunk/configure.in.in
   xfce4-mixer/trunk/icons/
   xfce4-mixer/trunk/icons/16x16/
   xfce4-mixer/trunk/icons/24x24/
   xfce4-mixer/trunk/icons/48x48/
   xfce4-mixer/trunk/icons/scalable/
   xfce4-mixer/trunk/pixmaps/
   xfce4-mixer/trunk/po/
   xfce4-mixer/trunk/po/ChangeLog
   xfce4-mixer/trunk/po/POTFILES.in
   xfce4-mixer/trunk/po/de.po
   xfce4-mixer/trunk/xfce4-mixer/
   xfce4-mixer/trunk/xfce4-mixer/Makefile.am
   xfce4-mixer/trunk/xfce4-mixer/main.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.h
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.h
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.h
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.h
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.h
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.h
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.h
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.h
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.c
   xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.h
   xfce4-mixer/trunk/xfce4-mixer/xfce4-mixer.desktop.in.in
Log:
	* xfce4-mixer.pot: Merge strings.
	* de.po: Update German translations. 
 	* xfce4-mixer-card.{c,h}: Add XfceMixerCard class as a wrapper for
	  GstMixer. Implement a method (xfce_mixer_card_get_name()) to
	  work-around problems with sound card names containing characters
	  not allowed as section names (see Desktop Entry specification). 
	  This method is now used to store/load preferences of soundcards.
	* xfce4-mixer/xfce-mixer.{c,h}, 
	  xfce4-mixer/xfce-mixer-controls-dialog.{c,h}, 
	  xfce4-mixer/xfce-mixer-option.{c,h},
	  xfce4-mixer/xfce-mixer-switch.{c,h},
	  xfce4-mixer/xfce-mixer-track.{c,h}
	  xfce4-mixer/xfce-mixer-window.{c,h}: Use XfceMixerCard instead of
	  GstMixer everywhere. Change the main window subtitle to something
	  less enthusiastic. 


Property changes on: xfce4-mixer/trunk
___________________________________________________________________
Name: svn:ignore
   - Makefile
Makefile.in
aclocal.m4
autom4te.cache
compile
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
depcomp
install-sh
intltool-extract
intltool-extract.in
intltool-merge
intltool-merge.in
intltool-update
intltool-update.in
libtool
ltmain.sh
missing
mkinstalldirs
xfce4-mixer.spec
stamp-*

   + Makefile
Makefile.in
aclocal.m4
autom4te.cache
compile
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
configure.in
depcomp
install-sh
intltool-extract
intltool-extract.in
intltool-merge
intltool-merge.in
intltool-update
intltool-update.in
libtool
ltmain.sh
missing
mkinstalldirs
xfce4-mixer.spec
stamp-*


Modified: xfce4-mixer/trunk/ChangeLog
===================================================================
--- xfce4-mixer/trunk/ChangeLog	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/ChangeLog	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,5 +1,21 @@
 2008-01-13	Jannis Pohlmann <jannis at xfce.org>
 
+	* xfce4-mixer-card.{c,h}: Add XfceMixerCard class as a wrapper for
+	  GstMixer. Implement a method (xfce_mixer_card_get_name()) to
+	  work-around problems with sound card names containing characters
+	  not allowed as section names (see Desktop Entry specification). 
+	  This method is now used to store/load preferences of soundcards.
+	* xfce4-mixer/xfce-mixer.{c,h}, 
+	  xfce4-mixer/xfce-mixer-controls-dialog.{c,h}, 
+	  xfce4-mixer/xfce-mixer-option.{c,h},
+	  xfce4-mixer/xfce-mixer-switch.{c,h},
+	  xfce4-mixer/xfce-mixer-track.{c,h}
+	  xfce4-mixer/xfce-mixer-window.{c,h}: Use XfceMixerCard instead of
+	  GstMixer everywhere. Change the main window subtitle to something
+	  less enthusiastic. 
+
+2008-01-13	Jannis Pohlmann <jannis at xfce.org>
+
 	* xfce4-mixer/xfce-mixer-controls-dialog.c: Don't set the default
 	  response of the dialog.
 


Property changes on: xfce4-mixer/trunk/Makefile.am
___________________________________________________________________
Name: svn:keywords
   - Author Date Id Rev
   + Id Author Date Revision


Property changes on: xfce4-mixer/trunk/autogen.sh
___________________________________________________________________
Name: svn:keywords
   - Author Date Id Rev
   + Id Author Date Revision


Property changes on: xfce4-mixer/trunk/configure.in.in
___________________________________________________________________
Name: svn:keywords
   - Author Date Id Revision
   + Id Author Date Revision


Property changes on: xfce4-mixer/trunk/icons
___________________________________________________________________
Name: svn:ignore
   + Makefile
Makefile.in



Property changes on: xfce4-mixer/trunk/icons/16x16
___________________________________________________________________
Name: svn:ignore
   + Makefile
Makefile.in



Property changes on: xfce4-mixer/trunk/icons/24x24
___________________________________________________________________
Name: svn:ignore
   + Makefile
Makefile.in



Property changes on: xfce4-mixer/trunk/icons/48x48
___________________________________________________________________
Name: svn:ignore
   + Makefile
Makefile.in



Property changes on: xfce4-mixer/trunk/icons/scalable
___________________________________________________________________
Name: svn:ignore
   + Makefile
Makefile.in



Property changes on: xfce4-mixer/trunk/pixmaps
___________________________________________________________________
Name: svn:ignore
   + Makefile
Makefile.in



Property changes on: xfce4-mixer/trunk/po
___________________________________________________________________
Name: svn:ignore
   + POTFILES
Makefile
Makefile.in
Makefile.in.in
*.gmo
stamp-it


Modified: xfce4-mixer/trunk/po/ChangeLog
===================================================================
--- xfce4-mixer/trunk/po/ChangeLog	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/po/ChangeLog	2008-01-13 19:27:18 UTC (rev 26566)
@@ -0,0 +1,6 @@
+2008-01-13	Jannis Pohlmann <jannis at xfce.org>
+
+	* xfce4-mixer.pot: Merge strings.
+	* de.po: Update German translations.
+
+vim:set sw=8 sts=8 ts=8 noexpandtab:

Modified: xfce4-mixer/trunk/po/POTFILES.in
===================================================================
--- xfce4-mixer/trunk/po/POTFILES.in	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/po/POTFILES.in	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,7 +1,12 @@
 xfce4-mixer/main.c
 xfce4-mixer/xfce-mixer.c
+xfce4-mixer/xfce-mixer-card.c
+xfce4-mixer/xfce-mixer-controls-dialog.c
+xfce4-mixer/xfce-mixer-option.c
+xfce4-mixer/xfce-mixer-preferences.c
+xfce4-mixer/xfce-mixer-stock.c
+xfce4-mixer/xfce-mixer-switch.c
 xfce4-mixer/xfce-mixer-track.c
 xfce4-mixer/xfce-mixer-track-type.c
 xfce4-mixer/xfce-mixer-window.c
 xfce4-mixer/xfce4-mixer.desktop.in.in
-xfce4-mixer/xfce-mixer-controls-dialog.c

Modified: xfce4-mixer/trunk/po/de.po
===================================================================
--- xfce4-mixer/trunk/po/de.po	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/po/de.po	2008-01-13 19:27:18 UTC (rev 26566)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: xfce4-mixer SVN\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-01-08 05:46+0100\n"
+"POT-Creation-Date: 2008-01-13 21:17+0100\n"
 "PO-Revision-Date: 2008-01-06 04:59+0100\n"
 "Last-Translator: Jannis Pohlmann <jannis at xfce.org>\n"
 "Language-Team: German <de at li.org>\n"
@@ -16,35 +16,35 @@
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Set application name
-#: ../xfce4-mixer/main.c:75 ../xfce4-mixer/xfce-mixer-window.c:181
-#: ../xfce4-mixer/xfce-mixer-window.c:199
-#: ../xfce4-mixer/xfce-mixer-window.c:362
-#: ../xfce4-mixer/xfce-mixer-window.c:367
+#: ../xfce4-mixer/main.c:75 ../xfce4-mixer/xfce-mixer-window.c:182
+#: ../xfce4-mixer/xfce-mixer-window.c:200
+#: ../xfce4-mixer/xfce-mixer-window.c:370
+#: ../xfce4-mixer/xfce-mixer-window.c:375
 #: ../xfce4-mixer/xfce4-mixer.desktop.in.in.h:2
 msgid "Xfce Mixer"
 msgstr "Xfce-Lautstärkeregelung"
 
-#: ../xfce4-mixer/xfce-mixer.c:168
+#: ../xfce4-mixer/xfce-mixer.c:162
 msgid "Playback"
 msgstr "Wiedergabe"
 
-#: ../xfce4-mixer/xfce-mixer.c:168
+#: ../xfce4-mixer/xfce-mixer.c:162
 msgid "Capture"
 msgstr "Aufnahme"
 
-#: ../xfce4-mixer/xfce-mixer.c:168
+#: ../xfce4-mixer/xfce-mixer.c:162
 msgid "Switches"
 msgstr "Schalter"
 
-#: ../xfce4-mixer/xfce-mixer.c:168
+#: ../xfce4-mixer/xfce-mixer.c:162
 msgid "Options"
 msgstr "Optionen"
 
-#: ../xfce4-mixer/xfce-mixer.c:300
+#: ../xfce4-mixer/xfce-mixer.c:289
 msgid "No Controls Visible"
 msgstr "Keine Bedienelemente sichtbar"
 
-#: ../xfce4-mixer/xfce-mixer.c:304
+#: ../xfce4-mixer/xfce-mixer.c:293
 msgid ""
 "No controls are marked as visible. Please open the <span "
 "size='large'><b>Select Controls</b></span> dialog to select some."
@@ -53,33 +53,47 @@
 "<span size='large'><b>Elemente auswählen</b></span>, damit etwas angezeigt "
 "wird."
 
-#: ../xfce4-mixer/xfce-mixer-window.c:94
+#: ../xfce4-mixer/xfce-mixer-controls-dialog.c:129
+msgid "Select Controls"
+msgstr "Elemente au_swählen"
+
+#: ../xfce4-mixer/xfce-mixer-controls-dialog.c:131
+msgid "Please select which controls you want to be visible"
+msgstr "Auswählen, welche Bedienelemente angezeigt werden sollen"
+
+#: ../xfce4-mixer/xfce-mixer-window.c:95
 msgid "_Quit"
 msgstr "B_eenden"
 
-#: ../xfce4-mixer/xfce-mixer-window.c:94
+#: ../xfce4-mixer/xfce-mixer-window.c:95
 msgid "Exit Xfce Mixer"
 msgstr "Beende die Xfce Lautstärkeregelung"
 
-#: ../xfce4-mixer/xfce-mixer-window.c:96
+#: ../xfce4-mixer/xfce-mixer-window.c:97
 msgid "_Select Controls..."
 msgstr "Elemente au_swählen..."
 
-#: ../xfce4-mixer/xfce-mixer-window.c:96
+#: ../xfce4-mixer/xfce-mixer-window.c:97
 msgid "Select which controls are displayed"
 msgstr "Auswählen, welche Bedienelemente angezeigt werden"
 
-#: ../xfce4-mixer/xfce-mixer-window.c:200
-msgid "A reliable and comfortable mixer for your soundcard, finally!"
-msgstr ""
-"Endlich! Eine zuverlässige und komfortable Lautstärkeregelung für deine "
-"Soundkarte!"
+#: ../xfce4-mixer/xfce-mixer-window.c:201
+msgid "A comfortable audio mixer for your sound card."
+msgstr "Eine komfortable Lautstärkeregelung für deine Soundkarte."
 
-#: ../xfce4-mixer/xfce-mixer-window.c:215
+#: ../xfce4-mixer/xfce-mixer-window.c:216
 msgid "Sound card:"
 msgstr "Soundkarte:"
 
-#: ../xfce4-mixer/xfce-mixer-window.c:437
+#: ../xfce4-mixer/xfce-mixer-window.c:315
+msgid ""
+"No sound cards could be found. You may have to install additional gstreamer "
+"packages for ALSA or OSS support."
+msgstr ""
+"Es konnten keine Soundkarten gefunden werden. Gegebenenfalls sind "
+"zusätzliche GStreamer-Pakete für ALSA- und OSS-Unterstützung zu installieren."
+
+#: ../xfce4-mixer/xfce-mixer-window.c:445
 #, c-format
 msgid "Unknown Volume Control %d"
 msgstr "Unbekanntes Element %d"

Added: xfce4-mixer/trunk/po/xfce4-mixer.pot
===================================================================
--- xfce4-mixer/trunk/po/xfce4-mixer.pot	                        (rev 0)
+++ xfce4-mixer/trunk/po/xfce4-mixer.pot	2008-01-13 19:27:18 UTC (rev 26566)
@@ -0,0 +1,99 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-01-13 21:17+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Set application name
+#: ../xfce4-mixer/main.c:75 ../xfce4-mixer/xfce-mixer-window.c:182
+#: ../xfce4-mixer/xfce-mixer-window.c:200
+#: ../xfce4-mixer/xfce-mixer-window.c:370
+#: ../xfce4-mixer/xfce-mixer-window.c:375
+#: ../xfce4-mixer/xfce4-mixer.desktop.in.in.h:2
+msgid "Xfce Mixer"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer.c:162
+msgid "Playback"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer.c:162
+msgid "Capture"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer.c:162
+msgid "Switches"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer.c:162
+msgid "Options"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer.c:289
+msgid "No Controls Visible"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer.c:293
+msgid ""
+"No controls are marked as visible. Please open the <span "
+"size='large'><b>Select Controls</b></span> dialog to select some."
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-controls-dialog.c:129
+msgid "Select Controls"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-controls-dialog.c:131
+msgid "Please select which controls you want to be visible"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-window.c:95
+msgid "_Quit"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-window.c:95
+msgid "Exit Xfce Mixer"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-window.c:97
+msgid "_Select Controls..."
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-window.c:97
+msgid "Select which controls are displayed"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-window.c:201
+msgid "A comfortable audio mixer for your sound card."
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-window.c:216
+msgid "Sound card:"
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-window.c:315
+msgid ""
+"No sound cards could be found. You may have to install additional gstreamer "
+"packages for ALSA or OSS support."
+msgstr ""
+
+#: ../xfce4-mixer/xfce-mixer-window.c:445
+#, c-format
+msgid "Unknown Volume Control %d"
+msgstr ""
+
+#: ../xfce4-mixer/xfce4-mixer.desktop.in.in.h:1
+msgid "Audio mixer for the Xfce Desktop Environment"
+msgstr ""


Property changes on: xfce4-mixer/trunk/xfce4-mixer
___________________________________________________________________
Name: svn:ignore
   + xfce4-mixer.desktop
*.swp
.libs
.deps
Makefile
Makefile.in
*.o
xfce4-mixer


Modified: xfce4-mixer/trunk/xfce4-mixer/Makefile.am
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/Makefile.am	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/Makefile.am	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-# $Id: Makefile.am 1837 2006-08-02 21:11:40Z jannis $
+# $Id$
 # vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
 
 bin_PROGRAMS =								\
@@ -6,6 +6,8 @@
 
 xfce4_mixer_SOURCES =							\
 	main.c								\
+	xfce-mixer-card.c						\
+	xfce-mixer-card.h						\
 	xfce-mixer-stock.c						\
 	xfce-mixer-stock.h						\
 	xfce-mixer-track-type.c						\


Property changes on: xfce4-mixer/trunk/xfce4-mixer/Makefile.am
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/main.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/main.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/main.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>


Property changes on: xfce4-mixer/trunk/xfce4-mixer/main.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Added: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.c	                        (rev 0)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -0,0 +1,307 @@
+/* $Id$ */
+/* vim:set sw=2 sts=2 ts=2 et ai: */
+/*-
+ * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your card) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include <libxfce4util/libxfce4util.h>
+#include <libxfcegui4/libxfcegui4.h>
+
+#include <gst/gst.h>
+#include <gst/interfaces/mixer.h>
+
+#include "xfce-mixer-card.h"
+#include "xfce-mixer-preferences.h"
+
+
+
+static void xfce_mixer_card_class_init (XfceMixerCardClass *klass);
+static void xfce_mixer_card_init       (XfceMixerCard      *card);
+static void xfce_mixer_card_finalize   (GObject            *object);
+
+
+
+struct _XfceMixerCardClass
+{
+  GObjectClass __parent__;
+};
+
+struct _XfceMixerCard
+{
+  GObject __parent__;
+
+  GstElement *element;
+
+  gchar      *display_name;
+  gchar      *name;
+};
+
+
+
+static GObjectClass *xfce_mixer_card_parent_class = NULL;
+
+
+
+GType
+xfce_mixer_card_get_type (void)
+{
+  static GType type = G_TYPE_INVALID;
+
+  if (G_UNLIKELY (type == G_TYPE_INVALID))
+    {
+      static const GTypeInfo info = 
+        {
+          sizeof (XfceMixerCardClass),
+          NULL,
+          NULL,
+          (GClassInitFunc) xfce_mixer_card_class_init,
+          NULL,
+          NULL,
+          sizeof (XfceMixerCard),
+          0,
+          (GInstanceInitFunc) xfce_mixer_card_init,
+          NULL,
+        };
+
+      type = g_type_register_static (G_TYPE_OBJECT, "XfceMixerCard", &info, 0);
+    }
+  
+  return type;
+}
+
+
+
+static void
+xfce_mixer_card_class_init (XfceMixerCardClass *klass)
+{
+  GObjectClass *gobject_class;
+
+  /* Determine parent type class */
+  xfce_mixer_card_parent_class = g_type_class_peek_parent (klass);
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gobject_class->finalize = xfce_mixer_card_finalize;
+}
+
+
+
+static void
+xfce_mixer_card_init (XfceMixerCard *card)
+{
+  card->name = NULL;
+}
+
+
+
+static void
+xfce_mixer_card_finalize (GObject *object)
+{
+  XfceMixerCard *card = XFCE_MIXER_CARD (object);
+
+  gst_element_set_state (card->element, GST_STATE_NULL);
+  gst_object_unref (card->element);
+
+  g_free (card->display_name);
+  g_free (card->name);
+
+  (*G_OBJECT_CLASS (xfce_mixer_card_parent_class)->finalize) (object);
+}
+
+
+
+XfceMixerCard*
+xfce_mixer_card_new (GstElement *element)
+{
+  XfceMixerCard *card;
+
+  card = g_object_new (TYPE_XFCE_MIXER_CARD, NULL);
+  card->element = gst_object_ref (element);
+  card->display_name = g_strdup (g_object_get_data (G_OBJECT (card->element), "xfce-mixer-control-name"));
+
+  return card;
+}
+
+
+
+const gchar*
+xfce_mixer_card_get_display_name (XfceMixerCard *card)
+{
+  g_return_val_if_fail (IS_XFCE_MIXER_CARD (card), NULL);
+  return card->display_name;
+}
+
+
+
+const gchar*
+xfce_mixer_card_get_name (XfceMixerCard *card)
+{
+  gint   i;
+  gint   pos = 0;
+
+  g_return_val_if_fail (IS_XFCE_MIXER_CARD (card), NULL);
+
+  if (G_UNLIKELY (card->name == NULL))
+    {
+      card->name = g_new (gchar, strlen (card->display_name));
+
+      for (i = 0; card->display_name[i] != '\0'; ++i)
+        if (g_ascii_isalnum (card->display_name[i]))
+          card->name[pos++] = card->display_name[i];
+
+      card->name[pos] = '\0';
+    }
+
+  return card->name;
+}
+
+
+
+void
+xfce_mixer_card_set_ready (XfceMixerCard *card)
+{
+  g_return_if_fail (IS_XFCE_MIXER_CARD (card));
+  gst_element_set_state (card->element, GST_STATE_READY);
+}
+
+
+
+GList*
+xfce_mixer_card_get_visible_controls (XfceMixerCard *card)
+{
+  XfceMixerPreferences *preferences;
+  GList                *list = NULL;
+
+  g_return_val_if_fail (IS_XFCE_MIXER_CARD (card), NULL);
+
+  preferences = xfce_mixer_preferences_get ();
+  list = xfce_mixer_preferences_get_visible_controls (preferences, xfce_mixer_card_get_name (card));
+  g_object_unref (G_OBJECT (preferences));
+
+  return list;
+}
+
+
+
+const GList*
+xfce_mixer_card_get_tracks (XfceMixerCard *card)
+{
+  g_return_val_if_fail (IS_XFCE_MIXER_CARD (card), NULL);
+  return gst_mixer_list_tracks (GST_MIXER (card->element));
+}
+
+
+
+void
+xfce_mixer_card_set_control_visible (XfceMixerCard *card,
+                                     const gchar   *control,
+                                     gboolean       visible)
+{
+  XfceMixerPreferences *preferences;
+
+  g_return_if_fail (IS_XFCE_MIXER_CARD (card));
+  g_return_if_fail (control != NULL);
+
+  preferences = xfce_mixer_preferences_get ();
+  xfce_mixer_preferences_set_control_visible (preferences, xfce_mixer_card_get_name (card), control, visible);
+  g_object_unref (G_OBJECT (preferences));
+}
+
+
+
+void
+xfce_mixer_card_get_track_volume (XfceMixerCard *card,
+                                  GstMixerTrack *track,
+                                  gint          *volumes)
+{
+  g_return_if_fail (IS_XFCE_MIXER_CARD (card));
+  g_return_if_fail (GST_IS_MIXER_TRACK (track));
+
+  gst_mixer_get_volume (GST_MIXER (card->element), track, volumes);
+}
+
+
+
+void
+xfce_mixer_card_set_track_volume (XfceMixerCard *card,
+                                  GstMixerTrack *track,
+                                  gint          *volumes)
+{
+  g_return_if_fail (IS_XFCE_MIXER_CARD (card));
+  g_return_if_fail (GST_IS_MIXER_TRACK (track));
+
+  gst_mixer_set_volume (GST_MIXER (card->element), track, volumes);
+}
+
+
+
+void
+xfce_mixer_card_set_track_muted (XfceMixerCard *card,
+                                 GstMixerTrack *track,
+                                 gboolean       muted)
+{
+  g_return_if_fail (IS_XFCE_MIXER_CARD (card));
+  g_return_if_fail (GST_IS_MIXER_TRACK (track));
+  
+  gst_mixer_set_mute (GST_MIXER (card->element), track, muted);
+}
+
+
+
+void
+xfce_mixer_card_set_track_record (XfceMixerCard *card,
+                                  GstMixerTrack *track,
+                                  gboolean       record)
+{
+  g_return_if_fail (IS_XFCE_MIXER_CARD (card));
+  g_return_if_fail (GST_IS_MIXER_TRACK (track));
+  
+  gst_mixer_set_record (GST_MIXER (card->element), track, record);
+}
+
+
+
+const gchar*
+xfce_mixer_card_get_track_option (XfceMixerCard *card,
+                                  GstMixerTrack *track)
+{
+  g_return_val_if_fail (IS_XFCE_MIXER_CARD (card), NULL);
+  g_return_val_if_fail (GST_IS_MIXER_OPTIONS (track), NULL);
+
+  return gst_mixer_get_option (GST_MIXER (card->element), GST_MIXER_OPTIONS (track));
+}
+
+
+
+void
+xfce_mixer_card_set_track_option (XfceMixerCard *card,
+                                  GstMixerTrack *track,
+                                  gchar         *option)
+{
+  g_return_if_fail (IS_XFCE_MIXER_CARD (card));
+  g_return_if_fail (GST_IS_MIXER_OPTIONS (track));
+
+  gst_mixer_set_option (GST_MIXER (card->element), GST_MIXER_OPTIONS (track), option);
+}


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Added: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.h	                        (rev 0)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -0,0 +1,69 @@
+/* $Id$ */
+/* vim:set sw=2 sts=2 ts=2 et ai: */
+/*-
+ * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __XFCE_MIXER_CARD_H__
+#define __XFCE_MIXER_CARD_H__
+
+#include <gtk/gtk.h>
+#include <gst/interfaces/mixer.h>
+
+G_BEGIN_DECLS;
+
+typedef struct _XfceMixerCardClass XfceMixerCardClass;
+typedef struct _XfceMixerCard      XfceMixerCard;
+
+#define TYPE_XFCE_MIXER_CARD            (xfce_mixer_card_get_type ())
+#define XFCE_MIXER_CARD(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_XFCE_MIXER_CARD, XfceMixerCard))
+#define XFCE_MIXER_CARD_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_XFCE_MIXER_CARD, XfceMixerCardClass))
+#define IS_XFCE_MIXER_CARD(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_XFCE_MIXER_CARD))
+#define IS_XFCE_MIXER_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_XFCE_MIXER_CARD))
+#define XFCE_MIXER_CARD_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_XFCE_MIXER_CARD, XfceMixerCardClass))
+
+GType          xfce_mixer_card_get_type             (void) G_GNUC_CONST;
+
+XfceMixerCard *xfce_mixer_card_new                  (GstElement    *element);
+const gchar   *xfce_mixer_card_get_display_name     (XfceMixerCard *card);
+const gchar   *xfce_mixer_card_get_name             (XfceMixerCard *card);
+void           xfce_mixer_card_set_ready            (XfceMixerCard *card);
+GList         *xfce_mixer_card_get_visible_controls (XfceMixerCard *card);
+const GList   *xfce_mixer_card_get_tracks           (XfceMixerCard *card);
+void           xfce_mixer_card_set_control_visible  (XfceMixerCard *card,
+                                                     const gchar   *control,
+                                                     gboolean       visible);
+void           xfce_mixer_card_get_track_volume     (XfceMixerCard *card,
+                                                     GstMixerTrack *track,
+                                                     gint          *volumes);
+void           xfce_mixer_card_set_track_muted      (XfceMixerCard *card,
+                                                     GstMixerTrack *track,
+                                                     gboolean       muted);
+void           xfce_mixer_card_set_track_record     (XfceMixerCard *card,
+                                                     GstMixerTrack *track,
+                                                     gboolean       record);
+const gchar   *xfce_mixer_card_get_track_option     (XfceMixerCard *card,
+                                                     GstMixerTrack *track);
+void           xfce_mixer_card_set_track_option     (XfceMixerCard *card,
+                                                     GstMixerTrack *track,
+                                                     gchar         *option);
+
+
+G_END_DECLS;
+
+#endif /* !__XFCE_MIXER_CARD_H__ */


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-card.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -61,12 +61,10 @@
   XfceTitledDialog __parent__;
 
   XfceMixerWindow      *parent;
-
   XfceMixerPreferences *preferences;
+  XfceMixerCard        *card;
 
   GtkListStore         *model;
-
-  gchar                *mixer_name;
 };
 
 
@@ -154,8 +152,6 @@
 
   g_object_unref (G_OBJECT (dialog->preferences));
 
-  g_free (dialog->mixer_name);
-
   (*G_OBJECT_CLASS (xfce_mixer_controls_dialog_parent_class)->finalize) (object);
 }
 
@@ -168,7 +164,7 @@
 
   dialog = g_object_new (TYPE_XFCE_MIXER_CONTROLS_DIALOG, NULL);
   dialog->parent = window;
-  dialog->mixer_name = xfce_mixer_window_get_active_card (window);
+  dialog->card = xfce_mixer_window_get_active_card (window);
 
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (dialog->parent));
 
@@ -184,16 +180,16 @@
 {
   GtkTreeViewColumn    *column;
   GtkCellRenderer      *renderer;
+  XfceMixerCard        *card;
   const GList          *iter;
   GtkTreeIter           tree_iter;
   GtkWidget            *view;
   GtkWidget            *frame;
   GtkWidget            *scrollwin;
-  GstMixer             *mixer;
   GList                *item;
   GList                *visible_controls;
 
-  visible_controls = xfce_mixer_preferences_get_visible_controls (dialog->preferences, dialog->mixer_name);
+  visible_controls = xfce_mixer_card_get_visible_controls (dialog->card);
 
   dialog->model = gtk_list_store_new (2, G_TYPE_BOOLEAN, G_TYPE_STRING);
 
@@ -224,11 +220,11 @@
   column = gtk_tree_view_column_new_with_attributes ("Control", renderer, "text", NAME_COLUMN, NULL);
   gtk_tree_view_append_column (GTK_TREE_VIEW (view), column);
 
-  mixer = xfce_mixer_window_get_active_mixer (dialog->parent);
+  card = xfce_mixer_window_get_active_card (dialog->parent);
 
-  if (G_LIKELY (mixer != NULL))
+  if (G_LIKELY (card != NULL))
     {
-      for (iter = gst_mixer_list_tracks (mixer); iter != NULL; iter = g_list_next (iter))
+      for (iter = xfce_mixer_card_get_tracks (dialog->card); iter != NULL; iter = g_list_next (iter))
         {
           item = g_list_find_custom (visible_controls, GST_MIXER_TRACK (iter->data)->label, (GCompareFunc) g_utf8_collate);
           gtk_list_store_append (dialog->model, &tree_iter);
@@ -260,12 +256,12 @@
 
   if (!gtk_cell_renderer_toggle_get_active (renderer))
     {
-      xfce_mixer_preferences_set_control_visible (dialog->preferences, dialog->mixer_name, name, TRUE);
+      xfce_mixer_card_set_control_visible (dialog->card, name, TRUE);
       gtk_list_store_set (dialog->model, &iter, VISIBLE_COLUMN, TRUE, -1);
     }
   else
     {
-      xfce_mixer_preferences_set_control_visible (dialog->preferences, dialog->mixer_name, name, FALSE);
+      xfce_mixer_card_set_control_visible (dialog->card, name, FALSE);
       gtk_list_store_set (dialog->model, &iter, VISIBLE_COLUMN, FALSE, -1);
     }
 


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.h	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-controls-dialog.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -30,6 +30,7 @@
 #include <gst/interfaces/mixer.h>
 
 #include "xfce-mixer-option.h"
+#include "xfce-mixer-card.h"
 
 
 
@@ -52,7 +53,8 @@
 {
   GtkHBox __parent__;
 
-  GstMixer      *element;
+  XfceMixerCard *card;
+
   GstMixerTrack *track;
 };
 
@@ -126,7 +128,8 @@
 {
   XfceMixerOption *option = XFCE_MIXER_OPTION (object);
 
-  gst_object_unref (option->element);
+  g_object_unref (G_OBJECT (option->card));
+
   gst_object_unref (option->track);
 
   (*G_OBJECT_CLASS (xfce_mixer_option_parent_class)->finalize) (object);
@@ -135,16 +138,16 @@
 
 
 GtkWidget*
-xfce_mixer_option_new (GstElement    *element,
+xfce_mixer_option_new (XfceMixerCard *card,
                        GstMixerTrack *track)
 {
   XfceMixerOption *option;
 
-  g_return_val_if_fail (GST_IS_MIXER (element), NULL);
+  g_return_val_if_fail (IS_XFCE_MIXER_CARD (card), NULL);
   g_return_val_if_fail (GST_IS_MIXER_TRACK (track), NULL);
   
   option = g_object_new (TYPE_XFCE_MIXER_OPTION, NULL);
-  option->element = gst_object_ref (element);
+  option->card = XFCE_MIXER_CARD (g_object_ref (card));
   option->track = gst_object_ref (track);
 
   xfce_mixer_option_create_contents (option);
@@ -175,7 +178,7 @@
   gtk_widget_show (label);
 
   options = GST_MIXER_OPTIONS (option->track);
-  active_option = gst_mixer_get_option (GST_MIXER (option->element), GST_MIXER_OPTIONS (option->track));
+  active_option = xfce_mixer_card_get_track_option (option->card, option->track);
 
   combo = gtk_combo_box_new_text ();
 
@@ -207,7 +210,7 @@
 
   if (G_LIKELY (active_option != NULL))
     {
-      gst_mixer_set_option (GST_MIXER (option->element), GST_MIXER_OPTIONS (option->track), active_option);
+      xfce_mixer_card_set_track_option (option->card, option->track, active_option);
       g_free (active_option);
     }
 }


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.h	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -25,6 +25,8 @@
 #include <gtk/gtk.h>
 #include <gst/interfaces/mixer.h>
 
+#include "xfce-mixer-card.h"
+
 G_BEGIN_DECLS;
 
 typedef struct _XfceMixerOptionClass XfceMixerOptionClass;
@@ -39,7 +41,7 @@
 
 GType      xfce_mixer_option_get_type (void) G_GNUC_CONST;
 
-GtkWidget *xfce_mixer_option_new      (GstElement    *element,
+GtkWidget *xfce_mixer_option_new      (XfceMixerCard *card,
                                        GstMixerTrack *track);
 
 G_END_DECLS;


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-option.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.h	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-preferences.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.h	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-stock.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -30,6 +30,7 @@
 #include <gst/interfaces/mixer.h>
 
 #include "xfce-mixer-switch.h"
+#include "xfce-mixer-card.h"
 
 
 
@@ -52,7 +53,8 @@
 {
   GtkHBox __parent__;
 
-  GstMixer      *element;
+  XfceMixerCard *card;
+
   GstMixerTrack *track;
 };
 
@@ -126,7 +128,7 @@
 {
   XfceMixerSwitch *mixer_switch = XFCE_MIXER_SWITCH (object);
 
-  gst_object_unref (mixer_switch->element);
+  g_object_unref (G_OBJECT (mixer_switch->card));
   gst_object_unref (mixer_switch->track);
 
   (*G_OBJECT_CLASS (xfce_mixer_switch_parent_class)->finalize) (object);
@@ -135,16 +137,16 @@
 
 
 GtkWidget*
-xfce_mixer_switch_new (GstElement    *element,
+xfce_mixer_switch_new (XfceMixerCard *card,
                        GstMixerTrack *track)
 {
   XfceMixerSwitch *mixer_switch;
 
-  g_return_val_if_fail (GST_IS_MIXER (element), NULL);
+  g_return_val_if_fail (IS_XFCE_MIXER_CARD (card), NULL);
   g_return_val_if_fail (GST_IS_MIXER_TRACK (track), NULL);
   
   mixer_switch = g_object_new (TYPE_XFCE_MIXER_SWITCH, NULL);
-  mixer_switch->element = gst_object_ref (element);
+  mixer_switch->card = XFCE_MIXER_CARD (g_object_ref (card));
   mixer_switch->track = gst_object_ref (track);
 
   xfce_mixer_switch_create_contents (mixer_switch);
@@ -183,7 +185,7 @@
                            XfceMixerSwitch *mixer_switch)
 {
   if (G_LIKELY (GST_MIXER_TRACK_HAS_FLAG (mixer_switch->track, GST_MIXER_TRACK_INPUT)))
-    gst_mixer_set_record (GST_MIXER (mixer_switch->element), mixer_switch->track, gtk_toggle_button_get_active (button));
+    xfce_mixer_card_set_track_record (mixer_switch->card, mixer_switch->track, gtk_toggle_button_get_active (button));
   else
-    gst_mixer_set_mute (GST_MIXER (mixer_switch->element), mixer_switch->track, !gtk_toggle_button_get_active (button));
+    xfce_mixer_card_set_track_muted (mixer_switch->card, mixer_switch->track, !gtk_toggle_button_get_active (button));
 }


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.h	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -25,6 +25,8 @@
 #include <gtk/gtk.h>
 #include <gst/interfaces/mixer.h>
 
+#include "xfce-mixer-card.h"
+
 G_BEGIN_DECLS;
 
 typedef struct _XfceMixerSwitchClass XfceMixerSwitchClass;
@@ -39,7 +41,7 @@
 
 GType      xfce_mixer_switch_get_type (void) G_GNUC_CONST;
 
-GtkWidget *xfce_mixer_switch_new      (GstElement    *element,
+GtkWidget *xfce_mixer_switch_new      (XfceMixerCard *card,
                                        GstMixerTrack *track);
 
 G_END_DECLS;


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-switch.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.h	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track-type.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -32,6 +32,7 @@
 #include "xfce-mixer-stock.h"
 #include "xfce-mixer-track.h"
 #include "xfce-mixer-track-type.h"
+#include "xfce-mixer-card.h"
 
 
 
@@ -72,7 +73,8 @@
 
   GList         *channel_faders;
 
-  GstMixer      *element;
+  XfceMixerCard *card;
+
   GstMixerTrack *gst_track;
 };
 
@@ -151,7 +153,8 @@
 {
   XfceMixerTrack *track = XFCE_MIXER_TRACK (object);
 
-  gst_object_unref (track->element);
+  g_object_unref (G_OBJECT (track->card));
+
   gst_object_unref (track->gst_track);
 
   (*G_OBJECT_CLASS (xfce_mixer_track_parent_class)->finalize) (object);
@@ -160,16 +163,16 @@
 
 
 GtkWidget*
-xfce_mixer_track_new (GstElement    *element,
+xfce_mixer_track_new (XfceMixerCard *card,
                       GstMixerTrack *gst_track)
 {
   XfceMixerTrack *track;
 
-  g_return_val_if_fail (GST_IS_MIXER (element), NULL);
+  g_return_val_if_fail (IS_XFCE_MIXER_CARD (card), NULL);
   g_return_val_if_fail (GST_IS_MIXER_TRACK (gst_track), NULL);
   
   track = g_object_new (TYPE_XFCE_MIXER_TRACK, NULL);
-  track->element = gst_object_ref (element);
+  track->card = XFCE_MIXER_CARD (g_object_ref (card));
   track->gst_track = gst_object_ref (gst_track);
 
   xfce_mixer_track_create_contents (track);
@@ -196,7 +199,7 @@
 
   /* Get volumes of all channels of the track */
   volumes = g_new (gint, track->gst_track->num_channels);
-  gst_mixer_get_volume (GST_MIXER (track->element), track->gst_track, volumes);
+  xfce_mixer_card_get_track_volume (track->card, track->gst_track, volumes);
 
   /* Put some space between channel faders */
   gtk_table_set_col_spacings (GTK_TABLE (track), 6);
@@ -299,7 +302,7 @@
     }
 
   /* Deliver the volume update to GStreamer */
-  gst_mixer_set_volume (GST_MIXER (track->element), track->gst_track, volumes);
+  xfce_mixer_card_set_track_volume (track->card, track->gst_track, volumes);
 
   /* Free volume array */
   g_free (volumes);
@@ -320,12 +323,12 @@
   if (gtk_toggle_button_get_active (button))
     {
       stock = XFCE_MIXER_STOCK_MUTED;
-      gst_mixer_set_mute (GST_MIXER (track->element), track->gst_track, TRUE);
+      xfce_mixer_card_set_track_muted (track->card, track->gst_track, TRUE);
     }
   else
     {
       stock = XFCE_MIXER_STOCK_NO_MUTED;
-      gst_mixer_set_mute (GST_MIXER (track->element), track->gst_track, FALSE);
+      xfce_mixer_card_set_track_muted (track->card, track->gst_track, FALSE);
     }
 
   image = gtk_image_new_from_stock (stock, XFCE_MIXER_ICON_SIZE);
@@ -386,7 +389,7 @@
     }
 
   /* Deliver the volume update to GStreamer */
-  gst_mixer_set_volume (GST_MIXER (track->element), track->gst_track, volumes);
+  xfce_mixer_card_set_track_volume (track->card, track->gst_track, volumes);
 
   /* Free the volume array */
   g_free (volumes);
@@ -407,12 +410,12 @@
   if (gtk_toggle_button_get_active (button))
     {
       stock = XFCE_MIXER_STOCK_RECORD;
-      gst_mixer_set_record (GST_MIXER (track->element), track->gst_track, TRUE);
+      xfce_mixer_card_set_track_record (track->card, track->gst_track, TRUE);
     }
   else
     {
       stock = XFCE_MIXER_STOCK_NO_RECORD;
-      gst_mixer_set_record (GST_MIXER (track->element), track->gst_track, FALSE);
+      xfce_mixer_card_set_track_record (track->card, track->gst_track, FALSE);
     }
 
   image = gtk_image_new_from_stock (stock, XFCE_MIXER_ICON_SIZE);


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.h	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -25,6 +25,8 @@
 #include <gtk/gtk.h>
 #include <gst/interfaces/mixer.h>
 
+#include "xfce-mixer-card.h"
+
 G_BEGIN_DECLS;
 
 typedef struct _XfceMixerTrackClass XfceMixerTrackClass;
@@ -39,7 +41,7 @@
 
 GType      xfce_mixer_track_get_type (void) G_GNUC_CONST;
 
-GtkWidget *xfce_mixer_track_new      (GstElement    *element,
+GtkWidget *xfce_mixer_track_new      (XfceMixerCard *card,
                                       GstMixerTrack *gst_track);
 
 G_END_DECLS;


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-track.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -34,11 +34,12 @@
 #include "xfce-mixer.h"
 #include "xfce-mixer-preferences.h"
 #include "xfce-mixer-controls-dialog.h"
+#include "xfce-mixer-card.h"
 
 
 
-#define NAME_COLUMN    0
-#define ELEMENT_COLUMN 1
+#define NAME_COLUMN 0
+#define CARD_COLUMN 1
 
 
 
@@ -77,8 +78,8 @@
   GtkListStore         *soundcard_model;
   GtkWidget            *soundcard_combo;
 
-  /* List of available GstMixers */
-  GList                *mixers;
+  /* List of available sound cards */
+  GList                *cards;
 
   /* Active mixer control set */
   GtkWidget            *mixer_frame;
@@ -197,7 +198,7 @@
 
   heading = xfce_heading_new ();
   xfce_heading_set_title (XFCE_HEADING (heading), _("Xfce Mixer"));
-  xfce_heading_set_subtitle (XFCE_HEADING (heading), _("A reliable and comfortable mixer for your soundcard, finally!"));
+  xfce_heading_set_subtitle (XFCE_HEADING (heading), _("A comfortable audio mixer for your sound card."));
   xfce_heading_set_icon_name (XFCE_HEADING (heading), "xfce4-mixer");
   gtk_box_pack_start (GTK_BOX (vbox), heading, FALSE, TRUE, 0);
   gtk_widget_show (heading);
@@ -218,7 +219,7 @@
   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
   gtk_widget_show (label);
 
-  window->soundcard_model = gtk_list_store_new (2, G_TYPE_STRING, GST_TYPE_ELEMENT);
+  window->soundcard_model = gtk_list_store_new (2, G_TYPE_STRING, TYPE_XFCE_MIXER_CARD);
 
   window->soundcard_combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (window->soundcard_model));
   g_signal_connect (G_OBJECT (window->soundcard_combo), "changed", G_CALLBACK (xfce_mixer_window_soundcard_changed), window);
@@ -277,8 +278,8 @@
 
   g_object_unref (G_OBJECT (window->preferences));
 
-  g_list_foreach (window->mixers, (GFunc) gst_object_unref, NULL);
-  g_list_free (window->mixers);
+  g_list_foreach (window->cards, (GFunc) g_object_unref, NULL);
+  g_list_free (window->cards);
 
   (*G_OBJECT_CLASS (xfce_mixer_window_parent_class)->finalize) (object);
 }
@@ -296,69 +297,77 @@
 static void
 xfce_mixer_window_load_soundcards (XfceMixerWindow *window)
 {
-  GtkTreeIter  iter;
-  GList       *miter;
-  guint        counter = 0;
-  const gchar *name;
-  gchar       *active_card;
-  guint        active_index = 0;
+  XfceMixerCard *card;
+  GtkTreeIter    iter;
+  GList         *mixers = NULL;
+  GList         *miter;
+  guint          counter = 0;
+  gchar         *active_card;
+  guint          active_index = 0;
 
+  /* Prepare sound card list */
+  window->cards = NULL;
+
   /* Get list of all available sound cards */
-  window->mixers = gst_audio_default_registry_mixer_filter (xfce_mixer_window_filter_mixer, FALSE, &counter);
+  mixers = gst_audio_default_registry_mixer_filter (xfce_mixer_window_filter_mixer, FALSE, &counter);
 
-  if (G_UNLIKELY (g_list_length (window->mixers) == 0))
-    xfce_err ("No sound cards could be found. You may have to install additional gstreamer packages for ALSA or OSS support.");
+  if (G_UNLIKELY (g_list_length (mixers) == 0))
+    xfce_err (_("No sound cards could be found. You may have to install additional gstreamer packages for ALSA or OSS support."));
 
   /* Get sound card used last time */
   g_object_get (G_OBJECT (window->preferences), "sound-card", &active_card, NULL);
 
-  for (miter = g_list_first (window->mixers), counter = 0; miter != NULL; miter = g_list_next (miter), ++counter)
+  for (miter = g_list_first (mixers), counter = 0; miter != NULL; miter = g_list_next (miter), ++counter)
     {
-      name = g_object_get_data (G_OBJECT (miter->data), "xfce-mixer-control-name");
-      g_debug ("Adding sound card: %s", name);
+      /* Create new sound card object */
+      card = xfce_mixer_card_new (miter->data);
+
+      /* Add sound card to the list */
+      window->cards = g_list_append (window->cards, card);
+
+      g_debug ("Adding sound card: %s", xfce_mixer_card_get_display_name (card));
+
+      /* Insert sound card into the main combo box */
       gtk_list_store_append (window->soundcard_model, &iter);
-      gtk_list_store_set (window->soundcard_model, &iter, NAME_COLUMN, name, ELEMENT_COLUMN, miter->data, -1);
+      gtk_list_store_set (window->soundcard_model, &iter, 
+                          NAME_COLUMN, xfce_mixer_card_get_display_name (card), 
+                          CARD_COLUMN, card, -1);
 
-      if (G_UNLIKELY (active_card != NULL && g_utf8_collate (name, active_card) == 0))
+      /* Check if the sound card was the last active one */
+      if (G_UNLIKELY (active_card != NULL && g_utf8_collate (xfce_mixer_card_get_display_name (card), active_card) == 0))
         active_index = counter;
     }
 
   if (G_LIKELY (active_card != NULL))
     g_free (active_card);
 
+  g_list_free (mixers);
+
+  /* Select the sound card which was selected the last time */
   gtk_combo_box_set_active (GTK_COMBO_BOX (window->soundcard_combo), active_index);
 }
 
 
 
 static void
-remove_child (GtkWidget *widget)
-{
-  gtk_widget_destroy (widget);
-}
-
-
-
-static void
 xfce_mixer_window_soundcard_changed (GtkComboBox     *widget,
                                      XfceMixerWindow *window)
 {
-  GtkTreeIter  iter;
-  GstElement  *mixer;
-  const gchar *name;
-  gchar       *title;
-  gchar       *mixer_name;
+  XfceMixerCard *card;
+  GtkTreeIter    iter;
+  const gchar   *name;
+  gchar         *title;
 
   /* Determine selected sound card */
   if (G_LIKELY (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)))
     {
-      /* Fetch index of the active sound card */
-      gtk_tree_model_get (GTK_TREE_MODEL (window->soundcard_model), &iter, NAME_COLUMN, &mixer_name, ELEMENT_COLUMN, &mixer, -1);
+      /* Get the active sound card */
+      gtk_tree_model_get (GTK_TREE_MODEL (window->soundcard_model), &iter, CARD_COLUMN, &card, -1);
 
       /* Update window title */
-      if (G_LIKELY (mixer != NULL))
+      if (G_LIKELY (card != NULL))
         {
-          title = g_strdup_printf ("%s - %s", _("Xfce Mixer"), mixer_name);
+          title = g_strdup_printf ("%s - %s", _("Xfce Mixer"), xfce_mixer_card_get_display_name (card));
           gtk_window_set_title (GTK_WINDOW (window), title);
           g_free (title);
         }
@@ -369,10 +378,10 @@
       if (G_LIKELY (window->mixer != NULL))
         gtk_widget_destroy (gtk_bin_get_child (GTK_BIN (window->mixer_frame)));
 
-      gst_element_set_state (mixer, GST_STATE_READY);
+      xfce_mixer_card_set_ready (card);
 
-      /* Create a new XfceMixer for the active GstMixer */
-      window->mixer = xfce_mixer_new (mixer, mixer_name);
+      /* Create a new XfceMixer for the active sound card */
+      window->mixer = xfce_mixer_new (card);
 
       /* Add the XfceMixer to the window */
       gtk_container_add (GTK_CONTAINER (window->mixer_frame), window->mixer);
@@ -465,49 +474,33 @@
                           GdkEvent        *event,
                           XfceMixerWindow *mixer_window)
 {
-  gchar *active_card;
-  gint   width;
-  gint   height;
+  XfceMixerCard *card;
+  gint           width;
+  gint           height;
 
   gtk_window_get_size (GTK_WINDOW (mixer_window), &width, &height);
 
-  active_card = gtk_combo_box_get_active_text (GTK_COMBO_BOX (mixer_window->soundcard_combo));
+  card = xfce_mixer_window_get_active_card (mixer_window);
 
   g_object_set (G_OBJECT (mixer_window->preferences), 
                 "last-window-width", width,
                 "last-window-height", height,
-                "sound-card", active_card,
+                "sound-card", xfce_mixer_card_get_name (card),
                 NULL);
 
-  g_free (active_card);
-
   return FALSE;
 }
 
 
 
-GstMixer*
-xfce_mixer_window_get_active_mixer (XfceMixerWindow *window)
+XfceMixerCard*
+xfce_mixer_window_get_active_card (XfceMixerWindow *window)
 {
-  GstElement *element;
-  GstMixer   *mixer = NULL;
-  GtkTreeIter iter;
+  XfceMixerCard *card = NULL;
+  GtkTreeIter    iter;
 
   if (G_LIKELY (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (window->soundcard_combo), &iter)))
-    {
-      gtk_tree_model_get (GTK_TREE_MODEL (window->soundcard_model), &iter, ELEMENT_COLUMN, &element, -1);
-      
-      if (G_LIKELY (element != NULL))
-        mixer = GST_MIXER (element);
-    }
+    gtk_tree_model_get (GTK_TREE_MODEL (window->soundcard_model), &iter, CARD_COLUMN, &card, -1);
 
-  return mixer;
+  return card;
 }
-
-
-
-gchar*
-xfce_mixer_window_get_active_card (XfceMixerWindow *window)
-{
-  return gtk_combo_box_get_active_text (GTK_COMBO_BOX (window->soundcard_combo));
-}


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.h	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -25,6 +25,8 @@
 #include <gtk/gtk.h>
 #include <gst/interfaces/mixer.h>
 
+#include "xfce-mixer-card.h"
+
 G_BEGIN_DECLS;
 
 typedef struct _XfceMixerWindowClass XfceMixerWindowClass;
@@ -37,11 +39,10 @@
 #define IS_XFCE_MIXER_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_XFCE_MIXER_WINDOW))
 #define XFCE_MIXER_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_XFCE_MIXER_WINDOW, XfceMixerWindowClass))
 
-GType      xfce_mixer_window_get_type         (void) G_GNUC_CONST;
+GType          xfce_mixer_window_get_type        (void) G_GNUC_CONST;
 
-GtkWidget *xfce_mixer_window_new              (void);
-GstMixer  *xfce_mixer_window_get_active_mixer (XfceMixerWindow *window);
-gchar     *xfce_mixer_window_get_active_card  (XfceMixerWindow *window);
+GtkWidget     *xfce_mixer_window_new             (void);
+XfceMixerCard *xfce_mixer_window_get_active_card (XfceMixerWindow *window);
 
 G_END_DECLS;
 


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer-window.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.c
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.c	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.c	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -55,9 +55,7 @@
 {
   GtkNotebook __parent__;
 
-  GstElement *element;
-
-  gchar      *mixer_name;
+  XfceMixerCard *card;
 };
 
 
@@ -130,26 +128,22 @@
 {
   XfceMixer *mixer = XFCE_MIXER (object);
 
-  gst_object_unref (mixer->element);
+  g_object_unref (G_OBJECT (mixer->card));
 
-  g_free (mixer->mixer_name);
-
   (*G_OBJECT_CLASS (xfce_mixer_parent_class)->finalize) (object);
 }
 
 
 
 GtkWidget*
-xfce_mixer_new (GstElement  *element,
-                gchar       *mixer_name)
+xfce_mixer_new (XfceMixerCard *card)
 {
   XfceMixer *mixer;
 
-  g_return_val_if_fail (GST_IS_MIXER (element), NULL);
+  g_return_val_if_fail (IS_XFCE_MIXER_CARD (card), NULL);
   
   mixer = g_object_new (TYPE_XFCE_MIXER, NULL);
-  mixer->element = gst_object_ref (element);
-  mixer->mixer_name = mixer_name;
+  mixer->card = XFCE_MIXER_CARD (g_object_ref (card));
 
   xfce_mixer_create_contents (mixer);
 
@@ -173,15 +167,12 @@
   GtkWidget            *last_separator[4] = { NULL, NULL, NULL, NULL };
   GtkWidget            *label1;
   GtkWidget            *label2;
-  GstMixer             *gst_mixer;
   GList                *visible_controls;
   guint                 num_children[4] = { 0, 0, 0, 0 };
   gint                  i;
 
-  g_return_if_fail (GST_IS_MIXER (mixer->element));
+  xfce_mixer_card_set_ready (mixer->card);
 
-  gst_mixer = GST_MIXER (mixer->element);
-
   /* Create widgets for all four tabs */
   for (i = 0; i < 4; ++i)
     {
@@ -206,11 +197,10 @@
       gtk_widget_show (scrollwins[i]);
     }
 
-  preferences = xfce_mixer_preferences_get ();
-  visible_controls = xfce_mixer_preferences_get_visible_controls (preferences, mixer->mixer_name);
+  visible_controls = xfce_mixer_card_get_visible_controls (mixer->card);
 
   /* Create controls for all mixer tracks */
-  for (iter = gst_mixer_list_tracks (gst_mixer); iter != NULL; iter = g_list_next (iter))
+  for (iter = xfce_mixer_card_get_tracks (mixer->card); iter != NULL; iter = g_list_next (iter))
     {
       track = iter->data;
 
@@ -224,7 +214,7 @@
         {
         case XFCE_MIXER_TRACK_TYPE_PLAYBACK:
           /* Create a regular volume control for this track */
-          track_widget = xfce_mixer_track_new (mixer->element, track);
+          track_widget = xfce_mixer_track_new (mixer->card, track);
           gtk_table_attach (GTK_TABLE (views[0]), track_widget, 
                             num_children[0], num_children[0] + 1, 0, 1, GTK_SHRINK, GTK_FILL|GTK_EXPAND, 0, 0);
           gtk_widget_show (track_widget);
@@ -240,7 +230,7 @@
 
         case XFCE_MIXER_TRACK_TYPE_CAPTURE:
           /* Create a regular volume control for this track */
-          track_widget = xfce_mixer_track_new (mixer->element, track);
+          track_widget = xfce_mixer_track_new (mixer->card, track);
           gtk_table_attach (GTK_TABLE (views[1]), track_widget, 
                             num_children[1], num_children[1] + 1, 0, 1, GTK_SHRINK, GTK_FILL|GTK_EXPAND, 0, 0);
           gtk_widget_show (track_widget);
@@ -255,14 +245,14 @@
           break;
 
         case XFCE_MIXER_TRACK_TYPE_SWITCH:
-          track_widget = xfce_mixer_switch_new (mixer->element, track);
+          track_widget = xfce_mixer_switch_new (mixer->card, track);
           gtk_box_pack_start (GTK_BOX (views[2]), track_widget, FALSE, FALSE, 0);
           gtk_widget_show (track_widget);
           num_children[2]++;
           break;
 
         case XFCE_MIXER_TRACK_TYPE_OPTIONS:
-          track_widget = xfce_mixer_option_new (mixer->element, track);
+          track_widget = xfce_mixer_option_new (mixer->card, track);
           gtk_box_pack_start (GTK_BOX (views[3]), track_widget, FALSE, FALSE, 0);
           gtk_widget_show (track_widget);
           num_children[3]++;
@@ -273,8 +263,6 @@
   g_list_foreach (visible_controls, (GFunc) g_free, NULL);
   g_list_free (visible_controls);
 
-  g_object_unref (G_OBJECT (preferences));
-
   /* Append tab or destroy all its widgets - depending on the contents of each tab */
   for (i = 0; i < 4; ++i)
     {


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.c
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision

Modified: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.h
===================================================================
--- xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.h	2008-01-13 16:43:37 UTC (rev 26565)
+++ xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.h	2008-01-13 19:27:18 UTC (rev 26566)
@@ -1,4 +1,4 @@
-/* $Id: xfce-menu.h 25273 2008-03-23 19:20:47Z jannis $ */
+/* $Id$ */
 /* vim:set sw=2 sts=2 ts=2 et ai: */
 /*-
  * Copyright (c) 2008 Jannis Pohlmann <jannis at xfce.org>
@@ -25,6 +25,8 @@
 #include <gtk/gtk.h>
 #include <gst/interfaces/mixer.h>
 
+#include "xfce-mixer-card.h"
+
 G_BEGIN_DECLS;
 
 typedef struct _XfceMixerClass XfceMixerClass;
@@ -39,8 +41,7 @@
 
 GType      xfce_mixer_get_type (void) G_GNUC_CONST;
 
-GtkWidget *xfce_mixer_new      (GstElement *element,
-                                gchar      *mixer_name);
+GtkWidget *xfce_mixer_new      (XfceMixerCard *card);
 
 G_END_DECLS;
 


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce-mixer.h
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision


Property changes on: xfce4-mixer/trunk/xfce4-mixer/xfce4-mixer.desktop.in.in
___________________________________________________________________
Name: svn:keywords
   + Id Author Date Revision



More information about the Xfce4-commits mailing list