From eaef567cabc5c0dda9706faa0e17e20909131ade Mon Sep 17 00:00:00 2001 From: simpoir Date: Fri, 30 Jan 2009 04:14:48 +0000 Subject: ajout initial du tree jhbuild [jhbuild base] --- (limited to 'src/sugar/acme-volume.c') diff --git a/src/sugar/acme-volume.c b/src/sugar/acme-volume.c new file mode 100644 index 0000000..09ae1d2 --- /dev/null +++ b/src/sugar/acme-volume.c @@ -0,0 +1,127 @@ +/* acme-volume.c + + Copyright (C) 2002, 2003 Bastien Nocera + + The Gnome 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. + + The Gnome 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 the Gnome Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + + Author: Bastien Nocera + */ + +#ifdef HAVE_CONFIG +#include "config.h" +#endif +#include "acme-volume.h" +#ifdef HAVE_OSS +#include "acme-volume-oss.h" +#endif +#ifdef HAVE_ALSA +#include "acme-volume-alsa.h" +#endif +#ifdef HAVE_GSTREAMER +#include "acme-volume-gstreamer.h" +#endif + +G_DEFINE_TYPE (AcmeVolume, acme_volume, G_TYPE_OBJECT) + +static void +acme_volume_class_init (AcmeVolumeClass *klass) +{ +} + +static void +acme_volume_init (AcmeVolume *vol) +{ +} + +int +acme_volume_get_volume (AcmeVolume *self) +{ + g_return_val_if_fail (self != NULL, 0); + g_return_val_if_fail (ACME_IS_VOLUME (self), 0); + + return ACME_VOLUME_GET_CLASS (self)->get_volume (self); +} + +void +acme_volume_set_volume (AcmeVolume *self, int val) +{ + g_return_if_fail (self != NULL); + g_return_if_fail (ACME_IS_VOLUME (self)); + + ACME_VOLUME_GET_CLASS (self)->set_volume (self, val); +} + +gboolean +acme_volume_get_mute (AcmeVolume *self) +{ + g_return_val_if_fail (self != NULL, FALSE); + g_return_val_if_fail (ACME_IS_VOLUME (self), FALSE); + + return ACME_VOLUME_GET_CLASS (self)->get_mute (self); +} + +void +acme_volume_set_mute (AcmeVolume *self, gboolean val) +{ + g_return_if_fail (self != NULL); + g_return_if_fail (ACME_IS_VOLUME (self)); + + ACME_VOLUME_GET_CLASS (self)->set_mute (self, val); +} + +void +acme_volume_mute_toggle (AcmeVolume *self) +{ + gboolean muted; + + g_return_if_fail (self != NULL); + g_return_if_fail (ACME_IS_VOLUME (self)); + + muted = ACME_VOLUME_GET_CLASS (self)->get_mute (self); + ACME_VOLUME_GET_CLASS (self)->set_mute (self, !muted); +} + +int +acme_volume_get_threshold (AcmeVolume *self) +{ + g_return_val_if_fail (self != NULL, 0); + g_return_val_if_fail (ACME_IS_VOLUME (self), 0); + + return ACME_VOLUME_GET_CLASS (self)->get_threshold (self); +} + +AcmeVolume *acme_volume_new (void) +{ + AcmeVolume *vol; + +#ifdef HAVE_GSTREAMER + vol = ACME_VOLUME (g_object_new (acme_volume_gstreamer_get_type (), NULL)); + return vol; +#endif +#ifdef HAVE_ALSA + vol = ACME_VOLUME (g_object_new (acme_volume_alsa_get_type (), NULL)); + if (vol != NULL && ACME_VOLUME_ALSA (vol)->_priv != NULL) + return vol; + if (ACME_VOLUME_ALSA (vol)->_priv == NULL) + g_object_unref (vol); +#endif +#ifdef HAVE_OSS + vol = ACME_VOLUME (g_object_new (acme_volume_oss_get_type (), NULL)); + return vol; +#endif + return NULL; +} + -- cgit v0.9.1