[Xfce4-commits] [panel-plugins/xfce4-pulseaudio-plugin] 01/04: Allow volume object use plugin settings.

noreply at xfce.org noreply at xfce.org
Tue Apr 7 02:06:10 CEST 2015


This is an automated email from the git hooks/post-receive script.

andrzejr pushed a commit to branch master
in repository panel-plugins/xfce4-pulseaudio-plugin.

commit af38716000868b2f5635d55766a7a51bfa15f295
Author: Andrzej <ndrwrdck at gmail.com>
Date:   Mon Apr 6 22:34:52 2015 +0100

    Allow volume object use plugin settings.
    
    for implementing pa-specific settings.
---
 panel-plugin/pulseaudio-plugin.c |    2 +-
 panel-plugin/pulseaudio-volume.c |   55 +++++++++++++++++++++++++-------------
 panel-plugin/pulseaudio-volume.h |    5 ++--
 3 files changed, 41 insertions(+), 21 deletions(-)

diff --git a/panel-plugin/pulseaudio-plugin.c b/panel-plugin/pulseaudio-plugin.c
index c75f897..156eaff 100644
--- a/panel-plugin/pulseaudio-plugin.c
+++ b/panel-plugin/pulseaudio-plugin.c
@@ -348,7 +348,7 @@ pulseaudio_plugin_construct (XfcePanelPlugin *plugin)
 #endif
 
   /* volume controller */
-  pulseaudio_plugin->volume = pulseaudio_volume_new ();
+  pulseaudio_plugin->volume = pulseaudio_volume_new (pulseaudio_plugin->config);
 
   /* instantiate a button box */
   pulseaudio_plugin->button = pulseaudio_button_new (pulseaudio_plugin,
diff --git a/panel-plugin/pulseaudio-volume.c b/panel-plugin/pulseaudio-volume.c
index 626a126..688ea29 100644
--- a/panel-plugin/pulseaudio-volume.c
+++ b/panel-plugin/pulseaudio-volume.c
@@ -1,4 +1,4 @@
-/*  Copyright (c) 2014 Andrzej <ndrwrdck at gmail.com>
+/*  Copyright (c) 2014-2015 Andrzej <ndrwrdck at gmail.com>
  *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
@@ -32,19 +32,25 @@
 #include <pulse/pulseaudio.h>
 #include <pulse/glib-mainloop.h>
 
+#include "pulseaudio-config.h"
 #include "pulseaudio-debug.h"
 #include "pulseaudio-volume.h"
 
 
 static void                 pulseaudio_volume_finalize        (GObject            *object);
 static void                 pulseaudio_volume_connect         (PulseaudioVolume   *volume);
-static gdouble              pulseaudio_volume_v2d             (pa_volume_t         vol);
+static gdouble              pulseaudio_volume_v2d             (PulseaudioVolume   *volume,
+                                                               pa_volume_t         vol);
+static pa_volume_t          pulseaudio_volume_d2v             (PulseaudioVolume   *volume,
+                                                               gdouble             vol);
 
 
 struct _PulseaudioVolume
 {
   GObject               __parent__;
 
+  PulseaudioConfig     *config;
+
   pa_glib_mainloop     *pa_mainloop;
   pa_context           *pa_context;
   gboolean              connected;
@@ -118,6 +124,8 @@ pulseaudio_volume_finalize (GObject *object)
 {
   PulseaudioVolume *volume = PULSEAUDIO_VOLUME (object);
 
+  volume->config = NULL;
+
   pa_glib_mainloop_free (volume->pa_mainloop);
 
   (*G_OBJECT_CLASS (pulseaudio_volume_parent_class)->finalize) (object);
@@ -140,7 +148,7 @@ pulseaudio_volume_sink_info_cb (pa_context         *context,
   if (i == NULL) return;
 
   muted = (gboolean) i->mute;
-  vol = pulseaudio_volume_v2d (i->volume.values[0]);
+  vol = pulseaudio_volume_v2d (volume, i->volume.values[0]);
 
   if (volume->muted != muted)
     {
@@ -294,29 +302,35 @@ pulseaudio_volume_connect (PulseaudioVolume *volume)
 
 
 static gdouble
-pulseaudio_volume_v2d (pa_volume_t vol)
+pulseaudio_volume_v2d (PulseaudioVolume *volume,
+                       pa_volume_t       pa_volume)
 {
-  gdouble volume;
+  gdouble vol;
 
-  volume = (gdouble) vol - PA_VOLUME_MUTED;
-  volume /= (gdouble) (PA_VOLUME_NORM - PA_VOLUME_MUTED);
+  g_return_val_if_fail (IS_PULSEAUDIO_VOLUME (volume), 0.0);
+
+  vol = (gdouble) pa_volume - PA_VOLUME_MUTED;
+  vol /= (gdouble) (PA_VOLUME_NORM - PA_VOLUME_MUTED);
   /* for safety */
-  volume = MIN (MAX (volume, 0.0), 1.0);
-  return volume;
+  vol = MIN (MAX (vol, 0.0), 1.0);
+  return vol;
 }
 
 
 
 static pa_volume_t
