From dda100fca6bd68ba01a43134f6e3a422bda77908 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 5 Jan 2007 02:19:52 +0100 Subject: [PATCH] Stub volume control code --- lib/python/_sugar.defs | 28 +++++++++++++++++++ lib/python/_sugar.override | 1 + lib/src/Makefile.am | 26 +++++++++--------- lib/src/sugar-audio-manager.c | 38 ++++++++++++++++++++++++++ lib/src/sugar-audio-manager.h | 51 +++++++++++++++++++++++++++++++++++ shell/view/Shell.py | 18 ++++++++++++- 6 files changed, 149 insertions(+), 13 deletions(-) create mode 100644 lib/src/sugar-audio-manager.c create mode 100644 lib/src/sugar-audio-manager.h diff --git a/lib/python/_sugar.defs b/lib/python/_sugar.defs index bf40d1c8..bead7b48 100644 --- a/lib/python/_sugar.defs +++ b/lib/python/_sugar.defs @@ -49,6 +49,14 @@ (gtype-id "SUGAR_TYPE_DOWNLOAD") ) +(define-object AudioManager + (in-module "Sugar") + (parent "GObject") + (c-name "SugarAudioManager") + (gtype-id "SUGAR_TYPE_AUDIO_MANAGER") +) + + ;; Enumerations and flags ... @@ -239,3 +247,23 @@ '("GdkPixbuf*" "pixbuf") ) ) +;; Enumerations and flags ... + + +;; From sugar-audio-manager.h + +(define-function audio_manager_get_type + (c-name "sugar_audio_manager_get_type") + (return-type "GType") +) + +(define-method set_volume + (of-object "SugarAudioManager") + (c-name "sugar_audio_manager_set_volume") + (return-type "none") + (parameters + '("int" "level") + ) +) + + diff --git a/lib/python/_sugar.override b/lib/python/_sugar.override index ae106daa..6e0fe720 100644 --- a/lib/python/_sugar.override +++ b/lib/python/_sugar.override @@ -11,6 +11,7 @@ headers #include "sugar-push-scroller.h" #include "sugar-download-manager.h" #include "sugar-download.h" +#include "sugar-audio-manager.h" #include #include diff --git a/lib/src/Makefile.am b/lib/src/Makefile.am index 3b51f1ca..ce4ec783 100644 --- a/lib/src/Makefile.am +++ b/lib/src/Makefile.am @@ -11,24 +11,26 @@ noinst_LTLIBRARIES = libsugarprivate.la libsugarprivate_la_LIBADD = $(GECKO_LIBS) -libsugarprivate_la_SOURCES = \ - $(BUILT_SOURCES) \ - eggaccelerators.h \ - eggaccelerators.c \ +libsugarprivate_la_SOURCES = \ + $(BUILT_SOURCES) \ + eggaccelerators.h \ + eggaccelerators.c \ GeckoContentHandler.h \ GeckoContentHandler.cpp \ - GeckoDownload.h \ - GeckoDownload.cpp \ + GeckoDownload.h \ + GeckoDownload.cpp \ sugar-address-entry.h \ sugar-address-entry.c \ - sugar-browser.h \ - sugar-browser.cpp \ - sugar-download.h \ - sugar-download.c \ + sugar-audio-manager.c \ + sugar-audio-manager.h \ + sugar-browser.h \ + sugar-browser.cpp \ + sugar-download.h \ + sugar-download.c \ sugar-download-manager.h \ sugar-download-manager.c \ - sugar-key-grabber.h \ - sugar-key-grabber.c \ + sugar-key-grabber.h \ + sugar-key-grabber.c \ sugar-push-scroller.c \ sugar-push-scroller.h \ sugar-tray-manager.c \ diff --git a/lib/src/sugar-audio-manager.c b/lib/src/sugar-audio-manager.c new file mode 100644 index 00000000..6444f116 --- /dev/null +++ b/lib/src/sugar-audio-manager.c @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2006 Red Hat, Inc + * + * Sugar is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Sugar 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include "sugar-audio-manager.h" + +G_DEFINE_TYPE(SugarAudioManager, sugar_audio_manager, G_TYPE_OBJECT) + +static void +sugar_audio_manager_class_init(SugarAudioManagerClass *grabber_class) +{ + GObjectClass *g_object_class = G_OBJECT_CLASS (grabber_class); +} + +static void +sugar_audio_manager_init(SugarAudioManager *grabber) +{ +} + +void +sugar_audio_manager_set_volume (SugarAudioManager *manager, + int level) +{ +} diff --git a/lib/src/sugar-audio-manager.h b/lib/src/sugar-audio-manager.h new file mode 100644 index 00000000..3df8cef7 --- /dev/null +++ b/lib/src/sugar-audio-manager.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2006 Red Hat, Inc + * + * Sugar is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Sugar 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __SUGAR_AUDIO_MANAGER_H__ +#define __SUGAR_AUDIO_MANAGER_H__ + +#include + +G_BEGIN_DECLS + +typedef struct _SugarAudioManager SugarAudioManager; +typedef struct _SugarAudioManagerClass SugarAudioManagerClass; +typedef struct _SugarAudioManagerPrivate SugarAudioManagerPrivate; + +#define SUGAR_TYPE_AUDIO_MANAGER (sugar_audio_manager_get_type()) +#define SUGAR_AUDIO_MANAGER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), SUGAR_TYPE_AUDIO_MANAGER, SugarAudioManager)) +#define SUGAR_AUDIO_MANAGER_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), SUGAR_TYPE_AUDIO_MANAGER, SugarAudioManagerClass)) +#define SUGAR_IS_AUDIO_MANAGER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), SUGAR_TYPE_AUDIO_MANAGER)) +#define SUGAR_IS_AUDIO_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), SUGAR_TYPE_AUDIO_MANAGER)) +#define SUGAR_AUDIO_MANAGER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), SUGAR_TYPE_AUDIO_MANAGER, SugarAudioManagerClass)) + +struct _SugarAudioManager { + GObject base_instance; +}; + +struct _SugarAudioManagerClass { + GObjectClass base_class; +}; + +GType sugar_audio_manager_get_type (void); +void sugar_audio_manager_set_volume (SugarAudioManager *manager, + int level); + +G_END_DECLS + +#endif /* __SUGAR_AUDIO_MANAGER_H__ */ diff --git a/shell/view/Shell.py b/shell/view/Shell.py index f6d47fb1..bace0f91 100644 --- a/shell/view/Shell.py +++ b/shell/view/Shell.py @@ -31,6 +31,7 @@ from sugar.activity import Activity from view.frame.Frame import Frame from view.dconmanager import DCONManager from _sugar import KeyGrabber +from _sugar import AudioManager import sugar class Shell(gobject.GObject): @@ -45,6 +46,7 @@ class Shell(gobject.GObject): style.load_stylesheet(view.stylesheet) self._dcon_manager = DCONManager() + self._audio_manager = AudioManager() self._key_grabber = KeyGrabber() self._key_grabber.connect('key-pressed', @@ -66,7 +68,7 @@ class Shell(gobject.GObject): self._frame = Frame(self) self._frame.show_and_hide(3) - self.start_activity('org.laptop.JournalActivity') + #self.start_activity('org.laptop.JournalActivity') def _handle_camera_key(self): if self._current_host: @@ -116,6 +118,20 @@ class Shell(gobject.GObject): self._dcon_manager.set_brightness(12) elif key == 'F8': self._dcon_manager.set_brightness(15) + elif key == 'F9': + self._audio_manager.set_volume(0) + elif key == 'F19': + self._audio_manager.set_volume(16) + elif key == 'F10': + self._audio_manager.set_volume(32) + elif key == 'F20': + self._audio_manager.set_volume(48) + elif key == 'F11': + self._audio_manager.set_volume(64) + elif key == 'F21': + self._audio_manager.set_volume(80) + elif key == 'F12': + self._audio_manager.set_volume(100) elif key == 'F5': self._dcon_manager.set_mode(DCONManager.COLOR_MODE) elif key == 'F8':