diff options
author | Michal Ratajsky <[email protected]> | 2014-06-21 16:41:05 +0200 |
---|---|---|
committer | Michal Ratajsky <[email protected]> | 2014-06-21 16:41:05 +0200 |
commit | 0309a021960c0a4e2e758dd52041197e684ed600 (patch) | |
tree | ee1396f34707b9fae8d01b4fb1e1e3cc70ce6c8a /libmatemixer | |
parent | 02e93868a222a16b9a95a2a51e6b88fe733c5d97 (diff) | |
download | libmatemixer-0309a021960c0a4e2e758dd52041197e684ed600.tar.bz2 libmatemixer-0309a021960c0a4e2e758dd52041197e684ed600.tar.xz |
Update decibel handling API and PulseAudio code
Diffstat (limited to 'libmatemixer')
-rw-r--r-- | libmatemixer/matemixer-control.c | 2 | ||||
-rw-r--r-- | libmatemixer/matemixer-stream.c | 58 | ||||
-rw-r--r-- | libmatemixer/matemixer-stream.h | 44 |
3 files changed, 56 insertions, 48 deletions
diff --git a/libmatemixer/matemixer-control.c b/libmatemixer/matemixer-control.c index 3619a94..2bc61ae 100644 --- a/libmatemixer/matemixer-control.c +++ b/libmatemixer/matemixer-control.c @@ -761,7 +761,7 @@ mate_mixer_control_open (MateMixerControl *control) if (G_UNLIKELY (state != MATE_MIXER_STATE_READY && state != MATE_MIXER_STATE_CONNECTING)) { - /* This would a backend bug */ + /* This would be a backend bug */ g_warn_if_reached (); control_close (control); diff --git a/libmatemixer/matemixer-stream.c b/libmatemixer/matemixer-stream.c index 1ad4c50..fbf9293 100644 --- a/libmatemixer/matemixer-stream.c +++ b/libmatemixer/matemixer-stream.c @@ -286,22 +286,22 @@ mate_mixer_stream_set_volume (MateMixerStream *stream, gint64 volume) } gdouble -mate_mixer_stream_get_volume_db (MateMixerStream *stream) +mate_mixer_stream_get_decibel (MateMixerStream *stream) { MateMixerStreamInterface *iface; - g_return_val_if_fail (MATE_MIXER_IS_STREAM (stream), 0); + g_return_val_if_fail (MATE_MIXER_IS_STREAM (stream), -MATE_MIXER_INFINITY); iface = MATE_MIXER_STREAM_GET_INTERFACE (stream); - if (iface->get_volume_db) - return iface->get_volume_db (stream); + if (iface->get_decibel) + return iface->get_decibel (stream); - return 0; + return -MATE_MIXER_INFINITY; } gboolean -mate_mixer_stream_set_volume_db (MateMixerStream *stream, gdouble volume_db) +mate_mixer_stream_set_decibel (MateMixerStream *stream, gdouble decibel) { MateMixerStreamInterface *iface; @@ -309,8 +309,8 @@ mate_mixer_stream_set_volume_db (MateMixerStream *stream, gdouble volume_db) iface = MATE_MIXER_STREAM_GET_INTERFACE (stream); - if (iface->set_volume_db) - return iface->set_volume_db (stream, volume_db); + if (iface->set_decibel) + return iface->set_decibel (stream, decibel); return FALSE; } @@ -378,24 +378,24 @@ mate_mixer_stream_set_channel_volume (MateMixerStream *stream, } gdouble -mate_mixer_stream_get_channel_volume_db (MateMixerStream *stream, guint channel) +mate_mixer_stream_get_channel_decibel (MateMixerStream *stream, guint channel) { MateMixerStreamInterface *iface; - g_return_val_if_fail (MATE_MIXER_IS_STREAM (stream), 0); + g_return_val_if_fail (MATE_MIXER_IS_STREAM (stream), -MATE_MIXER_INFINITY); iface = MATE_MIXER_STREAM_GET_INTERFACE (stream); - if (iface->get_channel_volume_db) - return iface->get_channel_volume_db (stream, channel); + if (iface->get_channel_decibel) + return iface->get_channel_decibel (stream, channel); - return 0; + return -MATE_MIXER_INFINITY; } gboolean -mate_mixer_stream_set_channel_volume_db (MateMixerStream *stream, - guint channel, - gdouble volume_db) +mate_mixer_stream_set_channel_decibel (MateMixerStream *stream, + guint channel, + gdouble decibel) { MateMixerStreamInterface *iface; @@ -403,8 +403,8 @@ mate_mixer_stream_set_channel_volume_db (MateMixerStream *stream, iface = MATE_MIXER_STREAM_GET_INTERFACE (stream); - if (iface->set_channel_volume_db) - return iface->set_channel_volume_db (stream, channel, volume_db); + if (iface->set_channel_decibel) + return iface->set_channel_decibel (stream, channel, decibel); return FALSE; } @@ -459,25 +459,25 @@ mate_mixer_stream_set_position_volume (MateMixerStream *stream, } gdouble -mate_mixer_stream_get_position_volume_db (MateMixerStream *stream, - MateMixerChannelPosition position) +mate_mixer_stream_get_position_decibel (MateMixerStream *stream, + MateMixerChannelPosition position) { MateMixerStreamInterface *iface; - g_return_val_if_fail (MATE_MIXER_IS_STREAM (stream), 0); + g_return_val_if_fail (MATE_MIXER_IS_STREAM (stream), -MATE_MIXER_INFINITY); iface = MATE_MIXER_STREAM_GET_INTERFACE (stream); - if (iface->get_position_volume_db) - return iface->get_position_volume_db (stream, position); + if (iface->get_position_decibel) + return iface->get_position_decibel (stream, position); - return 0; + return -MATE_MIXER_INFINITY; } gboolean -mate_mixer_stream_set_position_volume_db (MateMixerStream *stream, - MateMixerChannelPosition position, - gdouble volume_db) +mate_mixer_stream_set_position_decibel (MateMixerStream *stream, + MateMixerChannelPosition position, + gdouble decibel) { MateMixerStreamInterface *iface; @@ -485,8 +485,8 @@ mate_mixer_stream_set_position_volume_db (MateMixerStream *stream, iface = MATE_MIXER_STREAM_GET_INTERFACE (stream); - if (iface->set_position_volume_db) - return iface->set_position_volume_db (stream, position, volume_db); + if (iface->set_position_decibel) + return iface->set_position_decibel (stream, position, decibel); return FALSE; } diff --git a/libmatemixer/matemixer-stream.h b/libmatemixer/matemixer-stream.h index d39cc43..7b202b8 100644 --- a/libmatemixer/matemixer-stream.h +++ b/libmatemixer/matemixer-stream.h @@ -18,6 +18,8 @@ #ifndef MATEMIXER_STREAM_H #define MATEMIXER_STREAM_H +#include <math.h> +#include <stdlib.h> #include <glib.h> #include <glib-object.h> @@ -27,6 +29,12 @@ G_BEGIN_DECLS +#ifdef INFINITY +#define MATE_MIXER_INFINITY INFINITY +#else +#define MATE_MIXER_INFINITY (atof ("inf")) +#endif + #define MATE_MIXER_TYPE_STREAM \ (mate_mixer_stream_get_type ()) #define MATE_MIXER_STREAM(o) \ @@ -56,9 +64,9 @@ struct _MateMixerStreamInterface gint64 (*get_volume) (MateMixerStream *stream); gboolean (*set_volume) (MateMixerStream *stream, gint64 volume); - gdouble (*get_volume_db) (MateMixerStream *stream); - gboolean (*set_volume_db) (MateMixerStream *stream, - gdouble volume_db); + gdouble (*get_decibel) (MateMixerStream *stream); + gboolean (*set_decibel) (MateMixerStream *stream, + gdouble decibel); MateMixerChannelPosition (*get_channel_position) (MateMixerStream *stream, guint channel); gint64 (*get_channel_volume) (MateMixerStream *stream, @@ -66,11 +74,11 @@ struct _MateMixerStreamInterface gboolean (*set_channel_volume) (MateMixerStream *stream, guint channel, gint64 volume); - gdouble (*get_channel_volume_db) (MateMixerStream *stream, + gdouble (*get_channel_decibel) (MateMixerStream *stream, guint channel); - gboolean (*set_channel_volume_db) (MateMixerStream *stream, + gboolean (*set_channel_decibel) (MateMixerStream *stream, guint channel, - gdouble volume_db); + gdouble decibel); gboolean (*has_position) (MateMixerStream *stream, MateMixerChannelPosition position); gint64 (*get_position_volume) (MateMixerStream *stream, @@ -78,11 +86,11 @@ struct _MateMixerStreamInterface gboolean (*set_position_volume) (MateMixerStream *stream, MateMixerChannelPosition position, gint64 volume); - gdouble (*get_position_volume_db) (MateMixerStream *stream, + gdouble (*get_position_decibel) (MateMixerStream *stream, MateMixerChannelPosition position); - gboolean (*set_position_volume_db) (MateMixerStream *stream, + gboolean (*set_position_decibel) (MateMixerStream *stream, MateMixerChannelPosition position, - gdouble volume_db); + gdouble decibel); gdouble (*get_balance) (MateMixerStream *stream); gboolean (*set_balance) (MateMixerStream *stream, gdouble balance); @@ -125,9 +133,9 @@ gint64 mate_mixer_stream_get_volume (MateMixerStre gboolean mate_mixer_stream_set_volume (MateMixerStream *stream, gint64 volume); -gdouble mate_mixer_stream_get_volume_db (MateMixerStream *stream); -gboolean mate_mixer_stream_set_volume_db (MateMixerStream *stream, - gdouble volume_db); +gdouble mate_mixer_stream_get_decibel (MateMixerStream *stream); +gboolean mate_mixer_stream_set_decibel (MateMixerStream *stream, + gdouble decibel); MateMixerChannelPosition mate_mixer_stream_get_channel_position (MateMixerStream *stream, guint channel); @@ -138,11 +146,11 @@ gboolean mate_mixer_stream_set_channel_volume (MateMixerStre guint channel, gint64 volume); -gdouble mate_mixer_stream_get_channel_volume_db (MateMixerStream *stream, +gdouble mate_mixer_stream_get_channel_decibel (MateMixerStream *stream, guint channel); -gboolean mate_mixer_stream_set_channel_volume_db (MateMixerStream *stream, +gboolean mate_mixer_stream_set_channel_decibel (MateMixerStream *stream, guint channel, - gdouble volume_db); + gdouble decibel); gboolean mate_mixer_stream_has_position (MateMixerStream *stream, MateMixerChannelPosition position); @@ -153,11 +161,11 @@ gboolean mate_mixer_stream_set_position_volume (MateMixerStre MateMixerChannelPosition position, gint64 volume); -gdouble mate_mixer_stream_get_position_volume_db (MateMixerStream *stream, +gdouble mate_mixer_stream_get_position_decibel (MateMixerStream *stream, MateMixerChannelPosition position); -gboolean mate_mixer_stream_set_position_volume_db (MateMixerStream *stream, +gboolean mate_mixer_stream_set_position_decibel (MateMixerStream *stream, MateMixerChannelPosition position, - gdouble volume_db); + gdouble decibel); gdouble mate_mixer_stream_get_balance (MateMixerStream *stream); gboolean mate_mixer_stream_set_balance (MateMixerStream *stream, |