-pulseaudio_volume_d2v (gdouble vol)
+pulseaudio_volume_d2v (PulseaudioVolume *volume,
+                       gdouble           vol)
 {
-  gdouble volume;
+  gdouble pa_volume;
 
-  volume = (PA_VOLUME_NORM - PA_VOLUME_MUTED) * vol;
-  volume = (pa_volume_t) volume + PA_VOLUME_MUTED;
+  g_return_val_if_fail (IS_PULSEAUDIO_VOLUME (volume), PA_VOLUME_MUTED);
+
+  pa_volume = (PA_VOLUME_NORM - PA_VOLUME_MUTED) * vol;
+  pa_volume = (pa_volume_t) pa_volume + PA_VOLUME_MUTED;
   /* for safety */
-  volume = MIN (MAX (volume, PA_VOLUME_MUTED), PA_VOLUME_NORM);
-  return volume;
+  pa_volume = MIN (MAX (pa_volume, PA_VOLUME_MUTED), PA_VOLUME_NORM);
+  return pa_volume;
 }
 
 
@@ -412,7 +426,7 @@ pulseaudio_volume_set_volume_cb2 (pa_context         *context,
   if (i == NULL) return;
 
   //pulseaudio_debug ("*** %s", pa_cvolume_snprint (st, sizeof (st), &i->volume));
-  pa_cvolume_set (&i->volume, 1, pulseaudio_volume_d2v (volume->volume));
+  pa_cvolume_set (&i->volume, 1, pulseaudio_volume_d2v (volume, volume->volume));
   pa_context_set_sink_volume_by_index (context, i->index, &i->volume, pulseaudio_volume_sink_volume_changed, volume);
 }
 
@@ -448,9 +462,14 @@ pulseaudio_volume_set_volume (PulseaudioVolume *volume,
 
 
 PulseaudioVolume *
-pulseaudio_volume_new (void)
+pulseaudio_volume_new (PulseaudioConfig *config)
 {
-  PulseaudioVolume *volume = g_object_new (TYPE_PULSEAUDIO_VOLUME, NULL);
+  PulseaudioVolume *volume;
+
+  g_return_val_if_fail (IS_PULSEAUDIO_CONFIG (config), NULL);
+
+  volume = g_object_new (TYPE_PULSEAUDIO_VOLUME, NULL);
+  volume->config = config;
 
   return volume;
 }
diff --git a/panel-plugin/pulseaudio-volume.h b/panel-plugin/pulseaudio-volume.h
index 1fef9d1..92c4da1 100644
--- a/panel-plugin/pulseaudio-volume.h
+++ b/panel-plugin/pulseaudio-volume.h
@@ -1,4 +1,4 @@
-/*  Copyright (c) 2014 Andrzej <ndrwrdck at gmail.com>
+/*  Copyright (c) 2014-2015 Andrzej <ndrwrdck at gmail.com>
  *
  *  This program is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU General Public License
@@ -19,6 +19,7 @@
 #define __PULSEAUDIO_VOLUME_H__
 
 #include <glib-object.h>
+#include "pulseaudio-config.h"
 
 G_BEGIN_DECLS
 
@@ -34,7 +35,7 @@ typedef struct          _PulseaudioVolumeClass            PulseaudioVolumeClass;
 
 GType                   pulseaudio_volume_get_type        (void) G_GNUC_CONST;
 
-PulseaudioVolume       *pulseaudio_volume_new             ();
+PulseaudioVolume       *pulseaudio_volume_new             (PulseaudioConfig *config);
 
 gdouble                 pulseaudio_volume_get_volume      (PulseaudioVolume *volume);
 void                    pulseaudio_volume_set_volume      (PulseaudioVolume *volume,

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list