diff options
author | Bastien Nocera <hadess@hadess.net> | 2008-12-18 11:19:25 +0000 |
---|---|---|
committer | Bastien Nocera <hadess@src.gnome.org> | 2008-12-18 11:19:25 +0000 |
commit | 002e5163ac614eba3ed83bcd1bbec8bde6372b23 (patch) | |
tree | c719d18c61580548c2c7393398d98359b15f2383 | |
parent | 34f643bb92644b0c93116fd5aaca5d0ed3a48aac (diff) | |
download | gnome-control-center-002e5163ac614eba3ed83bcd1bbec8bde6372b23.tar.gz |
Remove the sound capplet, it's now in gnome-media itself, removes
2008-12-18 Bastien Nocera <hadess@hadess.net>
* capplets/Makefile.am:
* capplets/sound/Makefile.am:
* capplets/sound/gnome-settings-sound.desktop.in.in:
* capplets/sound/icons/16x16/gnome-sound-properties.svg:
* capplets/sound/icons/22x22/gnome-sound-properties.svg:
* capplets/sound/icons/32x32/gnome-sound-properties.svg:
* capplets/sound/icons/scalable/gnome-sound-properties.svg:
* capplets/sound/mixer-support.c:
* capplets/sound/mixer-support.h:
* capplets/sound/pipeline-tests.c:
* capplets/sound/pipeline-tests.h:
* capplets/sound/sound-properties-capplet.c:
* capplets/sound/sound-properties.glade:
* capplets/sound/sound-theme-definition.h:
* capplets/sound/sound-theme-file-utils.c:
* capplets/sound/sound-theme-file-utils.h:
* capplets/sound/sound-theme.c:
* capplets/sound/sound-theme.h:
* configure.in: Remove the sound capplet, it's now in gnome-media
itself, removes libcanberra-gtk and GStreamer dependencies
(Closes: #564871)
svn path=/trunk/; revision=9173
26 files changed, 25 insertions, 7795 deletions
@@ -1,3 +1,27 @@ +2008-12-18 Bastien Nocera <hadess@hadess.net> + + * capplets/Makefile.am: + * capplets/sound/Makefile.am: + * capplets/sound/gnome-settings-sound.desktop.in.in: + * capplets/sound/icons/16x16/gnome-sound-properties.svg: + * capplets/sound/icons/22x22/gnome-sound-properties.svg: + * capplets/sound/icons/32x32/gnome-sound-properties.svg: + * capplets/sound/icons/scalable/gnome-sound-properties.svg: + * capplets/sound/mixer-support.c: + * capplets/sound/mixer-support.h: + * capplets/sound/pipeline-tests.c: + * capplets/sound/pipeline-tests.h: + * capplets/sound/sound-properties-capplet.c: + * capplets/sound/sound-properties.glade: + * capplets/sound/sound-theme-definition.h: + * capplets/sound/sound-theme-file-utils.c: + * capplets/sound/sound-theme-file-utils.h: + * capplets/sound/sound-theme.c: + * capplets/sound/sound-theme.h: + * configure.in: Remove the sound capplet, it's now in gnome-media + itself, removes libcanberra-gtk and GStreamer dependencies + (Closes: #564871) + ==================== 2.25.2 ==================== 2008-12-02 Matthias Clasen <mclasen@redhat.com> diff --git a/capplets/Makefile.am b/capplets/Makefile.am index ec0c4728d..f83a84785 100644 --- a/capplets/Makefile.am +++ b/capplets/Makefile.am @@ -19,9 +19,5 @@ if BUILD_ABOUTME SUBDIRS += about-me endif -if BUILD_SOUND -SUBDIRS += sound -endif - DIST_SUBDIRS = \ - $(always_built_SUBDIRS) display about-me sound + $(always_built_SUBDIRS) display about-me diff --git a/capplets/sound/ChangeLog b/capplets/sound/ChangeLog deleted file mode 100644 index b8ac193b0..000000000 --- a/capplets/sound/ChangeLog +++ /dev/null @@ -1,913 +0,0 @@ -==================== 2.25.2 ==================== - -==================== 2.25.1 ==================== - -Fri Oct 24 19:19:46 2008 Søren Sandmann <sandmann@redhat.com> - - * sound-properties-capplet.c (setup_dialog): Delete code for - legacy config options - -Fri Oct 24 19:19:29 2008 Søren Sandmann <sandmann@redhat.com> - - * sound-properties-capplet.c: Get rid of gnome include - -Fri Oct 24 18:28:54 2008 Søren Sandmann <sandmann@redhat.com> - - * sound-properties-capplet.c (main): Use capplet_init() - -2008-10-10 Bastien Nocera <hadess@hadess.net> - - * Makefile.am: - * sound-theme.c (get_sound_filename): Simple patch to make - the filechooser default to a sensible directory - -==================== 2.24.0.1 ==================== - -2008-08-28 Claude Paroz <claude@2xlibre.net> - - reviewed by: Jens Granseuer <jensgr@gmx.net> - - * sound-theme-definition.h: add context to event sound names. - * sound-theme.c: (setup_sound_theme_custom): replace gettext by g_dpgettext2 to - use context information added in sound-theme-definition.h (bug #549489) - -2008-08-21 Jens Granseuer <jensgr@gmx.net> - - Patch by: Brian Cameron <brian.cameron@sun.com> - - * sound-theme.c: (set_combox_for_theme_name): trying to print NULL - strings crashes on Solaris (bug #548586) - -2008-08-16 Jens Granseuer <jensgr@gmx.net> - - Patch by: Matthias Clasen <mclasen@redhat.com> - - * sound-theme.c: (play_sound_at_path), - (custom_treeview_button_press_event_cb), - (activatable_cell_renderer_pixbuf_activate), - (activatable_cell_renderer_pixbuf_init), - (activatable_cell_renderer_pixbuf_class_init), - (setup_sound_theme_custom): make the event sound preview button - listen to the "activate" signal so it becomes accessible via - keyboard (bug #547808) - -2008-08-07 Jens Granseuer <jensgr@gmx.net> - - Based on a patch by: Bastien Nocera <hadess@hadess.net> - - * sound-properties.glade: - * sound-theme-definition.h: HIG fixes and improved wording (bug - #545219) - -2008-08-06 Jens Granseuer <jensgr@gmx.net> - - * sound-properties-capplet.c: (create_dialog): fix warning due to - left-over developer code (bug #546583) - -2008-08-04 Rodrigo Moya <rodrigo@gnome-db.org> - - * Makefile.am: added missing file to _SOURCES. - -2008-08-02 Jens Granseuer <jensgr@gmx.net> - - Based on a patch by: Alexander Schwenn <alesch@xelaris.net> - - * sound-properties-capplet.c: (filter_device_generic), - (filter_device_alsa), (filter_device_oss), - (get_device_description), (device_added_alsa), (device_added_oss): add - some filtering for OSS devices and create more useful device - descriptions (bug #545275) - -2008-07-29 Bastien Nocera <hadess@hadess.net> - - * sound-theme-file-utils.c (custom_theme_update_time): - * sound-theme-file-utils.h: - * sound-theme.c (save_custom_theme): "touch" the custom theme - directory every time we make a change (Closes: #545373) - -2008-07-29 Bastien Nocera <hadess@hadess.net> - - * sound-theme.c (setup_sound_theme_custom): Never mind, the define is - actually used - -2008-07-29 Bastien Nocera <hadess@hadess.net> - - * Makefile.am: Remove visual-bell.png, unused now - -2008-07-29 Bastien Nocera <hadess@hadess.net> - - * sound-theme.c: Remove unused define - -2008-07-28 Jens Granseuer <jensgr@gmx.net> - - * sound-theme.c: (get_sound_filename): fix critical warning when music - directory isn't set - - * (setting_column_edited): fix more leaks - - * (theme_changed_custom_reinit): when resetting a theme, also reset - the preview icon status - -2008-07-28 Jens Granseuer <jensgr@gmx.net> - - * sound-theme.c: (load_index_theme_name), - (set_combox_for_theme_name), (theme_combobox_changed), - (setup_sound_theme), (get_sound_filename), (dump_theme), - (setting_column_edited), (setup_sound_theme_custom): plug some leaks, - simplify and/or clarify some code - -2008-07-28 Jens Granseuer <jensgr@gmx.net> - - * sound-theme.c: (custom_treeview_button_press_event_cb): don't - preview sounds for insensitive rows - -2008-07-28 Bastien Nocera <hadess@hadess.net> - - * sound-theme.c (setting_set_func), (fill_custom_model), - (save_sounds), (count_customised_sounds), (setting_column_edited): - When selecting a non-custom sound (such as disabled, or builtin), - don't remove the previous custom file's filename from the tree store, - When a custom file was previously selected, always show it in the - combo box drop-down (Closes: #545055) - -2008-07-28 Bastien Nocera <hadess@hadess.net> - - * sound-theme.c (play_sound_preview), (get_sound_filename): - When selecting custom files, listen to "update-preview", and try - to play everything that the user might select (Closes: #545056) - -2008-07-28 Bastien Nocera <hadess@hadess.net> - - * sound-theme.c (save_custom_theme): Fix permissions on the - custom theme directory, otherwise not even the user can read the files - in there - -2008-07-28 Lennart Poettering <lennart@poettering.net> - - * sound-theme.c: pass 'cache control' property explicitly to make sure - that the sound is never cached when it is previewed. Pass 'enable' - property explicitly to make sure that the sound is guaranteed to be - played, even when sound events are otherwise disabled. - -2008-07-28 Bastien Nocera <hadess@hadess.net> - - * Makefile.am: - * sound-properties-capplet.c (create_dialog), (setup_dialog), - (get_legacy_settings): - * sound-properties.glade: - * sound-theme-definition.h: - * sound-theme-file-utils.[ch]: - * sound-theme.[ch]: Remove separate bell settings tab, remove - libsounds dependency, add freedesktop sound theme support through - libcanberra (Closes: #542979) - -==================== 2.23.2 ==================== - -2008-04-25 Jens Granseuer <jensgr@gmx.net> - - Patch by: Tim-Phillip Müller <t.i.m@zen.co.uk> - - * sound-properties-capplet.c: (add_device_with_probe), - (device_added_alsa), (device_added_oss), (device_added_callback), - (device_removed_callback), (setup_devices_by_capability), - (setup_hal_devices), (setup_devices): add support for OSS 4 (bug - #529720) - -2008-04-01 Jens Granseuer <jensgr@gmx.net> - - * mixer-support.c: (create_mixer_device_tree_model): sort mixer devices - alphabetically (bug #525530) - -2008-04-01 Jens Granseuer <jensgr@gmx.net> - - * sound-properties-capplet.c: (device_added_callback): don't show - modems and other unwanted devices (bug #523888) - -2008-03-27 Jens Granseuer <jensgr@gmx.net> - - * sound-properties.glade: don't mention esd (bug #519722) - -2008-03-24 Jaap A. Haitsma <jaap@haitsma.org> - - * visual-bell.png: New tango icon - (bug #523916) - -2008-02-09 Jens Granseuer <jensgr@gmx.net> - - * Makefile.am: use the libsounds.la now that libsounds uses libtool - (bug #515252) - -2007-12-11 Jens Granseuer <jensgr@gmx.net> - - * Makefile.am: - * icons/48x48: - * icons/48x48/gnome-sound-properties.png: add 48x48 PNG icon version - by Andreas Nilsson <nisses.mail@home.se> (bug #502945) - -2007-06-29 Jens Granseuer <jensgr@gmx.net> - - * Makefile.am: fix target dir for icons - -2007-06-28 Jens Granseuer <jensgr@gmx.net> - - Patch by: Luca Feretti <elle.uca@libero.it> - - * gnome-settings-sound.desktop.in.in: - * sound-properties-capplet.c: (main): use new icon name (patch from bug - #397305) - -2007-06-28 Jens Granseuer <jensgr@gmx.net> - - * Makefile.am: - * icons/16x16/gnome-sound-properties.svg: - * icons/22x22/gnome-sound-properties.svg: - * icons/32x32/gnome-sound-properties.svg: - * icons/scalable/gnome-sound-properties.svg: - add new icons by Josef Vybíral (closes bug #397305) - -2007-05-27 Jens Granseuer <jensgr@gmx.net> - - * pipeline-tests.c: (user_test_pipeline): and don't use - gtk_timeout_remove, either.. - -2007-05-27 Jens Granseuer <jensgr@gmx.net> - - * pipeline-tests.c: (user_test_pipeline): use g_timeout_add() instead - of the deprecated gtk_timeout_add() - * sound-properties.glade: set non-0 pulse step for the progress bar to - actually make it move (fixes bug #441587) - -2007-05-06 Jens Granseuer <jensgr@gmx.net> - - * sound-properties-capplet.c: (create_dialog), (main): don't crash if - glade file is not available - -2007-05-06 Jens Granseuer <jensgr@gmx.net> - - * sound-properties-capplet.c: (create_dialog): - * sound-properties.glade: set button images via code instead of - relying on glade, so they respect the gtk-button-images xsetting - -2007-04-27 Rodrigo Moya <rodrigo@gnome-db.org> - - * gnome-settings-sound.desktop.in.in: renamed Bugzilla product. - -2007-04-03 Jens Granseuer <jensgr@gmx.net> - - * sound-properties-capplet.c: (remove_device): move function inside - USE_HAL - -2007-04-03 Jens Granseuer <jensgr@gmx.net> - - Patch by: Matthias Clasen <mclasen@redhat.com> - - * sound-properties-capplet.c: (setup_default_mixer): ellipsize the - device combobox (bug #425650) - -2007-03-18 Christian Persch <chpe@gnome.org> - - * sound-properties.glade: Fix button label alignment. Bug #416238. - -2007-03-18 Christian Persch <chpe@gnome.org> - - * sound-properties-capplet.c: (create_dialog): Revert unrelated change - accidentally committed with the previous commit. - -2007-03-18 Christian Persch <chpe@gnome.org> - - * sound-properties-capplet.c: (main): Initialise - threads early, and fix option context translation. Bug #416239. - -2007-02-10 Jens Granseuer <jensgr@gmx.net> - - Patch by: Patrick Wade <patrick.wade@sun.com> - - * sound-properties.glade: add a11y label relations for the devices - tab (fixes bug #369302) - -2007-02-02 Jens Granseuer <jensgr@gmx.net> - - Patch by: Gabor Kelemen <kelemeng@gnome.hu> - - * sound-properties-capplet.c: (setup_devices): Polypaudio is now - PulseAudio (fixes bug #394003) - -2007-01-29 Kjartan Maraas <kmaraas@gnome.org> - - * sound-properties-capplet.c: (setup_hal_devices), (setup_devices): - ANSIfication of function declarations. - -2007-01-14 Christian Persch <chpe@svn.gnome.org> - - * sound-properties.glade: Fix label alignments bug (caused by glade-3 - bug 396433). - -2007-01-14 Christian Persch <chpe@svn.gnome.org> - - * sound-properties-capplet.c: (create_dialog): Show the sound - properties view after adding it to the dialogue. - -2007-01-11 Christian Persch <chpe@svn.gnome.org> - - * capplets/sound/Makefile.am: - * capplets/sound/sound-properties-capplet.c: (create_dialog), - (dialog_response_cb), (main): - * capplets/sound/sound-properties.glade: - Fix spacings and just build the whole dialogue from glade, not just - the main part. Bug #394068. - -2007-01-09 Jan Arne Petersen <jpetersen@jpetersen.org> - - Fixes #394736 - - * sound-properties-capplet.c: (update_mixer_tracks_selection), - (update_mixer_device_combobox): added NULL-check. - -2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org> - - Fixes #173035 - - * Makefile.am, mixer-support.c, mixer-support.h: Add new files. - * sound-properties-capplet.c: (mixer_device_combobox_changed), - (add_track_label_to_list), (mixer_tracks_selection_changed), - (update_mixer_tracks_selection), (default_mixer_tracks_notify), - (update_mixer_device_combobox), (default_mixer_device_notify), - (setup_default_mixer), (setup_dialog): - * sound-properties.glade: added support for selecting mixer device and - tracks in the capplet. - -2007-01-07 Thomas Wood <thos@gnome.org> - - * sound-properties.glade: Use GtkAlignment for padding, rather than a - GtkHbox and GtkFrame. Fixes bug 143215. - -2007-01-07 Kjartan Maraas <kmaraas@gnome.org> - - * sound-properties-capplet.c: (setup_devices): - Spell Enlightened Sound Daemon correctly. - -2007-01-07 Gabor Kelemen <kelemeng@gnome.hu> - - Fixes #350572 - - * sound-properties.glade: Add accelerators to the device tab. - -2007-01-06 Marc-Andre Lureau <marcandre.lureau@gmail.com> - - Fixes #392276 - - * sound-properties-capplet.c (setup_dialog): #ifdef esd-related code. - -2007-01-06 Lucas Rocha <lucasr.at.mundo@gmail.com> - - Fixes #336286 - - * sound-properties-capplet.c (main): switched from popt to GOptionContext. - -2007-01-07 Jan Arne Petersen <jap@gnome.org> - - * sound-properties-capplet.c: (setup_hal_devices): do proper - dbus/libhal error handling. (Closes #363005) - -2007-01-06 Gabor Kelemen <kelemeng@gnome.hu> - - Fixes #393472 - - * sound-properties-capplet.c: marked sound system names translatable. - -2006-08-10 Christian Persch <chpe@gnome.org> - - Fixes #350556 - - * sound-properties-capplet.c (add_selected_device): fixed mem leak. - -2006-08-02 Klaus Pedersen <klaus.kruse.pedersen@mail.tele.dk> - - Fixes #349254 - - * sound-properties-capplet.c: removed unneeded header file. - -2006-07-26 Ali Akcaagac <aliakc@web.de> - - Fixes #348755 - - * sound-properties-capplet.c: only include libhal if HAL is enabled. - -2006-07-23 Sebastien Bacher <seb128@debian.org> - - * gnome-settings-sound.desktop.in.in: - don't list the Application category, list the HardwareSettings one, - patch by Vincent Fretin <vincent.fretin@gmail.com> (Closes: #344321) - -2006-06-26 Sergey Udaltsov <svu@gnome.org> - - * Makefile.am: added pipeline-tests.h to SOURCES - -2006-05-26 Rodrigo Moya <rodrigo@novell.com> - - Fixes #324971 - - * sound-properties.glade: s/Ok/OK. - -2006-05-05 Jürg Billeter <j@bitron.ch> - - * Makefile.am: - * pipeline-tests.c: (user_test_pipeline_response), - (user_test_pipeline_timeout), (build_test_pipeline), - (pipeline_error_dlg), (user_test_pipeline): - * pipeline-tests.h: - * sound-properties-capplet.c: (element_available), (add_device), - (remove_device), (device_added_callback), - (device_removed_callback), (setup_hal_devices), - (device_test_button_clicked), (get_gconf_key_for_profile), - (device_changed), (get_gconf_description_for_profile), - (gconf_key_changed), (setup_device_chooser), (add_selected_device), - (setup_devices), (setup_dialog), (main): - * sound-properties.glade: - - Add sound device selection using HAL and GStreamer (Closes: #329112). - -2006-01-11 Scott Reeves <SReeves@novell.com> - - * sound-properties.glade: new GUI. - - * sound-properties-capplet.c (create_dialog): make dialog bigger. - -2005-05-22 Sebastien Bacher <seb128@debian.org> - - * sound-properties-capplet.c: (main): - fix the title according to the HIG (Closes: #304950). - -2005-02-07 Sebastien Bacher <seb128@debian.org> - - * sound-properties-capplet.c: change fullscreen_flash to fullscreen - (Closes: #166455). - -2004-11-09 Mark McLoughlin <mark@skynet.ie> - - * Makefile.am: install .desktop file in $(datadir)/applications - - * gnome-settings-sound.desktop.in: add OnlyShowIn=GNOME; - -2004-10-14 Jody Goldberg <jody@gnome.org> - - * Release 2.8.1 - -2004-08-20 Frederic Crozat <fcrozat@mandrakesoft.com> - - * .cvsignore: - Quiet CVS. - - * sound-properties-capplet.c: (main): - Use themed icon for WM hint. - -2004-06-22 Leena Gunda <leena.gunda@wipro.com> - - * sound-properties-capplet.c: - (create_dialog): set sensitivity of audible/visual bell - options only if XKB enabled. - (CheckXKB): function to check if XKB support available. - Fixes bug #144090 - -2004-04-15 Jody Goldberg <jody@gnome.org> - - * Release 2.6.1 - -2004-04-01 Jody Goldberg <jody@gnome.org> - - * Release 2.6.0.3 - -2004-03-30 Jody Goldberg <jody@gnome.org> - - * Release 2.6.0.1 - -2004-03-23 Jody Goldberg <jody@gnome.org> - - * Release 2.6.0 - -2004-03-11 Jody Goldberg <jody@gnome.org> - - * Release 2.5.4 - -2004-02-13 Jody Goldberg <jody@gnome.org> - - * Release 2.5.3 - -2004-02-12 Mark McLoughlin <mark@skynet.ie> - - * sound-properties-capplet.c: (dialog_button_clicked_cb): Update - help link to point to user-guide.xml - -2004-01-14 Jody Goldberg <jody@gnome.org> - - * Release 2.5.2 - -2003-12-30 Jody Goldberg <jody@gnome.org> - - * Release 2.5.1.1 - -2003-12-30 Jody Goldberg <jody@gnome.org> - - * Release 2.5.1 - -2003-10-28 Jody Goldberg <jody@gnome.org> - - * Release 2.5.0 - -2003-08-01 Dennis Cranston <dennis_cranston at yahoo com> - - * sound-properties-capplet.c: Patch to fix spacing between action - area and vbox of preferences dialog. - -2003-07-11 Dennis Cranston <dennis_cranston at yahoo com> - - * sound-properties.glade, sound-properties-capplet.c: - More fixes for ui-review bug number 99533. - -2003-07-07 Jody Goldberg <jody@gnome.org> - - * Release 2.3.4 - -2003-07-07 Calum Benson <calum.benson@sun.com> - - * visual-bell.png: - Replace Bill's placeholder icon before the UI freeze :) - -2003-06-24 Jody Goldberg <jody@gnome.org> - - * Release 2.3.3 - -Fri Jun 6 19:16:43 2003 Jonathan Blandford <jrb@gnome.org> - - * sound-properties-capplet.c (bell_flash_to_widget), - (bell_flash_from_widget): Use a peditor for the visual bell - instead. - -2003-06-06 Bill Haneman <bill.haneman@sun.com> - - * sound-properties.glade: - Added page tab and UI from "visual bell" capplet - (UI originally from Calum, except for ugly icon) - - * visual-bell.png: - Ugly new icon which needs TLC from Calum. - - * sound-properties-capplet.c: - Added gconf keys for visual bell feature and control of - audio bell. - (visual_bell_type_changed): New, called when visual bell radiobuttons - are toggled. - (create_dialog): - Set the image on the "System Bell" notebook tab. - (setup_dialog): - Added peditors for visual-bell and audio-bell checkboxes/gconf keys. - Added guards for the visual-bell type buttons, controlled by - the visual-bell-enabling checkbox. - Connected visual_bell_type_changed to "toggled" signal on radiobuttons. - -2003-05-07 Jody Goldberg <jody@gnome.org> - - * Release 2.3.1 - -2003-04-30 Alex Duggan <aldug@astrolinux.com> - - * sound-properties-capplet.c: use appropriate - window border icon. - -2003-04-29 Kjartan Maraas <kmaraas@gnome.org> - - * sound-properties-capplet.c: (main): Plug a leak. - -Tue Feb 4 17:09:18 2003 Jonathan Blandford <jrb@redhat.com> - - * Release 2.2.0.1 - -Tue Jan 21 01:15:14 2003 Jonathan Blandford <jrb@gnome.org> - - * Release 2.2.0 - -Thu Jan 16 02:41:09 2003 Jonathan Blandford <jrb@gnome.org> - - * Release 2.1.7 - -2003-01-10 Jody Goldberg <jody@gnome.org> - - * Release 2.1.6 - -2002-12-18 Jody Goldberg <jody@gnome.org> - - * Release 2.1.5 - -2002-11-23 Jody Goldberg <jody@gnome.org> - - * Release 2.1.3 - -2002-11-02 Jody Goldberg <jody@gnome.org> - - * Release 2.1.2 - -2002-10-21 Jody Goldberg <jody@gnome.org> - - * Release 2.1.1 - -2002-10-08 Deepa Natarajan <deepa.natarajan@wipro.com> - - *sound-properties.glade: Remove mnemonics for notebook tabs. - Fixes bug# 94160. - -2002-10-01 Jody Goldberg <jody@gnome.org> - - * Release 2.1.0.1 - -2002-08-21 Jody Goldberg <jody@gnome.org> - - * Release 2.1.0 - -2002-08-19 Ross Burton <ross@burtonini.com> - - * sound.desktop.in: Fix the desktop file so that it validates. - -2002-07-31 Federico Mena Quintero <federico@ximian.com> - - * sound-properties-capplet.c (main): Do not pass -1 for the dialog - flags; just pass GTK_DIALOG_NO_SEPARATOR. Fixes #89408 and #88614. - -2002-06-17 Jody Goldberg <jody@gnome.org> - - * Release 2.0.0 - -2002-05-28 Satyajit Kanungo <satyajit.kanungo@wipro.com> - - * sound-properties-capplet.c : Changed the help file link - to get the help document from user-guide. - -2002-05-26 Jody Goldberg <jody@gnome.org> - - * sound-properties-capplet.c (dialog_button_clicked_cb) : Improve - handling of help failures. - -Sun May 26 11:32:09 2002 Jonathan Blandford <jrb@gnome.org> - - * sound-properties-capplet.c (main): use APPID instead of argv[0] - -2002-05-08 Jody Goldberg <jody@gnome.org> - - * sound-properties-capplet.c (dialog_button_clicked_cb) : fix help path - -2002-05-07 Jody Goldberg <jody@gnome.org> - - * sound-properties-capplet.c (main) : add help. - (dialog_button_clicked_cb) : support help and support WM based exit. - -Wed Apr 10 18:05:30 2002 Jonathan Blandford <jrb@gnome.org> - - * sound.desktop.in (Exec): s/gnome2/gnome - -2002-03-27 Richard Hestilow <hestilow@ximian.com> - - * sound-properties.glade: Add mnemonics. - - * sound-properties-capplet.c (create_dialog): Connect to - properties so we know when to save. - -2002-03-27 Richard Hestilow <hestilow@ximian.com> - - * sound-properties.glade: Add mnemonics. - - * sound-properties-capplet.c (create_dialog): Connect to - properties so we know when to save. - -2002-03-10 Seth Nickell <snickell@stanford.edu> - - * main.c: (main): - * sound-properties-capplet.c: (main): - - Activate the settings daemon if its not already running. - -2002-03-07 Richard Hestilow <hestilow@ximian.com> - - * sound-properties-capplet.c (main): Okay, so I'm an idiot. - -2002-03-06 Richard Hestilow <hestilow@ximian.com> - - * sound-properties-capplet.c (main): Remove textdomain stuff. - I'm not 100% certain this is correct, but none of the other capplets - have it. - -2002-03-07 Lauris Kaplinski <lauris@ximian.com> - - * sound-properties-capplet.c: Do not include unused <esd.h> - -2002-02-27 Kjartan Maraas <kmaraas@gnome.org> - - * sound-properties-capplet.c: s/PACKAGE/GETTEXT_PACKAGE/g - -2002-02-11 Seth Nickell <snickell@stanford.edu> - - * sound-properties-capplet.c: (setup_dialog), - (dialog_button_clicked_cb), (main): - - Convert to instant apply. - -2002-02-04 Lauris Kaplinski <lauris@ximian.com> - - * sound-properties-capplet.c (create_dialog): Use g_object_set_data, - use g_signal_connect - (dialog_button_clicked_cb): GtkDialog instead of GnomeDialog - (create_dialog): Use gtk_widget_set_size_request - -2002-01-27 Seth Nickell <snickell@stanford.edu> - - * sound.desktop.in: - - Add categories field to .desktop file. - -2002-01-19 Seth Nickell <snickell@stanford.edu> - - * Makefile.am: - - Install icons into the pixmaps directory so the Panel - & Nautilus will pick up on them. - -2002-01-14 Bradford Hovinen <hovinen@ximian.com> - - * Makefile.am (bin_PROGRAMS): Rename binary gnome2-sound-properties - -2002-01-08 Richard Hestilow <hestilow@ximian.com> - - * Port to GNOME 2.0. - -2001-11-18 Richard Hestilow <hestilow@ximian.com> - - * Makefile.am (sound_properties_control_LDADD): Add libsounds.a. - - * prefs-widget.c (apply_settings): Export our settings to - gnome-config (needed by gnome-libs). Also save and reload event - sounds. - (create_dialog): Add a SoundView on the sound events. - - * sound-properties.glade: Add a tab for the sound events. - -2001-10-12 Bradford Hovinen <hovinen@ximian.com> - - * Makefile.am: Make OAF file creation generic - -2001-09-28 Bradford Hovinen <hovinen@ximian.com> - - * Makefile.am: Remove support for disabling bonobo-conf build - - * Makefile.am: Change the binary name to - mouse-properties-control and create a wrapper script from - ../common/wrapper-script.in to be named mouse-properties-capplet - -2001-07-31 Chema Celorio <chema@celorio.com> - - * Makefile.am (cappletname): add DISTDIR to install-data-local - -2001-07-27 Bradford Hovinen <hovinen@ximian.com> - - * RELEASE : 1.5.2 - -2001-07-25 Chema Celorio <chema@celorio.com> - - * Makefile.am: remove the OAF_FILE_IN_RULE and copy it here - * Makefile.am: remove the DESKTOP_IN_RULE and copy the sed here - -2001-07-25 Bradford Hovinen <hovinen@ximian.com> - - * prefs-widget.c (prefs_widget_init): Fix macro name - - * main.c (main): Fix macro name - -2001-07-24 Richard Hestilow <hestilow@ximian.com> - - * sound-properties-capplet.c (main): Pass in legacy files to - capplet_init. - (get_legacy_settings): Use the "Main" config prefix. - -2001-07-23 Bradford Hovinen <hovinen@ximian.com> - - * sound-properties-capplet.c (apply_settings): Make sure ESD gets - killed if it's supposed to - -2001-07-20 Chema Celorio <chema@celorio.com> - - * RELEASE : 1.5.0 - -2001-07-19 Bradford Hovinen <hovinen@ximian.com> - - * Makefile.am: Remove SUBDIRS - Remove extraneous EXTRA_DIST - Make sure to include defaults and OAF info files - -2001-07-18 Bradford Hovinen <hovinen@ximian.com> - - * Bonobo_Control_Capplet_sound_properties.oaf: Update for new - binary name - -2001-07-18 Richard Hestilow <hestilow@ximian.com> - - * sound-properties-capplet.c (create_dialog): Revert that. - -2001-07-18 Richard Hestilow <hestilow@ximian.com> - - * sound-properties-capplet.c (create_dialog): Change to reflect - new prototype. - -2001-07-17 Chema Celorio <chema@celorio.com> - - * Makefile.am (SUBDIRS): clean - -2001-07-17 Bradford Hovinen <hovinen@ximian.com> - - * sound-properties-capplet.c (create_dialog): Implement - (main): Call glade_gnome_init; pass create_dialog to capplet_init - (setup_dialog): Retrieve the Glade data from the widget passed to - this function - (create_dialog): Make sure dialog is destroyed when widget is - - * Makefile.am (EXTRA_DIST): Changed Applications_DATA to - Applications_in_files - (INCLUDES): Add -DGLADE_DATADIR - - * sound-properties-capplet.c (setup_dialog): Sensitize events - check box only if ESD is already enabled - - * sound-properties.glade: Prune dialog down to the two check - buttons - -2001-07-13 Bradford Hovinen <hovinen@ximian.com> - - * sound-properties-capplet.c (set_moniker_cb): Resolve - configuration database and store in property frame - (apply_cb): Retrieve configuration database from property frame - (create_control_cb): Don't store config database in property - control - (create_control_cb): Add listener for property change in config - database - (changed_cb): Implement - -2001-07-12 Bradford Hovinen <hovinen@ximian.com> - - * sound-properties-capplet.c (apply_settings): Disable launch of - esd, due to esd's general suckiness - - * sound-properties.xml: Update to use correct names for settings - - * sound-properties-capplet.c (set_moniker_cb): Change event_sound - to event_sounds - -2001-07-10 Bradford Hovinen <hovinen@ximian.com> - - * sound-properties-capplet.c (set_moniker_cb): Make full moniker - (apply_settings): Release the return value - (main): Support --get-legacy option - (get_legacy_settings): Implement - (create_control_cb): Connect apply_cb - (COPY_FROM_LEGACY): Use bonobo_config_set_... - (main): Open config database regardless of what operation is - requested; pass to create_control callback - (apply_settings): Use bonobo_config_get_... - (get_legacy_settings): - (apply_settings): Don't accept CORBA_Environment *ev any more - (create_control_cb): Store the config database in the property control - (apply_settings): Use the correct setting name - (apply_cb): Apply settings and sync - (apply_settings): Kill esd when requested - (get_legacy_settings): Sync database - - * sound-properties.xml: Fixed path name - -2001-07-09 Bradford Hovinen <hovinen@ximian.com> - - * sound-properties.xml: Use 0 and 1 rather than true and false - - * sound-properties-capplet.c (create_control_cb): Implement - (main): Use create_control_cb - - * Bonobo_Control_Capplet_sound_properties.oaf: Use PropertyControl interface - - * sound-properties-capplet.c (create_dialog_cb): Update signature - for use as a BonoboPropertyControlGetControlFn - - * Makefile.am (defaults_DATA): Add sound-properties.xml - (EXTRA_DIST): Add defaults_DATA - - * sound-properties-capplet.c (close_cb): Don't destroy the widget - -- it's already destroyed - -2001-06-07 Christian Rose <menthos@menthos.com> - - * sound-properties.desktop: Modified Swedish translation. - -2001-04-27 Bradford Hovinen <hovinen@ximian.com> - - * preferences.c (category_read_xml): Make description a child node - rather than an attribute - (sound_event_read_xml): Make name an attribute rather than a child - node - -2000-10-08 Bradford Hovinen <hovinen@helixcode.com> - - * Makefile.am (EXTRA_DIST): Add translation file - diff --git a/capplets/sound/Makefile.am b/capplets/sound/Makefile.am deleted file mode 100644 index e45a66e81..000000000 --- a/capplets/sound/Makefile.am +++ /dev/null @@ -1,65 +0,0 @@ -# This is used in GNOMECC_CAPPLETS_CFLAGS -cappletname = sound - -bin_PROGRAMS = gnome-sound-properties - -gnome_sound_properties_LDADD = \ - $(GNOMECC_CAPPLETS_LIBS) \ - $(CANBERRA_LIBS) $(SOUND_CAPPLET_LIBS) \ - $(HAL_LIBS) -gnome_sound_properties_SOURCES = \ - sound-properties-capplet.c \ - pipeline-tests.h \ - pipeline-tests.c \ - mixer-support.h \ - mixer-support.c \ - sound-theme.c \ - sound-theme.h \ - sound-theme-definition.h \ - sound-theme-file-utils.c \ - sound-theme-file-utils.h - -INCLUDES = \ - $(GNOMECC_CAPPLETS_CFLAGS) \ - $(CANBERRA_CFLAGS) $(SOUND_CAPPLET_CFLAGS) \ - $(HAL_CFLAGS) \ - -DGNOMELOCALEDIR="\"$(datadir)/locale\"" \ - -DGNOMECC_DATA_DIR="\"$(pkgdatadir)\"" \ - -DSOUND_DATA_DIR="\"$(datadir)/sounds\"" \ - -DGNOMECC_GLADE_DIR="\"$(pkgdatadir)/glade\"" - -@INTLTOOL_DESKTOP_RULE@ - -gladedir = $(pkgdatadir)/glade -dist_glade_DATA = sound-properties.glade - -icons16dir = $(datadir)/icons/hicolor/16x16/apps -dist_icons16_DATA = icons/16x16/gnome-sound-properties.png -icons22dir = $(datadir)/icons/hicolor/22x22/apps -dist_icons22_DATA = icons/22x22/gnome-sound-properties.png -icons24dir = $(datadir)/icons/hicolor/24x24/apps -dist_icons24_DATA = icons/24x24/gnome-sound-properties.png -icons32dir = $(datadir)/icons/hicolor/32x32/apps -dist_icons32_DATA = icons/32x32/gnome-sound-properties.png -icons48dir = $(datadir)/icons/hicolor/48x48/apps -dist_icons48_DATA = icons/48x48/gnome-sound-properties.png -iconssvgdir = $(datadir)/icons/hicolor/scalable/apps -dist_iconssvg_DATA = icons/scalable/gnome-sound-properties.svg - -desktopdir = $(datadir)/applications -Desktop_in_files = gnome-settings-sound.desktop.in -desktop_DATA = $(Desktop_in_files:.desktop.in=.desktop) - -gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor -uninstall-hook: update-icon-cache -install-data-hook: update-icon-cache -update-icon-cache: - @-if test -z "$(DESTDIR)"; then \ - echo "Updating Gtk icon cache."; \ - $(gtk_update_icon_cache); \ - else \ - echo "*** Icon cache not updated. After install, run this:"; \ - echo "*** $(gtk_update_icon_cache)"; \ - fi - -CLEANFILES = $(GNOMECC_CAPPLETS_CLEANFILES) $(Desktop_in_files) $(desktop_DATA) diff --git a/capplets/sound/gnome-settings-sound.desktop.in.in b/capplets/sound/gnome-settings-sound.desktop.in.in deleted file mode 100644 index f4ce59296..000000000 --- a/capplets/sound/gnome-settings-sound.desktop.in.in +++ /dev/null @@ -1,14 +0,0 @@ -[Desktop Entry] -_Name=Sound -_Comment=Enable sound and associate sounds with events -Exec=gnome-sound-properties -Icon=gnome-sound-properties -Terminal=false -Type=Application -StartupNotify=true -Categories=GNOME;GTK;Settings;HardwareSettings; -OnlyShowIn=GNOME; -X-GNOME-Bugzilla-Bugzilla=GNOME -X-GNOME-Bugzilla-Product=gnome-control-center -X-GNOME-Bugzilla-Component=sound -X-GNOME-Bugzilla-Version=@VERSION@ diff --git a/capplets/sound/icons/16x16/gnome-sound-properties.png b/capplets/sound/icons/16x16/gnome-sound-properties.png Binary files differdeleted file mode 100644 index 13b4b7f9a..000000000 --- a/capplets/sound/icons/16x16/gnome-sound-properties.png +++ /dev/null diff --git a/capplets/sound/icons/16x16/gnome-sound-properties.svg b/capplets/sound/icons/16x16/gnome-sound-properties.svg deleted file mode 100644 index f8014bfa7..000000000 --- a/capplets/sound/icons/16x16/gnome-sound-properties.svg +++ /dev/null @@ -1,585 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16" - height="16" - id="svg2" - inkscape:label="Pozadí" - sodipodi:version="0.32" - inkscape:version="0.45" - version="1.0" - sodipodi:docbase="C:\Documents and Settings\nevim\Plocha\gnome-sound-properties\16x16" - sodipodi:docname="gnome-sound-properties.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - inkscape:export-filename="C:\Documents and Settings\nevim\Plocha\gnome-sound-properties\16x16\gnome-sound-properties.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - sodipodi:modified="TRUE"> - <defs - id="defs3"> - <linearGradient - inkscape:collect="always" - id="linearGradient3973"> - <stop - style="stop-color:#babdb6;stop-opacity:1" - offset="0" - id="stop3975" /> - <stop - style="stop-color:#555753;stop-opacity:1" - offset="1" - id="stop3977" /> - </linearGradient> - <linearGradient - id="linearGradient6304" - inkscape:collect="always"> - <stop - id="stop6306" - offset="0" - style="stop-color:#eeeeec;stop-opacity:1" /> - <stop - id="stop6308" - offset="1" - style="stop-color:#80827d;stop-opacity:1" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6296"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6298" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6300" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6117"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop6119" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop6121" /> - </linearGradient> - <linearGradient - id="linearGradient6105"> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0" - id="stop6107" /> - <stop - id="stop6113" - offset="0.45209709" - style="stop-color:#ffffff;stop-opacity:1;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6109" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6091"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6093" /> - <stop - style="stop-color:#81837e;stop-opacity:0.98648649" - offset="1" - id="stop6095" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6077"> - <stop - style="stop-color:#eeeeec;stop-opacity:1" - offset="0" - id="stop6079" /> - <stop - style="stop-color:#888a85;stop-opacity:1" - offset="1" - id="stop6081" /> - </linearGradient> - <linearGradient - id="linearGradient6041" - inkscape:collect="always"> - <stop - id="stop6043" - offset="0" - style="stop-color:#729fcf;stop-opacity:1" /> - <stop - id="stop6045" - offset="1" - style="stop-color:#235195;stop-opacity:1" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6017"> - <stop - style="stop-color:#729fcf;stop-opacity:1" - offset="0" - id="stop6019" /> - <stop - style="stop-color:#3465a4;stop-opacity:1" - offset="1" - id="stop6021" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6003"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6005" /> - <stop - style="stop-color:#babdb6;stop-opacity:1" - offset="1" - id="stop6007" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient5995"> - <stop - style="stop-color:#eeeeec;stop-opacity:1" - offset="0" - id="stop5997" /> - <stop - style="stop-color:#888a85;stop-opacity:0;" - offset="1" - id="stop5999" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5995" - id="linearGradient6001" - x1="28.203571" - y1="25.09193" - x2="21.583036" - y2="35.983383" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6003" - id="linearGradient6009" - x1="15.741923" - y1="33.116215" - x2="36.696983" - y2="22.224764" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6041" - id="radialGradient6033" - cx="29.922518" - cy="32.704834" - fx="29.922518" - fy="32.704834" - r="19.736389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0244195,0,0,1.014266,-0.5092741,0.685707)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6017" - id="radialGradient6037" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2463993,0,0,1.3258525,-7.2755971,-10.235034)" - cx="23.597727" - cy="19.792301" - fx="23.597727" - fy="19.792301" - r="19.736389" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6077" - id="radialGradient6049" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2463993,0,0,1.3258525,-7.2755971,-10.235034)" - cx="32.09296" - cy="33.488297" - fx="32.09296" - fy="33.488297" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6091" - id="linearGradient6097" - x1="10.602306" - y1="35.894798" - x2="47.001671" - y2="35.690231" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6105" - id="linearGradient6111" - x1="15.551565" - y1="41" - x2="23.73423" - y2="41" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3364103,0,0,0.3372732,-0.6774362,0.1274337)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6117" - id="radialGradient6123" - cx="26.927441" - cy="25.766438" - fx="26.927441" - fy="25.766438" - r="19.161766" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6304" - id="radialGradient6290" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.1930651,0,0,9.3410036e-2,2.1701348,6.6135966)" - cx="17.831682" - cy="18.914896" - fx="17.831682" - fy="18.914896" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6296" - id="linearGradient6302" - x1="34.825703" - y1="42.345951" - x2="28.763092" - y2="32.737347" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.3541113,0,0,0.3635233,-0.7432896,-1.8035221)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6117" - id="radialGradient5028" - gradientUnits="userSpaceOnUse" - cx="26.927441" - cy="25.766438" - fx="26.927441" - fy="25.766438" - r="19.161766" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6091" - id="linearGradient5030" - gradientUnits="userSpaceOnUse" - x1="10.602306" - y1="35.894798" - x2="47.001671" - y2="35.690231" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6105" - id="linearGradient5032" - gradientUnits="userSpaceOnUse" - x1="15.551565" - y1="41" - x2="23.73423" - y2="41" - gradientTransform="translate(-60,0)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6041" - id="radialGradient5034" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0244195,0,0,1.014266,-0.5092741,0.685707)" - cx="29.922518" - cy="32.704834" - fx="29.922518" - fy="32.704834" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6296" - id="linearGradient5036" - gradientUnits="userSpaceOnUse" - x1="34.825703" - y1="42.345951" - x2="28.763092" - y2="32.737347" - gradientTransform="translate(-60,0)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6304" - id="radialGradient5038" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.4228001,0,0,0.3113668,-47.60226,19.545318)" - cx="17.831682" - cy="18.914896" - fx="17.831682" - fy="18.914896" - r="19.736389" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3973" - id="radialGradient6066" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0244195,0,0,1.014266,-0.5092741,0.685707)" - cx="29.922518" - cy="32.704834" - fx="29.922518" - fy="32.704834" - r="19.736389" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="32.217553" - inkscape:cx="12.505516" - inkscape:cy="11.160076" - inkscape:document-units="px" - inkscape:current-layer="g6029" - width="16px" - height="16px" - inkscape:showpageshadow="false" - showgrid="true" - inkscape:window-width="973" - inkscape:window-height="849" - inkscape:window-x="150" - inkscape:window-y="57" - showborder="true" /> - <metadata - id="metadata6"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>Sound CC applet</dc:title> - <dc:date>17.02.2007</dc:date> - <dc:creator> - <cc:Agent> - <dc:title>Josef vybíral</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>Josef vybíral</dc:title> - </cc:Agent> - </dc:rights> - <dc:identifier>http://blog.vybiral.info</dc:identifier> - <dc:source>http://blog.vybiral.info</dc:source> - <dc:coverage>sound, reproductor, note</dc:coverage> - <cc:license - rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/SourceCode" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - inkscape:label="Repros" - inkscape:groupmode="layer" - id="layer1" - style="display:inline"> - <path - transform="matrix(0.208749,0,0,0.1304682,1.8789228,9.6383004)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6051" - style="opacity:1;color:#000000;fill:url(#linearGradient6097);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:6.05948067;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:7.82422543;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6099" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.1565028,0,0,0.1043745,3.2846495,9.8106402)" /> - <path - style="opacity:0.56768559;fill:url(#linearGradient6111);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 4.2234611,13.618367 C 4.2234611,13.618367 5.0415386,14.96746 7.396411,14.96746 L 7.396411,12.943819 L 4.2311244,12.943819 L 4.2234611,13.618367 z" - id="path6103" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:2.95696092;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6011" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.3652519,0,0,0.3131236,-2.3364281,-0.5680786)" /> - <path - transform="matrix(0.3652519,0,0,0.28597,-2.3364279,-0.3887379)" - d="M 46.089207 25.766438 A 19.161766 19.161766 0 1 1 7.7656746,25.766438 A 19.161766 19.161766 0 1 1 46.089207 25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6013" - style="opacity:1;color:#000000;fill:url(#radialGradient6066);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:3.09416509;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.5753541;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.27477477;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6015" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.3131236,0,0,0.2498308,-0.9316158,0.8499497)" /> - <path - style="fill:url(#linearGradient6302);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 5.288702,12.37359 C 7.1369466,13.339783 12.937407,12.9293 14.003827,8.0640329 C 14.003827,8.0640329 11.452841,13.318809 5.288702,12.37359 z" - id="path6039" - sodipodi:nodetypes="csc" /> - <path - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.9999997;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.26576574;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 11.5,9.2396488 C 11.5,10.189213 9.9869494,11.092769 8.339297,11.092769 C 6.6916436,11.092769 5.6570637,10.322106 5.6570637,9.3725413 C 5.6570637,8.4229746 6.9942902,7.2700418 8.6419435,7.2700418 C 10.289597,7.2700418 11.5,8.2900852 11.5,9.2396488 z" - id="path6055" - sodipodi:nodetypes="csssc" /> - <path - style="color:#000000;fill:url(#radialGradient6290);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 10.436247,9.150001 C 10.436247,9.8952003 9.1065272,10.500001 7.4681246,10.500001 C 5.8297202,10.500001 4.5000003,9.8952003 4.5000003,9.150001 C 4.5000003,8.4048002 5.8297202,7.5000007 7.4681246,7.5000007 C 9.1065272,7.5000007 10.436247,8.4048002 10.436247,9.150001 z" - id="path6047" - sodipodi:nodetypes="csssc" /> - <g - id="g6029" - transform="matrix(0.4907271,0,0,0.4910531,3.9572021e-2,0.6295285)"> - <path - style="fill:none;fill-rule:evenodd;stroke:#ce5c00;stroke-width:6.1113472;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 29.479615,9.1193715 L 29.479615,1.8976116" - id="path5052" - sodipodi:nodetypes="cc" /> - <path - sodipodi:nodetypes="cc" - id="path6023" - d="M 17.240597,8.1228714 L 17.240597,2.9873851" - style="fill:none;fill-rule:evenodd;stroke:#ce5c00;stroke-width:6.11134768;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:6.11134768;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 17.232473,1.8009824 L 29.459229,1.7943871" - id="path6025" - sodipodi:nodetypes="cc" /> - <path - transform="matrix(1.0394076,0,0,1.0793564,-17.878825,-8.7313604)" - d="M 35.740638 17.284103 A 3.9210651 1.8830575 0 1 1 27.898507,17.284103 A 3.9210651 1.8830575 0 1 1 35.740638 17.284103 z" - sodipodi:ry="1.8830575" - sodipodi:rx="3.9210651" - sodipodi:cy="17.284103" - sodipodi:cx="31.819572" - id="path6125" - style="color:#000000;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:1.92327011;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:1.92326987;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6127" - sodipodi:cx="31.819572" - sodipodi:cy="17.284103" - sodipodi:rx="3.9210651" - sodipodi:ry="1.8830575" - d="M 35.740638 17.284103 A 3.9210651 1.8830575 0 1 1 27.898507,17.284103 A 3.9210651 1.8830575 0 1 1 35.740638 17.284103 z" - transform="matrix(1.0394077,0,0,1.0793564,-5.6520722,-8.7313603)" /> - <path - sodipodi:nodetypes="cc" - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:2.03711605;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 17.232473,10.050765 L 17.232473,1.8275403" - id="path6163" /> - <path - sodipodi:nodetypes="cc" - id="path6165" - d="M 29.467352,9.8622978 L 29.467352,1.5938" - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:2.03711605;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:2.03711605;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 17.19717,1.8126936 L 29.499999,1.7643486" - id="path6167" - sodipodi:nodetypes="cc" /> - <path - transform="matrix(0.7630495,0,0,0.5396781,3.2062471,0.5964946)" - d="M 35.740638 17.284103 A 3.9210651 1.8830575 0 1 1 27.898507,17.284103 A 3.9210651 1.8830575 0 1 1 35.740638 17.284103 z" - sodipodi:ry="1.8830575" - sodipodi:rx="3.9210651" - sodipodi:cy="17.284103" - sodipodi:cx="31.819572" - id="path6190" - style="color:#000000;fill:#ffffff;fill-opacity:0.32941176;fill-rule:evenodd;stroke:none;stroke-width:3.64232254;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="cc" - id="path6192" - d="M 17.22586,1.7943885 L 29.500001,1.7643483" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.03711557;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - id="path6212" - d="M 17.232473,8.2177037 L 17.232473,1.8711502" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.0371151;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:nodetypes="cc" /> - <path - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.03711534;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 29.467352,7.9859064 L 29.467352,1.7943879" - id="path6214" - sodipodi:nodetypes="cc" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:#ffffff;fill-opacity:0.32941176;fill-rule:evenodd;stroke:none;stroke-width:3.64232254;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6069" - sodipodi:cx="31.819572" - sodipodi:cy="17.284103" - sodipodi:rx="3.9210651" - sodipodi:ry="1.8830575" - d="M 35.740638 17.284103 A 3.9210651 1.8830575 0 1 1 27.898507,17.284103 A 3.9210651 1.8830575 0 1 1 35.740638 17.284103 z" - transform="matrix(0.7630495,0,0,0.5396781,-9.1499501,0.5964943)" /> - </g> - <path - transform="matrix(2.6334455e-2,0,0,1.557043e-2,6.2594829,7.8971624)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6206" - style="opacity:1;color:#000000;fill:#eeeeee;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.54301095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#eeeeee;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.54301095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6208" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(3.9259173e-2,0,0,2.6213758e-2,5.695126,8.8222629)" /> - </g> -</svg> diff --git a/capplets/sound/icons/22x22/gnome-sound-properties.png b/capplets/sound/icons/22x22/gnome-sound-properties.png Binary files differdeleted file mode 100644 index 8d55f04d2..000000000 --- a/capplets/sound/icons/22x22/gnome-sound-properties.png +++ /dev/null diff --git a/capplets/sound/icons/22x22/gnome-sound-properties.svg b/capplets/sound/icons/22x22/gnome-sound-properties.svg deleted file mode 100644 index 7636a75ab..000000000 --- a/capplets/sound/icons/22x22/gnome-sound-properties.svg +++ /dev/null @@ -1,595 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="22" - height="22" - id="svg2" - inkscape:label="Pozadí" - sodipodi:version="0.32" - inkscape:version="0.45" - version="1.0" - sodipodi:docbase="C:\Documents and Settings\nevim\Plocha\gnome-sound-properties\22x22" - sodipodi:docname="gnome-sound-properties.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - inkscape:export-filename="C:\Documents and Settings\nevim\Plocha\gnome-sound-properties\22x22\gnome-sound-properties.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - sodipodi:modified="true"> - <defs - id="defs3"> - <linearGradient - inkscape:collect="always" - id="linearGradient3744"> - <stop - style="stop-color:#888a85;stop-opacity:1" - offset="0" - id="stop3746" /> - <stop - style="stop-color:#2e3436;stop-opacity:1" - offset="1" - id="stop3748" /> - </linearGradient> - <linearGradient - id="linearGradient6304" - inkscape:collect="always"> - <stop - id="stop6306" - offset="0" - style="stop-color:#eeeeec;stop-opacity:1" /> - <stop - id="stop6308" - offset="1" - style="stop-color:#80827d;stop-opacity:1" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6296"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6298" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6300" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6117"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop6119" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop6121" /> - </linearGradient> - <linearGradient - id="linearGradient6105"> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0" - id="stop6107" /> - <stop - id="stop6113" - offset="0.45209709" - style="stop-color:#ffffff;stop-opacity:1;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6109" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6091"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6093" /> - <stop - style="stop-color:#81837e;stop-opacity:0.98648649" - offset="1" - id="stop6095" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6077"> - <stop - style="stop-color:#eeeeec;stop-opacity:1" - offset="0" - id="stop6079" /> - <stop - style="stop-color:#888a85;stop-opacity:1" - offset="1" - id="stop6081" /> - </linearGradient> - <linearGradient - id="linearGradient6041" - inkscape:collect="always"> - <stop - id="stop6043" - offset="0" - style="stop-color:#729fcf;stop-opacity:1" /> - <stop - id="stop6045" - offset="1" - style="stop-color:#235195;stop-opacity:1" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6017"> - <stop - style="stop-color:#729fcf;stop-opacity:1" - offset="0" - id="stop6019" /> - <stop - style="stop-color:#3465a4;stop-opacity:1" - offset="1" - id="stop6021" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6003"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6005" /> - <stop - style="stop-color:#babdb6;stop-opacity:1" - offset="1" - id="stop6007" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient5995"> - <stop - style="stop-color:#eeeeec;stop-opacity:1" - offset="0" - id="stop5997" /> - <stop - style="stop-color:#888a85;stop-opacity:0;" - offset="1" - id="stop5999" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5995" - id="linearGradient6001" - x1="28.203571" - y1="25.09193" - x2="21.583036" - y2="35.983383" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6003" - id="linearGradient6009" - x1="15.741923" - y1="33.116215" - x2="36.696983" - y2="22.224764" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6041" - id="radialGradient6033" - cx="29.922518" - cy="32.704834" - fx="29.922518" - fy="32.704834" - r="19.736389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0244195,0,0,1.014266,-0.5092741,0.685707)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6017" - id="radialGradient6037" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2463993,0,0,1.3258525,-7.2755971,-10.235034)" - cx="23.597727" - cy="19.792301" - fx="23.597727" - fy="19.792301" - r="19.736389" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6077" - id="radialGradient6049" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2463993,0,0,1.3258525,-7.2755971,-10.235034)" - cx="32.09296" - cy="33.488297" - fx="32.09296" - fy="33.488297" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6091" - id="linearGradient6097" - x1="10.602306" - y1="35.894798" - x2="47.001671" - y2="35.690231" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6105" - id="linearGradient6111" - x1="15.551565" - y1="41" - x2="23.73423" - y2="41" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.4566304,0,0,0.4578007,-9.82064e-2,-0.1950787)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6117" - id="radialGradient6123" - cx="26.927441" - cy="25.766438" - fx="26.927441" - fy="25.766438" - r="19.161766" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6304" - id="radialGradient6290" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2235424,0,0,0.1245467,4.9289984,8.3181279)" - cx="17.831682" - cy="18.914896" - fx="17.831682" - fy="18.914896" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6296" - id="linearGradient6302" - x1="34.825703" - y1="42.345951" - x2="28.763092" - y2="32.737347" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.480657,0,0,0.4934313,-0.1875933,-2.8160779)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6117" - id="radialGradient5028" - gradientUnits="userSpaceOnUse" - cx="26.927441" - cy="25.766438" - fx="26.927441" - fy="25.766438" - r="19.161766" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6091" - id="linearGradient5030" - gradientUnits="userSpaceOnUse" - x1="10.602306" - y1="35.894798" - x2="47.001671" - y2="35.690231" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6105" - id="linearGradient5032" - gradientUnits="userSpaceOnUse" - x1="15.551565" - y1="41" - x2="23.73423" - y2="41" - gradientTransform="translate(-60,0)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6041" - id="radialGradient5034" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0244195,0,0,1.014266,-0.5092741,0.685707)" - cx="29.922518" - cy="32.704834" - fx="29.922518" - fy="32.704834" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6296" - id="linearGradient5036" - gradientUnits="userSpaceOnUse" - x1="34.825703" - y1="42.345951" - x2="28.763092" - y2="32.737347" - gradientTransform="translate(-60,0)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6304" - id="radialGradient5038" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.4228001,0,0,0.3113668,-47.60226,19.545318)" - cx="17.831682" - cy="18.914896" - fx="17.831682" - fy="18.914896" - r="19.736389" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3744" - id="radialGradient6066" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0244195,0,0,1.014266,-0.5092741,0.685707)" - cx="29.922518" - cy="32.704834" - fx="29.922518" - fy="32.704834" - r="19.736389" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="34.171876" - inkscape:cx="10.729483" - inkscape:cy="17.062453" - inkscape:document-units="px" - inkscape:current-layer="g6029" - width="22px" - height="22px" - inkscape:showpageshadow="false" - showgrid="true" - inkscape:window-width="757" - inkscape:window-height="575" - inkscape:window-x="221" - inkscape:window-y="374" - showborder="false" /> - <metadata - id="metadata6"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>Sound CC applet</dc:title> - <dc:date>17.02.2007</dc:date> - <dc:creator> - <cc:Agent> - <dc:title>Josef vybíral</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>Josef vybíral</dc:title> - </cc:Agent> - </dc:rights> - <dc:identifier>http://blog.vybiral.info</dc:identifier> - <dc:source>http://blog.vybiral.info</dc:source> - <dc:coverage>sound, reproductor, note</dc:coverage> - <cc:license - rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/SourceCode" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - inkscape:label="Repros" - inkscape:groupmode="layer" - id="layer1" - style="display:inline"> - <path - transform="matrix(0.5218726,0,0,0.3914044,-3.0526925,4.4149024)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6115" - style="opacity:0.78165935;color:#000000;fill:url(#radialGradient6123);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.04187703;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - transform="matrix(0.2870299,0,0,0.1637207,3.2710188,13.144325)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6051" - style="opacity:1;color:#000000;fill:url(#linearGradient6097);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:4.61301279;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:5.82070923;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6099" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.2348426,0,0,0.1256814,4.6762892,13.853362)" /> - <path - style="opacity:0.56768559;fill:url(#linearGradient6111);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 6.5540829,18.116953 C 6.5540829,18.116953 7.66451,19.948156 10.860923,19.948156 L 10.860923,17.20135 L 6.5644849,17.20135 L 6.5540829,18.116953 z" - id="path6103" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:2.16422367;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6011" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207 25.766438 A 19.161766 19.161766 0 1 1 7.7656746,25.766438 A 19.161766 19.161766 0 1 1 46.089207 25.766438 z" - transform="matrix(0.4957789,0,0,0.430633,-2.3500582,-1.34419)" /> - <path - transform="matrix(0.4957789,0,0,0.4174981,-2.3500579,-1.2574379)" - d="M 46.089207 25.766438 A 19.161766 19.161766 0 1 1 7.7656746,25.766438 A 19.161766 19.161766 0 1 1 46.089207 25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6013" - style="opacity:1;color:#000000;fill:url(#radialGradient6066);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:2.19800472;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.48414516;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35675675;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6015" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.4435917,0,0,0.3653108,-0.9447891,8.72424e-2)" /> - <path - style="fill:url(#linearGradient6302);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 8,16.427344 C 10.508736,17.738814 18.382058,17.181643 19.829575,10.577731 C 19.829575,10.577731 16.366965,17.710345 8,16.427344 z" - id="path6039" - sodipodi:nodetypes="csc" /> - <path - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999958;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.26576574;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 14.500001,12.076181 C 14.500001,13.318181 12.946278,14.5 11.254335,14.5 C 9.5623909,14.5 8.5000002,13.491999 8.5000002,12.25 C 8.5000002,11.007998 9.873173,9.4999998 11.565117,9.4999998 C 13.257061,9.4999998 14.500001,10.834183 14.500001,12.076181 z" - id="path6055" - sodipodi:nodetypes="csssc" /> - <path - style="color:#000000;fill:url(#radialGradient6290);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 14.5,11.7 C 14.5,12.693599 12.96037,13.5 11.063329,13.5 C 9.1662861,13.5 7.6266566,12.693599 7.6266566,11.7 C 7.6266566,10.706399 9.1662861,9.5 11.063329,9.5 C 12.96037,9.5 14.5,10.706399 14.5,11.7 z" - id="path6047" - sodipodi:nodetypes="csssc" /> - <g - id="g6029" - transform="matrix(0.6660941,0,0,0.6678303,0.8804439,0.4696392)"> - <path - style="fill:none;fill-rule:evenodd;stroke:#ce5c00;stroke-width:4.4980092;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 29.5,8.6499115 L 29.5,1.4935517" - id="path5052" - sodipodi:nodetypes="cc" /> - <path - sodipodi:nodetypes="cc" - id="path6023" - d="M 18.945615,7.5049013 L 18.945615,1.567109" - style="fill:none;fill-rule:evenodd;stroke:#ce5c00;stroke-width:4.49801016;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:4.4980092;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 18.945606,1.5722642 L 29.500001,1.4999998" - id="path6025" - sodipodi:nodetypes="cc" /> - <path - transform="matrix(0.9571947,0,0,1.186958,-13.763854,-10.748001)" - d="M 35.740638 17.284103 A 3.9210651 1.8830575 0 1 1 27.898507,17.284103 A 3.9210651 1.8830575 0 1 1 35.740638 17.284103 z" - sodipodi:ry="1.8830575" - sodipodi:rx="3.9210651" - sodipodi:cy="17.284103" - sodipodi:cx="31.819572" - id="path6125" - style="color:#000000;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:1.40663421;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:1.40319479;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6127" - sodipodi:cx="31.819572" - sodipodi:cy="17.284103" - sodipodi:rx="3.9210651" - sodipodi:ry="1.8830575" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - transform="matrix(0.957195,0,0,1.1927835,-3.2548378,-10.837719)" /> - <path - sodipodi:nodetypes="cc" - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:1.49933648;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 18.945606,9.0297806 L 18.945606,0.93297361" - id="path6163" /> - <path - sodipodi:nodetypes="cc" - id="path6165" - d="M 29.5,9.596807 L 29.5,1.5" - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:1.49933648;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:1.4993366;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 19.5,1.5797955 L 29.499999,1.5" - id="path6167" - sodipodi:nodetypes="cc" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.13763928;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6188" - sodipodi:cx="31.819572" - sodipodi:cy="17.284103" - sodipodi:rx="3.9210651" - sodipodi:ry="1.8830575" - d="M 35.740638 17.284103 A 3.9210651 1.8830575 0 1 1 27.898507,17.284103 A 3.9210651 1.8830575 0 1 1 35.740638 17.284103 z" - transform="matrix(0.574317,0,0,0.3975944,-1.5808514,2.9064109)" /> - <path - transform="matrix(0.574317,0,0,0.3975946,8.9281769,2.9064074)" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - sodipodi:ry="1.8830575" - sodipodi:rx="3.9210651" - sodipodi:cy="17.284103" - sodipodi:cx="31.819572" - id="path6190" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.13763881;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="cc" - id="path6192" - d="M 18.945606,1.5722642 L 29.500001,1.4999998" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.49933612;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - id="path6212" - d="M 18.945605,9.0297805 L 18.945605,0.97658404" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.49933589;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:nodetypes="cc" /> - <path - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.499336;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 29.454632,9.0773723 L 29.454632,1.4952556" - id="path6214" - sodipodi:nodetypes="cc" /> - </g> - <path - transform="matrix(3.5745376e-2,0,0,2.1134654e-2,9.7316574,9.798915)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6206" - style="opacity:1;color:#000000;fill:#eeeeee;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.54301095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#eeeeee;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.54301095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6208" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(5.3288892e-2,0,0,3.5581465e-2,8.2339412,10.513453)" /> - </g> -</svg> diff --git a/capplets/sound/icons/24x24/gnome-sound-properties.png b/capplets/sound/icons/24x24/gnome-sound-properties.png Binary files differdeleted file mode 100644 index 3b873fa4c..000000000 --- a/capplets/sound/icons/24x24/gnome-sound-properties.png +++ /dev/null diff --git a/capplets/sound/icons/32x32/gnome-sound-properties.png b/capplets/sound/icons/32x32/gnome-sound-properties.png Binary files differdeleted file mode 100644 index 3a6c791fa..000000000 --- a/capplets/sound/icons/32x32/gnome-sound-properties.png +++ /dev/null diff --git a/capplets/sound/icons/32x32/gnome-sound-properties.svg b/capplets/sound/icons/32x32/gnome-sound-properties.svg deleted file mode 100644 index d1e308d38..000000000 --- a/capplets/sound/icons/32x32/gnome-sound-properties.svg +++ /dev/null @@ -1,633 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="32" - height="32" - id="svg2" - inkscape:label="Pozadí" - sodipodi:version="0.32" - inkscape:version="0.45" - version="1.0" - sodipodi:docbase="C:\Documents and Settings\nevim\Plocha\gnome-sound-properties\32x32" - sodipodi:docname="gnome-sound-properties.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - inkscape:export-filename="C:\Documents and Settings\nevim\Plocha\gnome-sound-properties\32x32\gnome-sound-properties.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - sodipodi:modified="TRUE"> - <defs - id="defs3"> - <linearGradient - inkscape:collect="always" - id="linearGradient3478"> - <stop - style="stop-color:#888a85;stop-opacity:1" - offset="0" - id="stop3480" /> - <stop - style="stop-color:#2e3436;stop-opacity:1" - offset="1" - id="stop3482" /> - </linearGradient> - <linearGradient - id="linearGradient6304" - inkscape:collect="always"> - <stop - id="stop6306" - offset="0" - style="stop-color:#eeeeec;stop-opacity:1" /> - <stop - id="stop6308" - offset="1" - style="stop-color:#80827d;stop-opacity:1" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6296"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6298" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6300" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6117"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop6119" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop6121" /> - </linearGradient> - <linearGradient - id="linearGradient6105"> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0" - id="stop6107" /> - <stop - id="stop6113" - offset="0.45209709" - style="stop-color:#ffffff;stop-opacity:1;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6109" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6091"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6093" /> - <stop - style="stop-color:#81837e;stop-opacity:0.98648649" - offset="1" - id="stop6095" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6077"> - <stop - style="stop-color:#eeeeec;stop-opacity:1" - offset="0" - id="stop6079" /> - <stop - style="stop-color:#888a85;stop-opacity:1" - offset="1" - id="stop6081" /> - </linearGradient> - <linearGradient - id="linearGradient6041" - inkscape:collect="always"> - <stop - id="stop6043" - offset="0" - style="stop-color:#729fcf;stop-opacity:1" /> - <stop - id="stop6045" - offset="1" - style="stop-color:#235195;stop-opacity:1" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6017"> - <stop - style="stop-color:#729fcf;stop-opacity:1" - offset="0" - id="stop6019" /> - <stop - style="stop-color:#3465a4;stop-opacity:1" - offset="1" - id="stop6021" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6003"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6005" /> - <stop - style="stop-color:#babdb6;stop-opacity:1" - offset="1" - id="stop6007" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient5995"> - <stop - style="stop-color:#eeeeec;stop-opacity:1" - offset="0" - id="stop5997" /> - <stop - style="stop-color:#888a85;stop-opacity:0;" - offset="1" - id="stop5999" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5995" - id="linearGradient6001" - x1="28.203571" - y1="25.09193" - x2="21.583036" - y2="35.983383" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6003" - id="linearGradient6009" - x1="15.741923" - y1="33.116215" - x2="36.696983" - y2="22.224764" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3478" - id="radialGradient6033" - cx="29.922518" - cy="32.704834" - fx="29.922518" - fy="32.704834" - r="19.736389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0244195,0,0,1.014266,-0.5092741,0.685707)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6017" - id="radialGradient6037" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2463993,0,0,1.3258525,-7.2755971,-10.235034)" - cx="23.597727" - cy="19.792301" - fx="23.597727" - fy="19.792301" - r="19.736389" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6077" - id="radialGradient6049" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2463993,0,0,1.3258525,-7.2755971,-10.235034)" - cx="32.09296" - cy="33.488297" - fx="32.09296" - fy="33.488297" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6091" - id="linearGradient6097" - x1="10.602306" - y1="35.894798" - x2="47.001671" - y2="35.690231" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6105" - id="linearGradient6111" - x1="15.551565" - y1="41" - x2="23.73423" - y2="41" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.6707857,0,0,0.6714555,0.1522499,-0.5175596)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6117" - id="radialGradient6123" - cx="26.927441" - cy="25.766438" - fx="26.927441" - fy="25.766438" - r="19.161766" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6304" - id="radialGradient6290" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.2927078,0,0,0.1868201,7.9676686,12.727192)" - cx="17.831682" - cy="18.914896" - fx="17.831682" - fy="18.914896" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6296" - id="linearGradient6302" - x1="34.825703" - y1="42.345951" - x2="28.763092" - y2="32.737347" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.6707857,0,0,0.6714555,0.2643719,-0.8007536)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6117" - id="radialGradient5028" - gradientUnits="userSpaceOnUse" - cx="26.927441" - cy="25.766438" - fx="26.927441" - fy="25.766438" - r="19.161766" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6091" - id="linearGradient5030" - gradientUnits="userSpaceOnUse" - x1="10.602306" - y1="35.894798" - x2="47.001671" - y2="35.690231" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6105" - id="linearGradient5032" - gradientUnits="userSpaceOnUse" - x1="15.551565" - y1="41" - x2="23.73423" - y2="41" - gradientTransform="translate(-60,0)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6041" - id="radialGradient5034" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0244195,0,0,1.014266,-0.5092741,0.685707)" - cx="29.922518" - cy="32.704834" - fx="29.922518" - fy="32.704834" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6296" - id="linearGradient5036" - gradientUnits="userSpaceOnUse" - x1="34.825703" - y1="42.345951" - x2="28.763092" - y2="32.737347" - gradientTransform="translate(-60,0)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6304" - id="radialGradient5038" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.4228001,0,0,0.3113668,-47.60226,19.545318)" - cx="17.831682" - cy="18.914896" - fx="17.831682" - fy="18.914896" - r="19.736389" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="11.390625" - inkscape:cx="4.3711817" - inkscape:cy="8.9010469" - inkscape:document-units="px" - inkscape:current-layer="layer1" - width="32px" - height="32px" - inkscape:showpageshadow="false" - showgrid="true" - inkscape:window-width="973" - inkscape:window-height="575" - inkscape:window-x="137" - inkscape:window-y="364" - showborder="true" /> - <metadata - id="metadata6"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>Sound CC applet</dc:title> - <dc:date>17.02.2007</dc:date> - <dc:creator> - <cc:Agent> - <dc:title>Josef vybíral</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>Josef vybíral</dc:title> - </cc:Agent> - </dc:rights> - <dc:identifier>http://blog.vybiral.info</dc:identifier> - <dc:source>http://blog.vybiral.info</dc:source> - <dc:coverage>sound, reproductor, note</dc:coverage> - <cc:license - rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/SourceCode" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - inkscape:label="Repros" - inkscape:groupmode="layer" - id="layer1" - style="display:inline"> - <path - transform="matrix(0.7306216,0,0,0.550649,-3.6737696,7.2603278)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6115" - style="opacity:0.78165935;color:#000000;fill:url(#radialGradient6123);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.04187703;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - transform="matrix(0.3675679,0,0,0.2313647,6.3534448,19.105201)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6051" - style="opacity:1;color:#000000;fill:url(#linearGradient6097);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:3.4291203;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4.00196743;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6099" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.3325614,0,0,0.1877503,7.2960798,20.064714)" /> - <path - style="opacity:0.56768559;fill:url(#linearGradient6111);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 9.9244001,26.34066 C 9.9244001,26.34066 11.555607,29.026482 16.251108,29.026482 L 16.251108,24.997749 L 9.9396806,24.997749 L 9.9244001,26.34066 z" - id="path6103" /> - <path - transform="matrix(0.704528,0,0,0.6001535,-2.9711354,0.536183)" - d="M 46.089207 25.766438 A 19.161766 19.161766 0 1 1 7.7656746,25.766438 A 19.161766 19.161766 0 1 1 46.089207 25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6216" - style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1.53786957;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1.53786969;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6011" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.704528,0,0,0.6001535,-2.9711354,-0.4638168)" /> - <path - transform="matrix(0.6001535,0,0,0.5218726,-0.1605969,2.0532033)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6013" - style="opacity:1;color:#000000;fill:url(#radialGradient6033);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1.78684342;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.37387384;fill-rule:evenodd;stroke:none;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6089" - sodipodi:cx="19.378376" - sodipodi:cy="17.854717" - sodipodi:rx="0.44991162" - sodipodi:ry="0.72862023" - d="M 19.828288,17.854717 A 0.44991162,0.72862023 0 1 1 18.928464,17.854717 A 0.44991162,0.72862023 0 1 1 19.828288,17.854717 z" - transform="matrix(1.4909278,0,0,0.9215439,-11.969865,6.5294779)" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.67257559;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.27477477;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6015" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.6523407,0,0,0.5479662,-1.5658662,0.8808633)" /> - <path - style="fill:url(#linearGradient6302);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 11.690651,25.385463 C 14.622182,26.899688 25.803902,26.716115 28.437373,18 C 28.437373,18 24.656592,27.536969 11.690651,25.385463 z" - id="path6039" - sodipodi:nodetypes="csc" /> - <path - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.9999997;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.26576574;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 21.499999,18.106655 C 21.499999,19.845455 19.185416,21.5 16.664922,21.5 C 14.144429,21.5 12.561783,20.088799 12.561783,18.35 C 12.561783,16.611199 14.607402,14.5 17.127895,14.5 C 19.648389,14.5 21.499999,16.367856 21.499999,18.106655 z" - id="path6055" - sodipodi:nodetypes="csssc" /> - <path - style="color:#000000;fill:url(#radialGradient6290);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 20.500001,17.800001 C 20.500001,19.290401 18.484,20.500001 16.000001,20.500001 C 13.516001,20.500001 11.5,19.290401 11.5,17.800001 C 11.5,16.3096 13.516001,14.500001 16.000001,14.500001 C 18.484,14.500001 20.500001,16.3096 20.500001,17.800001 z" - id="path6047" - sodipodi:nodetypes="csssc" /> - <path - transform="matrix(1.4909278,0,0,0.9215439,-13.982223,6.5294779)" - d="M 19.828288,17.854717 A 0.44991162,0.72862023 0 1 1 18.928464,17.854717 A 0.44991162,0.72862023 0 1 1 19.828288,17.854717 z" - sodipodi:ry="0.72862023" - sodipodi:rx="0.44991162" - sodipodi:cy="17.854717" - sodipodi:cx="19.378376" - id="path6087" - style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.37387384;fill-rule:evenodd;stroke:none;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6083" - sodipodi:cx="19.378376" - sodipodi:cy="17.854717" - sodipodi:rx="0.44991162" - sodipodi:ry="0.72862023" - d="M 19.828288,17.854717 A 0.44991162,0.72862023 0 1 1 18.928464,17.854717 A 0.44991162,0.72862023 0 1 1 19.828288,17.854717 z" - transform="matrix(1.1113294,0,0,0.9215439,-6.0357588,6.8746387)" /> - <path - transform="matrix(1.1113294,0,0,0.9215439,-4.0357588,6.8746387)" - d="M 19.828288,17.854717 A 0.44991162,0.72862023 0 1 1 18.928464,17.854717 A 0.44991162,0.72862023 0 1 1 19.828288,17.854717 z" - sodipodi:ry="0.72862023" - sodipodi:rx="0.44991162" - sodipodi:cy="17.854717" - sodipodi:cx="19.378376" - id="path6085" - style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <g - id="g6029"> - <path - style="fill:none;fill-rule:evenodd;stroke:#ce5c00;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 29.5,9.596807 L 29.5,1.5" - id="path5052" - sodipodi:nodetypes="cc" /> - <path - sodipodi:nodetypes="cc" - id="path6023" - d="M 19.5,10.596807 L 19.5,2.5" - style="fill:none;fill-rule:evenodd;stroke:#ce5c00;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:1" - d="M 19.5,2.5000002 L 29.5,1.4999998" - id="path6025" - sodipodi:nodetypes="cc" /> - <path - transform="matrix(0.7698254,0,0,1.0621027,-7.0140504,-6.8574932)" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - sodipodi:ry="1.8830575" - sodipodi:rx="3.9210651" - sodipodi:cy="17.284103" - sodipodi:cx="31.819572" - id="path6125" - style="color:#000000;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:1.10591173;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:1.10932291;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6127" - sodipodi:cx="31.819572" - sodipodi:cy="17.284103" - sodipodi:rx="3.9210651" - sodipodi:ry="1.8830575" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - transform="matrix(0.7650983,0,0,1.0621027,3.1548997,-7.8574931)" /> - <path - sodipodi:nodetypes="cc" - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 19.5,10.548403 L 19.5,2.4515964" - id="path6163" /> - <path - sodipodi:nodetypes="cc" - id="path6165" - d="M 29.5,9.596807 L 29.5,1.5" - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 19.5,2.5 L 29.499999,1.5" - id="path6167" - sodipodi:nodetypes="cc" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.91454017;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6188" - sodipodi:cx="31.819572" - sodipodi:cy="17.284103" - sodipodi:rx="3.9210651" - sodipodi:ry="1.8830575" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - transform="matrix(0.5100655,0,0,0.5348658,1.269933,2.2481411)" /> - <path - transform="matrix(0.5100655,0,0,0.5348658,11.269932,1.2481419)" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - sodipodi:ry="1.8830575" - sodipodi:rx="3.9210651" - sodipodi:cy="17.284103" - sodipodi:cx="31.819572" - id="path6190" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.91454005;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="cc" - id="path6192" - d="M 19.5,2.5000002 L 29.5,1.4999998" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999964;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - id="path6212" - d="M 19.5,10.550799 L 19.5,2.4976027" - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999952;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:nodetypes="cc" /> - <path - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999958;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 29.5,9.596807 L 29.5,1.4999998" - id="path6214" - sodipodi:nodetypes="cc" /> - </g> - <path - transform="matrix(5.2509619e-2,0,0,3.0998156e-2,14.592227,15.607309)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6206" - style="opacity:1;color:#000000;fill:#eeeeee;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.54301095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#eeeeee;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.54301095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6208" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(7.8280879e-2,0,0,5.2187263e-2,12.392096,16.65532)" /> - </g> -</svg> diff --git a/capplets/sound/icons/48x48/gnome-sound-properties.png b/capplets/sound/icons/48x48/gnome-sound-properties.png Binary files differdeleted file mode 100644 index 61dd43b8c..000000000 --- a/capplets/sound/icons/48x48/gnome-sound-properties.png +++ /dev/null diff --git a/capplets/sound/icons/scalable/gnome-sound-properties.svg b/capplets/sound/icons/scalable/gnome-sound-properties.svg deleted file mode 100644 index b22a9543d..000000000 --- a/capplets/sound/icons/scalable/gnome-sound-properties.svg +++ /dev/null @@ -1,554 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48" - height="48" - id="svg2" - inkscape:label="Pozadí" - sodipodi:version="0.32" - inkscape:version="0.45" - version="1.0" - sodipodi:docbase="C:\Documents and Settings\nevim\Plocha\gnome-sound-properties\scalable" - sodipodi:docname="gnome-sound-properties.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - inkscape:export-filename="C:\Documents and Settings\nevim\Plocha\git-sound.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - sodipodi:modified="true"> - <defs - id="defs3"> - <linearGradient - id="linearGradient6304" - inkscape:collect="always"> - <stop - id="stop6306" - offset="0" - style="stop-color:#eeeeec;stop-opacity:1" /> - <stop - id="stop6308" - offset="1" - style="stop-color:#80827d;stop-opacity:1" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6296"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop6298" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6300" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6117"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop6119" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop6121" /> - </linearGradient> - <linearGradient - id="linearGradient6105"> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="0" - id="stop6107" /> - <stop - id="stop6113" - offset="0.45209709" - style="stop-color:#ffffff;stop-opacity:1;" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop6109" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6091"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6093" /> - <stop - style="stop-color:#81837e;stop-opacity:0.98648649" - offset="1" - id="stop6095" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6077"> - <stop - style="stop-color:#eeeeec;stop-opacity:1" - offset="0" - id="stop6079" /> - <stop - style="stop-color:#888a85;stop-opacity:1" - offset="1" - id="stop6081" /> - </linearGradient> - <linearGradient - id="linearGradient6041" - inkscape:collect="always"> - <stop - id="stop6043" - offset="0" - style="stop-color:#888a85;stop-opacity:1" /> - <stop - id="stop6045" - offset="1" - style="stop-color:#2e3436;stop-opacity:1" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6017"> - <stop - style="stop-color:#729fcf;stop-opacity:1" - offset="0" - id="stop6019" /> - <stop - style="stop-color:#3465a4;stop-opacity:1" - offset="1" - id="stop6021" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient6003"> - <stop - style="stop-color:#888a85;stop-opacity:1;" - offset="0" - id="stop6005" /> - <stop - style="stop-color:#babdb6;stop-opacity:1" - offset="1" - id="stop6007" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient5995"> - <stop - style="stop-color:#eeeeec;stop-opacity:1" - offset="0" - id="stop5997" /> - <stop - style="stop-color:#888a85;stop-opacity:0;" - offset="1" - id="stop5999" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5995" - id="linearGradient6001" - x1="28.203571" - y1="25.09193" - x2="21.583036" - y2="35.983383" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6003" - id="linearGradient6009" - x1="15.741923" - y1="33.116215" - x2="36.696983" - y2="22.224764" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6041" - id="radialGradient6033" - cx="29.922518" - cy="32.704834" - fx="29.922518" - fy="32.704834" - r="19.736389" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0244195,0,0,1.014266,-0.5092741,0.685707)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6017" - id="radialGradient6037" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2463993,0,0,1.3258525,-7.2755971,-10.235034)" - cx="23.597727" - cy="19.792301" - fx="23.597727" - fy="19.792301" - r="19.736389" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6077" - id="radialGradient6049" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2463993,0,0,1.3258525,-7.2755971,-10.235034)" - cx="32.09296" - cy="33.488297" - fx="32.09296" - fy="33.488297" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6091" - id="linearGradient6097" - x1="10.602306" - y1="35.894798" - x2="47.001671" - y2="35.690231" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6105" - id="linearGradient6111" - x1="15.551565" - y1="41" - x2="23.73423" - y2="41" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6117" - id="radialGradient6123" - cx="26.927441" - cy="25.766438" - fx="26.927441" - fy="25.766438" - r="19.161766" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient6304" - id="radialGradient6290" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.4228001,0,0,0.3113668,12.39774,19.545318)" - cx="17.831682" - cy="18.914896" - fx="17.831682" - fy="18.914896" - r="19.736389" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6296" - id="linearGradient6302" - x1="34.825703" - y1="42.345951" - x2="28.763092" - y2="32.737347" - gradientUnits="userSpaceOnUse" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="5.0625" - inkscape:cx="66.935794" - inkscape:cy="36.523345" - inkscape:document-units="px" - inkscape:current-layer="layer1" - width="48px" - height="48px" - inkscape:showpageshadow="false" - showgrid="true" - inkscape:window-width="973" - inkscape:window-height="849" - inkscape:window-x="0" - inkscape:window-y="26" - showborder="false" /> - <metadata - id="metadata6"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>Sound CC applet</dc:title> - <dc:date>17.02.2007</dc:date> - <dc:creator> - <cc:Agent> - <dc:title>Josef vybíral</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>Josef vybíral</dc:title> - </cc:Agent> - </dc:rights> - <dc:identifier>http://blog.vybiral.info</dc:identifier> - <dc:source>http://blog.vybiral.info</dc:source> - <dc:coverage>sound, reproductor, note</dc:coverage> - <cc:license - rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> - <cc:permits - rdf:resource="http://web.resource.org/cc/Reproduction" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/Distribution" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/Notice" /> - <cc:permits - rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/ShareAlike" /> - <cc:requires - rdf:resource="http://web.resource.org/cc/SourceCode" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - inkscape:label="Repros" - inkscape:groupmode="layer" - id="layer1" - style="display:inline"> - <path - transform="matrix(1.0959323,0,0,0.8089025,-5.5106536,11.657465)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6115" - style="opacity:0.78165935;color:#000000;fill:url(#radialGradient6123);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.04187703;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - transform="matrix(0.5479662,0,0,0.3392172,9.2446732,29.259582)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6051" - style="opacity:1;color:#000000;fill:url(#linearGradient6097);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:2.31944561;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.65089345;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6099" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.4957789,0,0,0.2870299,10.649943,30.604261)" /> - <path - style="opacity:0.56768559;fill:url(#linearGradient6111);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 14.568214,40 C 14.568214,40 17,44 24,44 L 24,38 L 14.590994,38 L 14.568214,40 z" - id="path6103" /> - <path - transform="matrix(1.0176515,0,0,0.8871834,-3.4027508,1.6404446)" - d="M 46.089207 25.766438 A 19.161766 19.161766 0 1 1 7.7656746,25.766438 A 19.161766 19.161766 0 1 1 46.089207 25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6216" - style="opacity:1;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1.05243087;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1.05243087;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6011" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(1.0176515,0,0,0.8871834,-3.4027508,0.6404459)" /> - <path - transform="matrix(0.9230621,0,0,0.8089025,-0.6682001,3.1574644)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6013" - style="opacity:1;color:#000000;fill:url(#radialGradient6033);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:1.15727437;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.37387384;fill-rule:evenodd;stroke:none;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6089" - sodipodi:cx="19.378376" - sodipodi:cy="17.854717" - sodipodi:rx="0.44991162" - sodipodi:ry="0.72862023" - d="M 19.828288,17.854717 A 0.44991162,0.72862023 0 1 1 18.928464,17.854717 A 0.44991162,0.72862023 0 1 1 19.828288,17.854717 z" - transform="matrix(2.2226587,0,0,1.3724571,-18.071516,10.495167)" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1150111;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.27477477;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6015" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.9632898,0,0,0.8349961,-1.9805954,1.985125)" /> - <path - style="fill:url(#linearGradient6302);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 17.034171,38.999185 C 21.404465,41.254322 38.074051,40.980927 42,28 C 42,28 36.363653,42.203426 17.034171,38.999185 z" - id="path6039" - sodipodi:nodetypes="csc" /> - <path - style="color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.26576574;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 31.223824,28.652367 C 31.223824,31.136367 27.928944,33.500002 24.340943,33.500002 C 20.752943,33.500002 18.499998,31.484001 18.499998,29.000001 C 18.499998,26.516 21.411999,23.5 24.999999,23.5 C 28.588,23.5 31.223824,26.168366 31.223824,28.652367 z" - id="path6055" - sodipodi:nodetypes="csssc" /> - <path - style="color:#000000;fill:url(#radialGradient6290);fill-opacity:1;fill-rule:evenodd;stroke:#2e3436;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 30.5,28.000001 C 30.5,30.484001 27.588,32.500002 23.999999,32.500002 C 20.411999,32.500002 17.499998,30.484001 17.499998,28.000001 C 17.499998,25.516 20.411999,22.5 23.999999,22.5 C 27.588,22.5 30.5,25.516 30.5,28.000001 z" - id="path6047" - sodipodi:nodetypes="csssc" /> - <path - transform="matrix(2.2226587,0,0,1.3724571,-21.071516,10.495167)" - d="M 19.828288,17.854717 A 0.44991162,0.72862023 0 1 1 18.928464,17.854717 A 0.44991162,0.72862023 0 1 1 19.828288,17.854717 z" - sodipodi:ry="0.72862023" - sodipodi:rx="0.44991162" - sodipodi:cy="17.854717" - sodipodi:cx="19.378376" - id="path6087" - style="opacity:1;color:#000000;fill:#ffffff;fill-opacity:0.37387384;fill-rule:evenodd;stroke:none;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6083" - sodipodi:cx="19.378376" - sodipodi:cy="17.854717" - sodipodi:rx="0.44991162" - sodipodi:ry="0.72862023" - d="M 19.828288,17.854717 A 0.44991162,0.72862023 0 1 1 18.928464,17.854717 A 0.44991162,0.72862023 0 1 1 19.828288,17.854717 z" - transform="matrix(1.1113294,0,0,1.3724571,0.9642417,11.495167)" /> - <path - transform="matrix(1.1113294,0,0,1.3724571,3.9642417,11.495167)" - d="M 19.828288,17.854717 A 0.44991162,0.72862023 0 1 1 18.928464,17.854717 A 0.44991162,0.72862023 0 1 1 19.828288,17.854717 z" - sodipodi:ry="0.72862023" - sodipodi:rx="0.44991162" - sodipodi:cy="17.854717" - sodipodi:cx="19.378376" - id="path6085" - style="opacity:1;color:#000000;fill:#2e3436;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999976;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35585584;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <g - id="g6194" - transform="translate(1,-1)"> - <path - sodipodi:nodetypes="cccssssccssccccssccssssssc" - id="path6129" - d="M 43.46875,1.96875 C 43.341028,1.9713959 43.211505,1.998755 43.09375,2.03125 L 29.625,3 C 29.574046,2.9958278 29.520341,2.9676689 29.46875,2.96875 C 29.027926,2.9778822 28.643139,3.1915368 28.375,3.5 C 28.202199,3.6987874 28.080462,3.9184764 28.03125,4.1875 C 28.010332,4.2875967 27.999825,4.3942071 28,4.5 C 28.000051,4.5307141 27.998058,4.562684 28,4.59375 L 28,18.5 C 27.99235,19.040954 28.282754,19.53979 28.75,19.8125 C 29.217247,20.085209 29.782753,20.085209 30.25,19.8125 C 30.717246,19.53979 31.00765,19.040954 31,18.5 L 31,7.90625 L 42,7.125 L 42,17.5 C 41.99235,18.040954 42.282754,18.53979 42.75,18.8125 C 43.217247,19.085209 43.782753,19.085209 44.25,18.8125 C 44.717246,18.53979 45.00765,18.040954 45,17.5 L 45,3.71875 C 45.009715,3.6495233 45.000118,3.5716662 45,3.5 C 45.000636,3.4696526 45.001192,3.4364034 45,3.40625 C 44.993528,3.3026966 44.963584,3.1901475 44.9375,3.09375 C 44.91387,3.0012937 44.884391,2.9299172 44.84375,2.84375 C 44.80019,2.7563932 44.7464,2.670181 44.6875,2.59375 C 44.644141,2.5354224 44.614528,2.4582776 44.5625,2.40625 C 44.273456,2.1172076 43.877428,1.960186 43.46875,1.96875 z" - style="fill:#ce5c00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - transform="matrix(1.1476473,0,0,1.3276281,-10.517647,-3.9468619)" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - sodipodi:ry="1.8830575" - sodipodi:rx="3.9210651" - sodipodi:cy="17.284103" - sodipodi:cx="31.819572" - id="path6125" - style="opacity:1;color:#000000;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:0.81013507;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#f57900;fill-opacity:1;fill-rule:evenodd;stroke:#ce5c00;stroke-width:0.81013507;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6127" - sodipodi:cx="31.819572" - sodipodi:cy="17.284103" - sodipodi:rx="3.9210651" - sodipodi:ry="1.8830575" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - transform="matrix(1.1476473,0,0,1.3276281,3.4823534,-4.9468619)" /> - <path - sodipodi:nodetypes="cc" - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 29.5,19.5 L 29.5,4.5" - id="path6163" /> - <path - sodipodi:nodetypes="cc" - id="path6165" - d="M 43.5,18.5 L 43.5,3.5" - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 29.5,4.5 L 43.5,3.5" - id="path6167" - sodipodi:nodetypes="cc" /> - <path - sodipodi:nodetypes="cc" - id="path6186" - d="M 29.5,6.5 L 43.5,5.5" - style="fill:none;fill-rule:evenodd;stroke:#f57900;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.1859163;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6188" - sodipodi:cx="31.819572" - sodipodi:cy="17.284103" - sodipodi:rx="3.9210651" - sodipodi:ry="1.8830575" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - transform="matrix(0.8926147,0,0,0.7965768,-2.4026189,5.2318838)" /> - <path - transform="matrix(0.8926146,0,0,0.7965769,11.597384,4.2318822)" - d="M 35.740638,17.284103 A 3.9210651,1.8830575 0 1 1 27.898507,17.284103 A 3.9210651,1.8830575 0 1 1 35.740638,17.284103 z" - sodipodi:ry="1.8830575" - sodipodi:rx="3.9210651" - sodipodi:cy="17.284103" - sodipodi:cx="31.819572" - id="path6190" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.18591619;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:nodetypes="cc" - id="path6192" - d="M 29.5,4.5 L 43.5,3.5" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999964;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> - <path - id="path6212" - d="M 29.5,19.5 L 29.5,4.5" - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999964;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:nodetypes="cc" /> - <path - style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999964;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32882882;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 43.5,18.5 L 43.5,3.5" - id="path6214" - sodipodi:nodetypes="cc" /> - </g> - <path - transform="matrix(7.8280762e-2,0,0,4.6165615e-2,23.392097,23.925862)" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - sodipodi:ry="19.161766" - sodipodi:rx="19.161766" - sodipodi:cy="25.766438" - sodipodi:cx="26.927441" - id="path6206" - style="opacity:1;color:#000000;fill:#eeeeee;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.54301095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#eeeeee;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.54301095;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - id="path6208" - sodipodi:cx="26.927441" - sodipodi:cy="25.766438" - sodipodi:rx="19.161766" - sodipodi:ry="19.161766" - d="M 46.089207,25.766438 A 19.161766,19.161766 0 1 1 7.7656746,25.766438 A 19.161766,19.161766 0 1 1 46.089207,25.766438 z" - transform="matrix(0.1043744,0,0,7.828089e-2,19.189462,25.48298)" /> - </g> -</svg> diff --git a/capplets/sound/mixer-support.c b/capplets/sound/mixer-support.c deleted file mode 100644 index 228f4f7a0..000000000 --- a/capplets/sound/mixer-support.c +++ /dev/null @@ -1,140 +0,0 @@ -/* mixer-support.c - * - * Copyright (C) 2007 Jan Arne Petersen <jap@gnome.org> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <string.h> - -#include <glib.h> -#include <glib/gi18n.h> -#include <gst/audio/mixerutils.h> - -#include <gtk/gtk.h> - -#include "mixer-support.h" - -GtkTreeModel * -create_mixer_device_tree_model (void) -{ - GtkListStore *device_store; - GList *mixer_list, *l; - guint unknown = 0; - - device_store = gtk_list_store_new (MIXER_DEVICE_MODEL_COLUMN_COUNT, - G_TYPE_STRING, G_TYPE_STRING, GST_TYPE_ELEMENT); - - mixer_list = gst_audio_default_registry_mixer_filter(NULL, FALSE, NULL); - - for (l = mixer_list; l != NULL; l = l->next) { - GstElement *mixer = GST_ELEMENT (l->data); - gchar *device_name = NULL, *device = NULL; - GstElementFactory *factory; - const gchar *longname, *factory_name; - gchar *name; - GtkTreeIter tree_iter; - - gst_element_set_state (mixer, GST_STATE_READY); - - /* fetch name */ - if (g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (mixer)), "device-name")) { - g_object_get (mixer, "device-name", &device_name, NULL); - } - if (g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (mixer)), "device")) { - g_object_get (mixer, "device", &device, NULL); - } - - factory = gst_element_get_factory (mixer); - longname = gst_element_factory_get_longname (factory); - factory_name = gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)); - - /* gst_element_set_state (mixer, GST_STATE_NULL); */ - - if (device_name) { - name = g_strdup_printf ("%s (%s)", device_name, longname); - g_free (device_name); - } else { - gchar *title; - - unknown++; - - title = g_strdup_printf (_("Unknown Volume Control %d"), unknown); - name = g_strdup_printf ("%s (%s)", title, longname); - g_free (title); - } - - if (device) { - gchar *tmp; - - tmp = g_strdup_printf ("%s:%s", factory_name, device); - g_free (device); - device = tmp; - } else { - device = g_strdup (factory_name); - } - - gtk_list_store_insert_with_values (device_store, &tree_iter, -1, - MIXER_DEVICE_MODEL_NAME_COLUMN, name, - MIXER_DEVICE_MODEL_DEVICE_COLUMN, device, - MIXER_DEVICE_MODEL_MIXER_COLUMN, mixer, - -1); - - gst_element_set_state (mixer, GST_STATE_NULL); - gst_object_unref (GST_OBJECT (mixer)); - - g_free (name); - g_free (device); - } - - g_list_free (mixer_list); - - gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (device_store), - MIXER_DEVICE_MODEL_NAME_COLUMN, - GTK_SORT_ASCENDING); - - return GTK_TREE_MODEL (device_store); -} - -GtkTreeModel * -create_mixer_tracks_tree_model_for_mixer (GstMixer *mixer) -{ - GtkListStore *tracks_store; - const GList *tracks, *l; - - tracks_store = gtk_list_store_new (MIXER_TRACKS_MODEL_COLUMN_COUNT, - G_TYPE_STRING); - - tracks = gst_mixer_list_tracks (mixer); - for (l = tracks; l != NULL; l = l->next) { - GstMixerTrack *track = l->data; - GtkTreeIter iter; - - if (track->num_channels <= 0) { - continue; - } - - gtk_list_store_insert_with_values (tracks_store, &iter, -1, - MIXER_TRACKS_MODEL_LABEL_COLUMN, track->label, - -1); - } - - return GTK_TREE_MODEL (tracks_store); -} diff --git a/capplets/sound/mixer-support.h b/capplets/sound/mixer-support.h deleted file mode 100644 index ef540c00d..000000000 --- a/capplets/sound/mixer-support.h +++ /dev/null @@ -1,47 +0,0 @@ -/* mixer-support.h - * - * Copyright (C) 2007 Jan Arne Petersen <jap@gnome.org> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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 __GNOME_SETTINGS_MIXER_SUPPORT__ -#define __GNOME_SETTINGS_MIXER_SUPPORT__ - -#include <gtk/gtk.h> -#include <gst/interfaces/mixer.h> - -G_BEGIN_DECLS - -enum { - MIXER_DEVICE_MODEL_NAME_COLUMN, - MIXER_DEVICE_MODEL_DEVICE_COLUMN, - MIXER_DEVICE_MODEL_MIXER_COLUMN, - MIXER_DEVICE_MODEL_COLUMN_COUNT -}; - -enum { - MIXER_TRACKS_MODEL_LABEL_COLUMN, - MIXER_TRACKS_MODEL_COLUMN_COUNT -}; - -GtkTreeModel *create_mixer_device_tree_model (void); -GtkTreeModel *create_mixer_tracks_tree_model_for_mixer (GstMixer *mixer); - -G_END_DECLS - -#endif diff --git a/capplets/sound/pipeline-tests.c b/capplets/sound/pipeline-tests.c deleted file mode 100644 index c75b1932b..000000000 --- a/capplets/sound/pipeline-tests.c +++ /dev/null @@ -1,187 +0,0 @@ -/* -*- mode: c; style: linux -*- */ -/* -*- c-basic-offset: 2 -*- */ - -/* pipeline-tests.c - * Copyright (C) 2002 Jan Schmidt - * Copyright (C) 2005 Tim-Philipp Müller <tim centricular net> - * Copyright (C) 2006 Jürg Billeter <j@bitron.ch> - * - * Written by: Jan Schmidt <thaytan@mad.scientist.com> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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. - */ -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <locale.h> -#include <string.h> -#include <glade/glade.h> -#include <gtk/gtk.h> -#include <gst/gst.h> -#include <glib/gi18n.h> - -#include "pipeline-tests.h" -#define WID(s) glade_xml_get_widget (interface_xml, s) -static gint timeout_tag; - -static GstElement *gst_test_pipeline; - -static void pipeline_error_dlg (GtkWindow * parent, - const gchar * pipeline, const gchar * error_message); - -/* User responded in the dialog */ -static void -user_test_pipeline_response (GtkDialog * widget, gint response_id, - GladeXML * dialog) -{ - /* Close the window causing the test to end */ - gtk_widget_hide (GTK_WIDGET (widget)); -} - -/* Timer timeout has been occurred */ -static gboolean -user_test_pipeline_timeout (gpointer data) -{ - gtk_progress_bar_pulse (GTK_PROGRESS_BAR (data)); - return TRUE; -} - -/* Build the pipeline */ -static gboolean -build_test_pipeline (const gchar * pipeline, GError ** p_err) -{ - gst_test_pipeline = gst_parse_launch (pipeline, p_err); - - if (*p_err == NULL && gst_test_pipeline != NULL) - return TRUE; - - return FALSE; -} - -static void -pipeline_error_dlg (GtkWindow * parent, - const gchar * pipeline, const gchar * error_message) -{ - gchar *errstr; - - if (error_message) { - errstr = g_strdup_printf ("%s: %s", pipeline, error_message); - } else { - errstr = g_strdup_printf (_("Failed to construct test pipeline for '%s'"), - pipeline); - } - - if (parent == NULL) { - g_printerr ("%s", errstr); - } else { - GtkWidget *dialog; - - dialog = gtk_message_dialog_new (parent, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", errstr); - - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - } - - g_free (errstr); -} - -/* Construct and run the pipeline. Use the indicated parent - * for any user interaction window. - */ -void -user_test_pipeline (GladeXML * interface_xml, - GtkWindow * parent, const gchar * pipeline) -{ - GstStateChangeReturn ret; - GtkDialog *dialog = NULL; - GstMessage *msg; - GError *err = NULL; - GstBus *bus; - - gst_test_pipeline = NULL; - - /* Build the pipeline */ - if (!build_test_pipeline (pipeline, &err)) { - /* Show the error pipeline */ - pipeline_error_dlg (parent, pipeline, (err) ? err->message : NULL); - if (err) - g_error_free (err); - return; - } - - /* Setup the 'click ok when done' dialog */ - if (parent) { - dialog = GTK_DIALOG (WID ("test_pipeline")); - /* g_return_if_fail(dialog != NULL); */ - gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); - gtk_window_set_transient_for (GTK_WINDOW (dialog), parent); - g_signal_connect (G_OBJECT (dialog), "response", - (GCallback) user_test_pipeline_response, interface_xml); - } - - /* Start the pipeline and wait for max. 3 seconds for it to start up */ - gst_element_set_state (gst_test_pipeline, GST_STATE_PLAYING); - ret = gst_element_get_state (gst_test_pipeline, NULL, NULL, 3 * GST_SECOND); - - /* Check if any error messages were posted on the bus */ - bus = gst_element_get_bus (gst_test_pipeline); - msg = gst_bus_poll (bus, GST_MESSAGE_ERROR, 0); - gst_object_unref (bus); - - if (msg != NULL) { - gchar *dbg = NULL; - - gst_message_parse_error (msg, &err, &dbg); - gst_message_unref (msg); - - g_message ("Error running pipeline '%s': %s [%s]", pipeline, - (err) ? err->message : "(null error)", - (dbg) ? dbg : "no additional debugging details"); - pipeline_error_dlg (parent, pipeline, err->message); - g_error_free (err); - g_free (dbg); - } else if (ret != GST_STATE_CHANGE_SUCCESS) { - pipeline_error_dlg (parent, pipeline, NULL); - } else { - /* Show the dialog */ - if (dialog) { - gtk_window_present (GTK_WINDOW (dialog)); - timeout_tag = - g_timeout_add (50, user_test_pipeline_timeout, - WID ("test_pipeline_progress")); - gtk_dialog_run (GTK_DIALOG (dialog)); - g_source_remove (timeout_tag); - gtk_widget_hide (GTK_WIDGET (dialog)); - } else { - gint secs; - - /* A bit hacky: No parent dialog, run in limited test mode */ - for (secs = 0; secs < 5; ++secs) { - g_print ("."); - g_usleep (G_USEC_PER_SEC); /* 1 second */ - } - } - } - - if (gst_test_pipeline) { - gst_element_set_state (gst_test_pipeline, GST_STATE_NULL); - gst_object_unref (gst_test_pipeline); - gst_test_pipeline = NULL; - } -} diff --git a/capplets/sound/pipeline-tests.h b/capplets/sound/pipeline-tests.h deleted file mode 100644 index e2e396d35..000000000 --- a/capplets/sound/pipeline-tests.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- mode: c; style: linux -*- */ -/* -*- c-basic-offset: 2 -*- */ - -/* pipeline-tests.h - * Copyright (C) 2002 Jan Schmidt - * Copyright (C) 2006 Jürg Billeter <j@bitron.ch> - * - * Written by: Jan Schmidt <thaytan@mad.scientist.com> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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 __PIPELINE_TESTS_HH__ -#define __PIPELINE_TESTS_HH__ - -#include <gtk/gtk.h> -#include <glade/glade.h> - -void user_test_pipeline(GladeXML *interface_xml, - GtkWindow *parent, - const gchar *pipeline); - - -#endif diff --git a/capplets/sound/sound-properties-capplet.c b/capplets/sound/sound-properties-capplet.c deleted file mode 100644 index ff45e032b..000000000 --- a/capplets/sound/sound-properties-capplet.c +++ /dev/null @@ -1,1206 +0,0 @@ -/* -*- mode: c; style: linux -*- */ - -/* sound-properties-capplet.c - * Copyright (C) 2001 Ximian, Inc. - * - * Written by Bradford Hovinen <hovinen@ximian.com> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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. - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <glib/gi18n.h> -#include <gconf/gconf-client.h> - -#include <gdk/gdkx.h> -#include <X11/X.h> -#include <X11/Xlib.h> -#include <X11/XKBlib.h> - -#include "capplet-util.h" -#include "gconf-property-editor.h" - -#include <glade/glade.h> - -#include <dbus/dbus-glib-lowlevel.h> -#if USE_HAL -#include <libhal.h> -#endif -#include <gst/gst.h> -#include <gst/interfaces/propertyprobe.h> - -/* Needed only for the sound capplet */ - -#include <stdlib.h> -#include <sys/types.h> - -#include "activate-settings-daemon.h" -#include "pipeline-tests.h" -#include "mixer-support.h" -#include "sound-theme.h" - -typedef enum { - AUDIO_PLAYBACK, - AUDIO_CAPTURE, - VIDEO_PLAYBACK, - VIDEO_CAPTURE -} device_type; - -typedef enum { - SYSTEM_ALSA, - SYSTEM_OSS -} SoundSystemType; - -typedef struct _DeviceChooser -{ - const gchar *profile; - int type; - GtkWidget *combobox; - GtkListStore *model; - const gchar *test_pipeline; -} DeviceChooser; - -#define EVENT_SOUNDS_KEY "/desktop/gnome/sound/event_sounds" -#define INPUT_SOUNDS_KEY "/desktop/gnome/sound/input_feedback_sounds" -#define DEFAULT_MIXER_DEVICE_KEY "/desktop/gnome/sound/default_mixer_device" -#define DEFAULT_MIXER_TRACKS_KEY "/desktop/gnome/sound/default_mixer_tracks" -#define AUDIO_BELL_KEY "/apps/metacity/general/audible_bell" -#define GST_GCONF_DIR "/system/gstreamer/0.10" - -#define AUDIO_TEST_SOURCE "audiotestsrc wave=sine freq=512" -#define VIDEO_TEST_SOURCE "videotestsrc" -#define AUDIO_TEST_IN_BETWEEN " ! audioconvert ! audioresample ! " -#define VIDEO_TEST_IN_BETWEEN " ! ffmpegcolorspace ! " - -/* Capplet-specific prototypes */ - -static GConfClient *gconf_client = NULL; -static GtkWidget *dialog_win = NULL; -static GList *device_choosers = NULL; - -static gboolean -CheckXKB (void) -{ - gboolean have_xkb = FALSE; - Display *dpy; - int opcode, errorBase, major, minor, xkbEventBase; - - gdk_error_trap_push (); - dpy = GDK_DISPLAY (); - have_xkb = XkbQueryExtension (dpy, &opcode, &xkbEventBase, - &errorBase, &major, &minor) - && XkbUseExtension (dpy, &major, &minor); - XSync (dpy, FALSE); - gdk_error_trap_pop (); - - return have_xkb; -} - -static GladeXML * -create_dialog (void) -{ - GladeXML *dialog; - GtkWidget *image; - - dialog = glade_xml_new (GNOMECC_GLADE_DIR "/sound-properties.glade", "sound_prefs_dialog", NULL); - if (dialog == NULL) - return NULL; - - image = gtk_image_new_from_stock (GTK_STOCK_APPLY, GTK_ICON_SIZE_BUTTON); - gtk_button_set_image (GTK_BUTTON (WID ("sounds_playback_test")), image); - - image = gtk_image_new_from_stock (GTK_STOCK_APPLY, GTK_ICON_SIZE_BUTTON); - gtk_button_set_image (GTK_BUTTON (WID ("music_playback_test")), image); - - image = gtk_image_new_from_stock (GTK_STOCK_APPLY, GTK_ICON_SIZE_BUTTON); - gtk_button_set_image (GTK_BUTTON (WID ("chat_audio_playback_test")), image); - - image = gtk_image_new_from_stock (GTK_STOCK_APPLY, GTK_ICON_SIZE_BUTTON); - gtk_button_set_image (GTK_BUTTON (WID ("chat_audio_capture_test")), image); - - return dialog; -} - -static gboolean -element_available (const gchar *pipeline) -{ - gboolean res = FALSE; - gchar *p, *first_space; - - if (pipeline == NULL || *pipeline == '\0') - return FALSE; - - p = g_strdup (pipeline); - - g_strstrip (p); - - /* skip the check and pretend all is fine if it's something that does - * not look like an element name (e.g. parentheses to signify a bin) */ - if (!g_ascii_isalpha (*p)) { - g_free (p); - return TRUE; - } - - /* just the element name, no arguments */ - first_space = strchr (p, ' '); - if (first_space != NULL) - *first_space = '\0'; - - /* check if element is available */ - res = gst_default_registry_check_feature_version (p, GST_VERSION_MAJOR, - GST_VERSION_MINOR, 0); - - g_free (p); - return res; -} -static void -add_device (int type, const gchar *pipeline, const gchar *description, const gchar *selection) -{ - GList *l; - DeviceChooser *device_chooser; - gchar *row_pipeline; - gchar *description_mod; - const gchar *suffix; - gboolean selected, row_selected; - gboolean found_pipeline, found_selected; - GtkTreeModel *model; - GtkTreeIter iter; - GtkTreeIter found_pipeline_iter = { }; - GtkTreeIter found_selected_iter = { }; - - /* only display pipelines available on this system */ - if (!element_available (pipeline)) - return; - - for (l = device_choosers; l != NULL; l = l->next) { - device_chooser = (DeviceChooser *) l->data; - - if (device_chooser->type != type) - continue; - - /* if we're adding/updating the currently selected device - * we're only interested in the DeviceChooser for the - * corresponding profile */ - if (selection != NULL && strcmp (selection, device_chooser->profile) != 0) - continue; - - selected = (selection != NULL); - - found_pipeline = FALSE; - found_selected = FALSE; - - model = GTK_TREE_MODEL (device_chooser->model); - - if (gtk_tree_model_get_iter_first (model, &iter)) { - do { - gtk_tree_model_get (model, &iter, 0, &row_pipeline, 2, &row_selected, -1); - - if (strcmp (row_pipeline, pipeline) == 0) { - found_pipeline_iter = iter; - found_pipeline = TRUE; - } - g_free (row_pipeline); - - if (row_selected) { - found_selected_iter = iter; - found_selected = TRUE; - } - - } while (gtk_tree_model_iter_next (model, &iter)); - } - - if (found_pipeline) { - /* the specified pipeline is already in the model */ - iter = found_pipeline_iter; - if (!selected) { - /* if the specified pipeline was only already in - * the model because it's currently selected, - * clear the corresponding flag in the model - * (happens when reconnecting usb audio devices) */ - gtk_list_store_set (device_chooser->model, &iter, 2, FALSE, -1); - } - } else if (selected && found_selected) { - /* we only allow one custom pipeline in the model */ - iter = found_selected_iter; - } else { - /* no existing pipeline found that would be appropriate - * to reuse, so append a new row */ - gtk_list_store_append (device_chooser->model, &iter); - gtk_list_store_set (device_chooser->model, &iter, 2, selected, -1); - } - - gtk_list_store_set (device_chooser->model, &iter, 0, pipeline, -1); - - if (!selected || !found_pipeline) { - /* either we're appending a new row or we're updating - * a row with non-appropriate description */ - - if (selected) { - /* we add the specified pipeline only because - * it's the preferred device but it's neither - * a device currently detected by HAL nor a - * standard pipeline */ - if (g_str_has_prefix (pipeline, "hal")) { - suffix = _("Not connected"); - } else { - suffix = _("Custom"); - } - description_mod = g_strdup_printf ("%s (%s)", description, suffix); - } else { - description_mod = g_strdup (description); - } - gtk_list_store_set (device_chooser->model, &iter, 1, description_mod, -1); - - /* we need to store the unmodified description to not - * modify already modified descriptions */ - gtk_list_store_set (device_chooser->model, &iter, 3, description, -1); - - g_free (description_mod); - } - - if (selected) { - gtk_combo_box_set_active_iter (GTK_COMBO_BOX (device_chooser->combobox), &iter); - } - } -} - -/* Adds an element which supports the GstPropertyProbe interface. Will add - * entries for all available devices. Elements should support retrieving the - * device-name in NULL state for this to work properly/nicely. - * - * Returns TRUE if probing was successful and one or more devices were found - */ -static gboolean -add_device_with_probe (int type, const gchar *element_name, const gchar *system_description) -{ - GstPropertyProbe *probe; - GstElement *element; - GValueArray *vals; - gboolean res = FALSE; - guint i; - - /* only display pipelines available on this system */ - element = gst_element_factory_make (element_name, NULL); - if (element == NULL) - return FALSE; - - if (!GST_IS_PROPERTY_PROBE (element)) - goto done; - - probe = GST_PROPERTY_PROBE (element); - vals = gst_property_probe_probe_and_get_values_name (probe, "device"); - - if (vals == NULL) - goto done; - - for (i = 0; i < vals->n_values; ++i) { - gchar *device_name = NULL; - gchar *pipeline, *desc; - const gchar *device; - GValue *val; - - val = g_value_array_get_nth (vals, i); - device = g_value_get_string (val); - - g_object_set (element, "device", device, NULL); - - /* we assume the element is able to retrieve the description - * even if the device is in NULL state (ie. not open) */ - g_object_get (element, "device-name", &device_name, NULL); - - if (device_name) { - desc = g_strdup_printf ("%s - %s", system_description, device_name); - } else { - /* fallback, shouldn't happen */ - desc = g_strdup_printf ("%s - %s", system_description, device); - } - - pipeline = g_strdup_printf ("%s device=%s", element_name, device); - - add_device (type, pipeline, desc, NULL); - res = TRUE; - - g_free (pipeline); - g_free (desc); - g_free (device_name); - } - - g_value_array_free (vals); - -done: - gst_object_unref (element); - return res; -} - -#if USE_HAL -static void -remove_device (int type, const gchar *pipeline) -{ - GList *l; - DeviceChooser *device_chooser; - GtkTreeIter iter; - gchar *row_pipeline; - gchar *description; - gchar *description_mod; - GtkTreeModel *model; - - for (l = device_choosers; l != NULL; l = l->next) { - device_chooser = (DeviceChooser *) l->data; - - if (device_chooser->type != type) - continue; - - model = GTK_TREE_MODEL (device_chooser->model); - - gtk_combo_box_get_active_iter (GTK_COMBO_BOX (device_chooser->combobox), &iter); - gtk_tree_model_get (model, &iter, 0, &row_pipeline, -1); - - /* don't remove currently selected devices */ - if (strcmp (row_pipeline, pipeline) == 0) { - g_free (row_pipeline); - - /* let the user know that they have to reconnect the - * sound device */ - gtk_tree_model_get (model, &iter, 3, &description, -1); - description_mod = g_strdup_printf ("%s (%s)", description, _("Not connected")); - g_free (description); - gtk_list_store_set (device_chooser->model, &iter, 1, description_mod, -1); - g_free (description_mod); - } else { - g_free (row_pipeline); - - if (gtk_tree_model_get_iter_first (model, &iter)) { - do { - gtk_tree_model_get (model, &iter, 0, &row_pipeline, -1); - if (strcmp (row_pipeline, pipeline) == 0) { - g_free (row_pipeline); - gtk_list_store_remove (device_chooser->model, &iter); - break; - } - g_free (row_pipeline); - } while (gtk_tree_model_iter_next (model, &iter)); - } - } - } -} - -static gboolean -filter_device_generic (LibHalContext *ctx, const char *udi) -{ - gboolean ignore = FALSE; - gchar *parent_udi; - gchar *subsystem; - - parent_udi = libhal_device_get_property_string (ctx, udi, "info.parent", NULL); - - if (!parent_udi) - return FALSE; - - subsystem = libhal_device_get_property_string (ctx, parent_udi, "info.subsystem", NULL); - - /* filter out pc speaker */ - if (subsystem && (!strcmp (subsystem, "platform") || !strcmp (subsystem, "sound"))) { - gchar *device_id = libhal_device_get_property_string (ctx, parent_udi, "platform.id", NULL); - ignore = device_id && !strncmp (device_id, "pcspk", 5); - libhal_free_string (device_id); - } - - libhal_free_string (parent_udi); - libhal_free_string (subsystem); - - return ignore; -} - -static gboolean -filter_device_alsa (LibHalContext *ctx, const char *udi) -{ - gboolean ignore; - gchar *class_string; - - /* filter out "digitizer", "modem", "none", "unknown" */ - class_string = libhal_device_get_property_string (ctx, udi, "alsa.pcm_class", NULL); - ignore = class_string != NULL - && strcmp (class_string, "generic") != 0 - && strcmp (class_string, "multi") != 0; - libhal_free_string (class_string); - - if (!ignore) - ignore = filter_device_generic (ctx, udi); - - return ignore; -} - -static gboolean -filter_device_oss (LibHalContext *ctx, const char *udi) -{ - gboolean ignore = FALSE; - gchar *parent_udi; - gchar *subsystem; - - parent_udi = libhal_device_get_property_string (ctx, udi, "info.parent", NULL); - - if (!parent_udi) - return FALSE; - - subsystem = libhal_device_get_property_string (ctx, parent_udi, "info.subsystem", NULL); - /* filter out modem devices */ - if (subsystem && !strcmp (subsystem, "pci")) { - dbus_int32_t device_class = libhal_device_get_property_int (ctx, parent_udi, "pci.device_class", NULL); - /* this means "Simple communications controllers". Maybe there is a headerfile with definitions? - * visit http://www.acm.uiuc.edu/sigops/roll_your_own/7.c.1.html for further information */ - ignore = (device_class == 0x7); - } - - libhal_free_string (parent_udi); - libhal_free_string (subsystem); - - if (!ignore) - ignore = filter_device_generic (ctx, udi); - - return ignore; -} - -static gchar * -get_device_description (LibHalContext *ctx, const char *udi, SoundSystemType snd_sys) -{ - gchar *card_id = NULL, *device_id = NULL, *product, *desc; - const gchar *indicator = NULL; - - /* the device number should be reported if there is a second (playback) - * device with the same description on the same card */ - /* dbus_int32_t device_num = 0; */ - - switch (snd_sys) { - case SYSTEM_ALSA: - card_id = libhal_device_get_property_string (ctx, udi, "alsa.card_id", NULL); - device_id = libhal_device_get_property_string (ctx, udi, "alsa.device_id", NULL); - /* device_num = libhal_device_get_property_int (ctx, udi, "alsa.device", NULL); */ - indicator = "(ALSA)"; - break; - case SYSTEM_OSS: - card_id = libhal_device_get_property_string (ctx, udi, "oss.card_id", NULL); - device_id = libhal_device_get_property_string (ctx, udi, "oss.device_id", NULL); - /* device_num = libhal_device_get_property_int (ctx, udi, "oss.device", NULL); */ - indicator = "(OSS)"; - } - - /* card_id and device_id are not mandatory in OSS and ALSA namespace - * according to the specification so it could be possible go get an - * empty string */ - if (card_id && device_id) { - desc = g_strconcat (card_id, " ", device_id, " ", indicator, NULL); - } else { - product = libhal_device_get_property_string (ctx, udi, "info.product", NULL); - desc = g_strconcat (product, " ", indicator, NULL); - libhal_free_string (product); - } - libhal_free_string (card_id); - libhal_free_string (device_id); - - return desc; -} - -static void -device_added_alsa (LibHalContext *ctx, const char *udi) -{ - gchar *type_string; - int type; - const gchar *element; - gchar *pipeline, *description; - - if (filter_device_alsa (ctx, udi)) - return; - - type_string = libhal_device_get_property_string (ctx, udi, "alsa.type", NULL); - if (strcmp (type_string, "playback") == 0) { - type = AUDIO_PLAYBACK; - element = "halaudiosink"; - } else if (strcmp (type_string, "capture") == 0) { - type = AUDIO_CAPTURE; - element = "halaudiosrc"; - } else { - type = -1; - element = NULL; - } - libhal_free_string (type_string); - if (type == -1) { - return; - } - - pipeline = g_strconcat (element, " udi=", udi, NULL); - description = get_device_description (ctx, udi, SYSTEM_ALSA); - - add_device (type, pipeline, description, NULL); - - g_free (pipeline); - g_free (description); -} - -static void -device_added_oss (LibHalContext *ctx, const char *udi) -{ - gchar *type_string; - int type; - const gchar *element; - gchar *pipeline, *description; - - if (filter_device_oss (ctx, udi)) - return; - - type_string = libhal_device_get_property_string (ctx, udi, "oss.type", NULL); - if (strcmp (type_string, "pcm") == 0) { - type = AUDIO_PLAYBACK; - element = "halaudiosink"; - } else if (strcmp (type_string, "mixer") == 0) { - type = AUDIO_CAPTURE; - element = "halaudiosrc"; - } else { - type = -1; - element = NULL; - } - libhal_free_string (type_string); - if (type == -1) { - return; - } - - pipeline = g_strconcat (element, " udi=", udi, NULL); - description = get_device_description (ctx, udi, SYSTEM_OSS); - - add_device (type, pipeline, description, NULL); - - g_free (pipeline); - g_free (description); -} - -static void -device_added_callback (LibHalContext *ctx, const char *udi) -{ - if (libhal_device_query_capability (ctx, udi, "alsa", NULL)) { - device_added_alsa (ctx, udi); - } else if (libhal_device_query_capability (ctx, udi, "oss", NULL)) { - device_added_oss (ctx, udi); - } - -} - -static void -device_removed_callback (LibHalContext *ctx, const char *udi) -{ - gchar *pipeline; - - pipeline = g_strconcat ("halaudiosink udi=", udi, NULL); - remove_device (AUDIO_PLAYBACK, pipeline); - g_free (pipeline); - - pipeline = g_strconcat ("halaudiosrc udi=", udi, NULL); - remove_device (AUDIO_CAPTURE, pipeline); - g_free (pipeline); -} - -static void -setup_devices_by_capability (LibHalContext *ctx, const gchar *cap) -{ - DBusError error; - char **devices; - int num = 0; - - dbus_error_init (&error); - - devices = libhal_find_device_by_capability (ctx, cap, &num, &error); - if (devices != NULL) { - int i; - - for (i = 0; i < num; ++i) { - device_added_callback (ctx, devices[i]); - } - dbus_free_string_array (devices); - } else { - if (dbus_error_is_set (&error)) { - g_warning ("Calling a hal function an error occured: %s", error.message); - dbus_error_free (&error); - } - } -} - -static void -setup_hal_devices (void) -{ - DBusConnection *connection; - DBusError error; - LibHalContext *ctx; - - dbus_error_init (&error); - - connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error); - if (connection == NULL) { - /* cannot get a dbus connection */ - if (dbus_error_is_set (&error)) { - g_warning ("Getting a system dbus connection an error occured: %s", error.message); - dbus_error_free (&error); - } - return; - } - - dbus_connection_setup_with_g_main (connection, g_main_context_default ()); - - ctx = libhal_ctx_new (); - g_return_if_fail (ctx != NULL); - - libhal_ctx_set_device_added (ctx, device_added_callback); - libhal_ctx_set_device_removed (ctx, device_removed_callback); - libhal_ctx_set_dbus_connection (ctx, connection); - - if (!libhal_ctx_init (ctx, &error)) { - /* cannot connect to hald */ - if (dbus_error_is_set (&error)) { - g_warning ("Connecting to hald an error occured: %s", error.message); - dbus_error_free (&error); - } - return; - } - - setup_devices_by_capability (ctx, "alsa"); - setup_devices_by_capability (ctx, "oss"); -} -#endif - -static void -device_test_button_clicked (GtkWidget *button, gpointer user_data) -{ - DeviceChooser *device_chooser = (DeviceChooser *) user_data; - - GladeXML *dialog = glade_xml_new (GNOMECC_GLADE_DIR "/sound-properties.glade", NULL, NULL); - - user_test_pipeline (dialog, GTK_WINDOW (dialog_win), device_chooser->test_pipeline); - - g_object_unref (dialog); -} - -static gchar * -get_gconf_key_for_profile (const gchar *profile, int type) -{ - const gchar *element_type; - - switch (type) { - case AUDIO_PLAYBACK: - element_type = "audiosink"; - break; - case AUDIO_CAPTURE: - element_type = "audiosrc"; - break; - case VIDEO_PLAYBACK: - element_type = "videosink"; - break; - case VIDEO_CAPTURE: - element_type = "videosrc"; - break; - default: - g_return_val_if_reached (NULL); - } - - return g_strdup_printf ("%s/default/%s%s", GST_GCONF_DIR, profile, element_type); -} - -static void -device_changed (GtkComboBox *widget, gpointer user_data) -{ - DeviceChooser *device_chooser = (DeviceChooser *) user_data; - GtkTreeIter iter; - gchar *pipeline, *description; - gchar *base_key, *key; - - gtk_combo_box_get_active_iter (widget, &iter); - gtk_tree_model_get (GTK_TREE_MODEL (device_chooser->model), &iter, 0, &pipeline, 3, &description, -1); - - base_key = get_gconf_key_for_profile (device_chooser->profile, device_chooser->type); - gconf_client_set_string (gconf_client, base_key, pipeline, NULL); - g_free (pipeline); - key = g_strconcat (base_key, "_description", NULL); - g_free (base_key); - gconf_client_set_string (gconf_client, key, description, NULL); - g_free (description); - g_free (key); -} - -static gchar * -get_gconf_description_for_profile (const gchar *profile, int type) -{ - gchar *base_key; - gchar *key; - gchar *description; - - base_key = get_gconf_key_for_profile (profile, type); - key = g_strconcat (base_key, "_description", NULL); - g_free (base_key); - - description = gconf_client_get_string (gconf_client, key, NULL); - g_free (key); - - return description; -} - -static void -gconf_key_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) -{ - DeviceChooser *device_chooser = (DeviceChooser *) data; - gchar *description; - - description = get_gconf_description_for_profile (device_chooser->profile, device_chooser->type); - - add_device (device_chooser->type, gconf_value_get_string (gconf_entry_get_value (entry)), description, device_chooser->profile); - - g_free (description); -} - -static void -setup_device_chooser (const gchar *profile, int type, GtkWidget *combobox, GtkWidget *test_button, const gchar *test_pipeline) -{ - DeviceChooser *device_chooser; - GtkCellRenderer *cell; - gchar *gconf_key; - - g_return_if_fail (GTK_IS_COMBO_BOX (combobox)); - g_return_if_fail (GTK_IS_BUTTON (test_button)); - - device_chooser = g_malloc0 (sizeof (DeviceChooser)); - - device_chooser->profile = profile; - device_chooser->type = type; - device_chooser->combobox = combobox; - device_chooser->model = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_STRING); - device_chooser->test_pipeline = test_pipeline; - gtk_combo_box_set_model (GTK_COMBO_BOX (combobox), GTK_TREE_MODEL (device_chooser->model)); - cell = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox), cell, TRUE); - gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combobox), cell, "text", 1); - - device_choosers = g_list_prepend (device_choosers, device_chooser); - - gconf_key = get_gconf_key_for_profile (profile, type); - gconf_client_notify_add (gconf_client, gconf_key, gconf_key_changed, - device_chooser, NULL, NULL); - g_free (gconf_key); - - g_signal_connect (combobox, "changed", G_CALLBACK (device_changed), device_chooser); - - g_signal_connect (test_button, "clicked", G_CALLBACK (device_test_button_clicked), device_chooser); -} - -static void -add_selected_device (const gchar *profile, int type) -{ - gchar *gconf_key; - gchar *description; - gchar *pipeline; - - gconf_key = get_gconf_key_for_profile (profile, type); - pipeline = gconf_client_get_string (gconf_client, gconf_key, NULL); - g_free (gconf_key); - - g_return_if_fail (pipeline != NULL); - - description = get_gconf_description_for_profile (profile, type); - - add_device (type, pipeline, description, profile); - - g_free (description); - g_free (pipeline); -} - -static void -setup_devices (void) -{ - add_device (AUDIO_PLAYBACK, "autoaudiosink", _("Autodetect"), NULL); - -#if USE_HAL - setup_hal_devices (); -#endif - add_device (AUDIO_PLAYBACK, "alsasink", _("ALSA - Advanced Linux Sound Architecture"), NULL); - add_device (AUDIO_CAPTURE, "alsasrc", _("ALSA - Advanced Linux Sound Architecture"), NULL); - add_device (AUDIO_PLAYBACK, "artsdsink", _("Artsd - ART Sound Daemon"), NULL); - add_device (AUDIO_PLAYBACK, "esdsink", _("ESD - Enlightened Sound Daemon"), NULL); - add_device (AUDIO_CAPTURE, "esdmon", _("ESD - Enlightened Sound Daemon"), NULL); - /* only show legacy OSS if OSS4 isn't active and working */ - if (!add_device_with_probe (AUDIO_PLAYBACK, "oss4sink", "OSS4")) { - add_device (AUDIO_PLAYBACK, "osssink", _("OSS - Open Sound System"), NULL); - } - if (!add_device_with_probe (AUDIO_CAPTURE, "oss4src", "OSS4")) { - add_device (AUDIO_CAPTURE, "osssrc", _("OSS - Open Sound System"), NULL); - } - add_device (AUDIO_PLAYBACK, "pulsesink", _("PulseAudio Sound Server"), NULL); - add_device (AUDIO_CAPTURE, "pulsesrc", _("PulseAudio Sound Server"), NULL); - add_device (AUDIO_CAPTURE, "audiotestsrc wave=triangle is-live=true", _("Test Sound"), NULL); - add_device (AUDIO_CAPTURE, "audiotestsrc wave=silence is-live=true", _("Silence"), NULL); - - add_selected_device ("", AUDIO_PLAYBACK); - add_selected_device ("music", AUDIO_PLAYBACK); - add_selected_device ("chat", AUDIO_PLAYBACK); - add_selected_device ("", AUDIO_CAPTURE); -} - -static void -mixer_device_combobox_changed (GtkComboBox *widget, gpointer user_data) -{ - GtkTreeIter iter; - - if (gtk_combo_box_get_active_iter (widget, &iter)) { - GtkTreeModel *model; - gchar *device = NULL; - - model = gtk_combo_box_get_model (widget); - gtk_tree_model_get (model, &iter, - MIXER_DEVICE_MODEL_DEVICE_COLUMN, &device, -1); - - gconf_client_set_string (gconf_client, DEFAULT_MIXER_DEVICE_KEY, device, NULL); - g_free (device); - } -} - -static void -add_track_label_to_list (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GSList **list) -{ - gchar *label; - - gtk_tree_model_get (model, iter, - MIXER_TRACKS_MODEL_LABEL_COLUMN, &label, - -1); - - *list = g_slist_prepend (*list, label); -} - -static void -mixer_tracks_selection_changed (GtkTreeSelection *selection, gpointer user_data) -{ - GSList *label_list = NULL; - - gtk_tree_selection_selected_foreach (selection, - (GtkTreeSelectionForeachFunc)add_track_label_to_list, - &label_list); - - label_list = g_slist_reverse (label_list); - gconf_client_set_list (gconf_client, DEFAULT_MIXER_TRACKS_KEY, GCONF_VALUE_STRING, label_list, NULL); - - g_slist_foreach (label_list, (GFunc)g_free, NULL); - g_slist_free (label_list); -} - -static void -update_mixer_tracks_selection (GSList *tracks, GladeXML *dialog) -{ - GtkWidget *tracks_widget; - GtkTreeModel *model; - GtkTreeSelection *selection; - GtkTreeIter iter; - - tracks_widget = WID ("mixer_tracks"); - - model = gtk_tree_view_get_model (GTK_TREE_VIEW (tracks_widget)); - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tracks_widget)); - - g_signal_handlers_block_by_func (G_OBJECT (selection), G_CALLBACK (mixer_tracks_selection_changed), NULL); - - gtk_tree_selection_unselect_all (selection); - - if (tracks != NULL) { - if (gtk_tree_model_get_iter_first (model, &iter)) { - do { - gchar *label; - GSList *t; - - gtk_tree_model_get (model, &iter, MIXER_TRACKS_MODEL_LABEL_COLUMN, &label, -1); - - for (t = tracks; t != NULL; t = t->next) { - if (!strcmp (label, t->data)) { - gtk_tree_selection_select_iter (selection, &iter); - break; - } - } - g_free (label); - } while (gtk_tree_model_iter_next (model, &iter)); - } - } - - g_signal_handlers_unblock_by_func (G_OBJECT (selection), G_CALLBACK (mixer_tracks_selection_changed), NULL); - - /* FIXME: if none selected, select master track */ -} - -static void -default_mixer_tracks_notify (GConfClient *client, guint cnxn_id, GConfEntry *entry, GladeXML *dialog) -{ - GSList *tracks; - - tracks = gconf_client_get_list (gconf_client, DEFAULT_MIXER_TRACKS_KEY, GCONF_VALUE_STRING, NULL); - - update_mixer_tracks_selection (tracks, dialog); - - g_slist_foreach (tracks, (GFunc) g_free, NULL); - g_slist_free (tracks); -} - -static void -update_mixer_device_combobox (const gchar *mixer_device, GladeXML *dialog) -{ - GtkWidget *device_widget; - GtkTreeModel *model; - GtkTreeIter iter; - - device_widget = WID ("mixer_device"); - model = gtk_combo_box_get_model (GTK_COMBO_BOX (device_widget)); - - /* try to find stored factory and device in the mixer device list */ - if (mixer_device != NULL && *mixer_device != '\0') { - if (gtk_tree_model_get_iter_first (model, &iter)) { - do { - gchar *device = NULL; - - gtk_tree_model_get (model, &iter, - MIXER_DEVICE_MODEL_DEVICE_COLUMN, &device, - -1); - - if (!strcmp (device, mixer_device)) { - gtk_combo_box_set_active_iter (GTK_COMBO_BOX (device_widget), &iter); - - g_free (device); - break; - } - - g_free (device); - } while (gtk_tree_model_iter_next (model, &iter)); - } - } - - /* try to select first mixer entry */ - /* FIXME use the first with a master track */ - if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (device_widget), &iter)) { - if (gtk_tree_model_get_iter_first (model, &iter)) { - gtk_combo_box_set_active_iter (GTK_COMBO_BOX (device_widget), &iter); - } - } - - /* fill track list */ - if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (device_widget), &iter)) { - GtkWidget *tracks_widget; - GstElement *mixer; - GtkTreeSelection *selection; - GtkTreeModel *tracks_model; - GSList *tracks; - - tracks_widget = WID ("mixer_tracks"); - - gtk_tree_model_get (model, &iter, - MIXER_DEVICE_MODEL_MIXER_COLUMN, &mixer, - -1); - - gst_element_set_state (mixer, GST_STATE_READY); - - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tracks_widget)); - g_signal_handlers_block_by_func (G_OBJECT (selection), G_CALLBACK (mixer_tracks_selection_changed), NULL); - - tracks_model = create_mixer_tracks_tree_model_for_mixer (GST_MIXER (mixer)); - gtk_tree_view_set_model (GTK_TREE_VIEW (tracks_widget), tracks_model); - g_object_unref (tracks_model); - - gst_element_set_state (mixer, GST_STATE_NULL); - gst_object_unref (GST_OBJECT (mixer)); - - /* updated mixer tracks selection */ - tracks = gconf_client_get_list (gconf_client, DEFAULT_MIXER_TRACKS_KEY, GCONF_VALUE_STRING, NULL); - update_mixer_tracks_selection (tracks, dialog); - g_slist_foreach (tracks, (GFunc) g_free, NULL); - g_slist_free (tracks); - - g_signal_handlers_unblock_by_func (G_OBJECT (selection), G_CALLBACK (mixer_tracks_selection_changed), NULL); - } -} - -static void -default_mixer_device_notify (GConfClient *client, guint cnxn_id, GConfEntry *entry, GladeXML *dialog) -{ - const gchar *mixer_device; - - mixer_device = gconf_value_get_string (gconf_entry_get_value (entry)); - - update_mixer_device_combobox (mixer_device, dialog); -} - -static void -setup_default_mixer (GladeXML *dialog) -{ - GtkWidget *device_widget, *tracks_widget; - GtkTreeModel *model; - GtkCellRenderer *renderer; - GtkTreeSelection *selection; - gchar *mixer_device; - - device_widget = WID ("mixer_device"); - tracks_widget = WID ("mixer_tracks"); - - model = create_mixer_device_tree_model (); - gtk_combo_box_set_model (GTK_COMBO_BOX (device_widget), model); - g_object_unref (G_OBJECT (model)); - - renderer = gtk_cell_renderer_text_new (); - g_object_set (renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (device_widget), renderer, TRUE); - gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (device_widget), renderer, - "text", MIXER_DEVICE_MODEL_NAME_COLUMN); - - g_signal_connect (G_OBJECT (device_widget), "changed", - G_CALLBACK (mixer_device_combobox_changed), NULL); - - renderer = gtk_cell_renderer_text_new (); - gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tracks_widget), - -1, NULL, renderer, - "text", MIXER_TRACKS_MODEL_LABEL_COLUMN, NULL); - - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tracks_widget)); - gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE); - g_signal_connect (G_OBJECT (selection), "changed", - G_CALLBACK (mixer_tracks_selection_changed), NULL); - - gconf_client_notify_add (gconf_client, DEFAULT_MIXER_DEVICE_KEY, - (GConfClientNotifyFunc) default_mixer_device_notify, dialog, NULL, NULL); - gconf_client_notify_add (gconf_client, DEFAULT_MIXER_TRACKS_KEY, - (GConfClientNotifyFunc) default_mixer_tracks_notify, dialog, NULL, NULL); - - mixer_device = gconf_client_get_string (gconf_client, DEFAULT_MIXER_DEVICE_KEY, NULL); - update_mixer_device_combobox (mixer_device, dialog); - g_free (mixer_device); -} - -/* setup_dialog - * - * Set up the property editors for our dialog - */ - -static void -setup_dialog (GladeXML *dialog, GConfChangeSet *changeset) -{ - GObject *peditor; - GtkSizeGroup *combobox_size_group; - GtkSizeGroup *label_size_group; - - gconf_client_add_dir (gconf_client, GST_GCONF_DIR, - GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); - - combobox_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - label_size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - - gtk_size_group_add_widget (label_size_group, WID ("sounds_playback_label")); - gtk_size_group_add_widget (label_size_group, WID ("music_playback_label")); - gtk_size_group_add_widget (label_size_group, WID ("chat_audio_playback_label")); - gtk_size_group_add_widget (label_size_group, WID ("chat_audio_capture_label")); - gtk_size_group_add_widget (label_size_group, WID ("mixer_device_label")); - gtk_size_group_add_widget (combobox_size_group, WID ("sounds_playback_device")); - gtk_size_group_add_widget (combobox_size_group, WID ("music_playback_device")); - gtk_size_group_add_widget (combobox_size_group, WID ("chat_audio_playback_device")); - gtk_size_group_add_widget (combobox_size_group, WID ("chat_audio_capture_device")); - - setup_device_chooser ("", AUDIO_PLAYBACK, WID ("sounds_playback_device"), - WID ("sounds_playback_test"), - AUDIO_TEST_SOURCE AUDIO_TEST_IN_BETWEEN "gconfaudiosink"); - setup_device_chooser ("music", AUDIO_PLAYBACK, WID ("music_playback_device"), - WID ("music_playback_test"), - AUDIO_TEST_SOURCE AUDIO_TEST_IN_BETWEEN "gconfaudiosink profile=music"); - setup_device_chooser ("chat", AUDIO_PLAYBACK, WID ("chat_audio_playback_device"), - WID ("chat_audio_playback_test"), - AUDIO_TEST_SOURCE AUDIO_TEST_IN_BETWEEN "gconfaudiosink profile=chat"); - setup_device_chooser ("", AUDIO_CAPTURE, WID ("chat_audio_capture_device"), - WID ("chat_audio_capture_test"), - "gconfaudiosrc" AUDIO_TEST_IN_BETWEEN "gconfaudiosink profile=chat"); - - peditor = gconf_peditor_new_boolean (NULL, EVENT_SOUNDS_KEY, WID ("events_toggle"), NULL); - gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("input_feedback_toggle")); - gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("sound_theme_combobox")); - gconf_peditor_widget_set_guard (GCONF_PROPERTY_EDITOR (peditor), WID ("sounds_treeview")); - gconf_peditor_new_boolean (NULL, INPUT_SOUNDS_KEY, WID ("input_feedback_toggle"), NULL); - gconf_peditor_new_boolean (NULL, AUDIO_BELL_KEY, WID ("bell_audible_toggle"), NULL); - - setup_default_mixer (dialog); - setup_sound_theme (dialog); - setup_sound_theme_custom (dialog, CheckXKB()); -} - -static void -dialog_response_cb (GtkWidget *dialog, gint response_id, GConfChangeSet *changeset) -{ - if (response_id == GTK_RESPONSE_HELP) { - capplet_help (GTK_WINDOW (dialog), - "goscustmulti-2"); - return; - } - - gtk_widget_destroy (dialog); -} - -int -main (int argc, char **argv) -{ - GConfChangeSet *changeset; - GladeXML *dialog; - GOptionContext *context; - gboolean apply_only = FALSE; - GOptionEntry cap_options[] = { - { "apply", 0, 0, G_OPTION_ARG_NONE, &apply_only, - N_("Just apply settings and quit (compatibility only; now handled by daemon)"), NULL }, - { "init-session-settings", 0, 0, G_OPTION_ARG_NONE, &apply_only, - N_("Just apply settings and quit (compatibility only; now handled by daemon)"), NULL }, - { NULL } - }; - - /* Since gstreamer and gnome-vfs require threads, we - * have to initialise threads here as the first call to glib. - */ - g_thread_init (NULL); - - context = g_option_context_new (N_("- GNOME Sound Preferences")); - g_option_context_add_main_entries (context, cap_options, GETTEXT_PACKAGE); - g_option_context_add_group (context, gst_init_get_option_group ()); - - capplet_init (context, &argc, &argv); - - activate_settings_daemon (); - - gconf_client = gconf_client_get_default (); - gconf_client_add_dir (gconf_client, "/desktop/gnome/sound", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - gconf_client_add_dir (gconf_client, "/apps/metacity/general", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - - dialog = create_dialog (); - - if (dialog) { - changeset = gconf_change_set_new (); - setup_dialog (dialog, changeset); - setup_devices (); - - dialog_win = WID ("sound_prefs_dialog"); - g_signal_connect (dialog_win, "response", G_CALLBACK (dialog_response_cb), changeset); - g_signal_connect (dialog_win, "destroy", G_CALLBACK (gtk_main_quit), NULL); - capplet_set_icon (dialog_win, "gnome-sound-properties"); - gtk_widget_show (dialog_win); - - gtk_main (); - gconf_change_set_unref (changeset); - g_object_unref (dialog); - } - - g_object_unref (gconf_client); - - return 0; -} diff --git a/capplets/sound/sound-properties.glade b/capplets/sound/sound-properties.glade deleted file mode 100644 index 82f362681..000000000 --- a/capplets/sound/sound-properties.glade +++ /dev/null @@ -1,1208 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - -<glade-interface> -<requires lib="gnome"/> - -<widget class="GtkDialog" id="test_pipeline"> - <property name="border_width">5</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="title" translatable="yes">Testing Pipeline</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="resizable">False</property> - <property name="destroy_with_parent">True</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <property name="focus_on_map">True</property> - <property name="urgency_hint">False</property> - <property name="has_separator">False</property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="test_pipeline_vbox"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">2</property> - - <child internal-child="action_area"> - <widget class="GtkHButtonBox" id="test_pipeline_action_area"> - <property name="visible">True</property> - <property name="layout_style">GTK_BUTTONBOX_END</property> - - <child> - <widget class="GtkButton" id="test_pipeline_ok_button"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-ok</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="response_id">-5</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="test_pipeline_content_vbox"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkLabel" id="test_pipeline_testing_label"> - <property name="visible">True</property> - <property name="label" translatable="yes"><span weight="bold" size="x-large">Testing...</span></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkProgressBar" id="test_pipeline_progress"> - <property name="visible">True</property> - <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property> - <property name="fraction">0</property> - <property name="pulse_step">0.05</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="test_pipeline_desc_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">Click OK to finish.</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> -</widget> - -<widget class="GtkDialog" id="sound_prefs_dialog"> - <property name="border_width">5</property> - <property name="title" translatable="yes">Sound Preferences</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <property name="focus_on_map">True</property> - <property name="urgency_hint">False</property> - <property name="has_separator">False</property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="dialog-vbox1"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">2</property> - - <child internal-child="action_area"> - <widget class="GtkHButtonBox" id="dialog-action_area1"> - <property name="visible">True</property> - <property name="layout_style">GTK_BUTTONBOX_END</property> - - <child> - <widget class="GtkButton" id="helpbutton1"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-help</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="response_id">-11</property> - </widget> - </child> - - <child> - <widget class="GtkButton" id="closebutton1"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-close</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="response_id">-7</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - - <child> - <widget class="GtkNotebook" id="prefs_widget"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="show_tabs">True</property> - <property name="show_border">True</property> - <property name="tab_pos">GTK_POS_TOP</property> - <property name="scrollable">False</property> - <property name="enable_popup">False</property> - - <child> - <widget class="GtkVBox" id="devices_vbox"> - <property name="border_width">12</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">18</property> - - <child> - <widget class="GtkVBox" id="vbox14"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkLabel" id="label6"> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Sound Events</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkAlignment" id="alignment12"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">12</property> - <property name="right_padding">0</property> - - <child> - <widget class="GtkHBox" id="hbox11"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">12</property> - - <child> - <widget class="GtkLabel" id="sounds_playback_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Sound playback:</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="mnemonic_widget">sounds_playback_device</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - <accessibility> - <atkrelation target="sounds_playback_device" type="label-for"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox15"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkComboBox" id="sounds_playback_device"> - <property name="visible">True</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> - <accessibility> - <atkrelation target="sounds_playback_label" type="labelled-by"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="sounds_playback_test"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="label" translatable="yes">Test</property> - <property name="use_underline">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox15"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkLabel" id="label7"> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Music and Movies</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkAlignment" id="alignment13"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">12</property> - <property name="right_padding">0</property> - - <child> - <widget class="GtkHBox" id="hbox12"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">12</property> - - <child> - <widget class="GtkLabel" id="music_playback_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">S_ound playback:</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="mnemonic_widget">music_playback_device</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - <accessibility> - <atkrelation target="music_playback_device" type="label-for"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox16"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkComboBox" id="music_playback_device"> - <property name="visible">True</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> - <accessibility> - <atkrelation target="music_playback_label" type="labelled-by"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="music_playback_test"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="label" translatable="yes">Test</property> - <property name="use_underline">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox16"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkLabel" id="label8"> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Audio Conferencing</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkAlignment" id="alignment14"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">12</property> - <property name="right_padding">0</property> - - <child> - <widget class="GtkVBox" id="vbox17"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkHBox" id="hbox13"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">12</property> - - <child> - <widget class="GtkLabel" id="chat_audio_playback_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">So_und playback:</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="mnemonic_widget">chat_audio_playback_device</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - <accessibility> - <atkrelation target="chat_audio_playback_device" type="label-for"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox17"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkComboBox" id="chat_audio_playback_device"> - <property name="visible">True</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> - <accessibility> - <atkrelation target="chat_audio_playback_label" type="labelled-by"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="chat_audio_playback_test"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="label" translatable="yes">Test</property> - <property name="use_underline">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox14"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">12</property> - - <child> - <widget class="GtkLabel" id="chat_audio_capture_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">Sou_nd capture:</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="mnemonic_widget">chat_audio_capture_device</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - <accessibility> - <atkrelation target="chat_audio_capture_device" type="label-for"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox18"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkComboBox" id="chat_audio_capture_device"> - <property name="visible">True</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> - <accessibility> - <atkrelation target="chat_audio_capture_label" type="labelled-by"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="chat_audio_capture_test"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="label" translatable="yes">Test</property> - <property name="use_underline">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox3"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkLabel" id="label10"> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Default Mixer Tracks</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkAlignment" id="alignment1"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">12</property> - <property name="right_padding">0</property> - - <child> - <widget class="GtkVBox" id="vbox2"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkHBox" id="hbox7"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">12</property> - - <child> - <widget class="GtkLabel" id="mixer_device_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Device:</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="mnemonic_widget">mixer_device</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - <accessibility> - <atkrelation target="mixer_device" type="label-for"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkComboBox" id="mixer_device"> - <property name="visible">True</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> - <accessibility> - <atkrelation target="mixer_device_label" type="labelled-by"/> - </accessibility> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkScrolledWindow" id="scrolledwindow1"> - <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkTreeView" id="mixer_tracks"> - <property name="visible">True</property> - <property name="headers_visible">False</property> - <property name="rules_hint">False</property> - <property name="reorderable">False</property> - <property name="enable_search">True</property> - <property name="fixed_height_mode">False</property> - <property name="hover_selection">False</property> - <property name="hover_expand">False</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label16"> - <property name="visible">True</property> - <property name="label" translatable="yes">Select the device and tracks to control with the keyboard. Use the Shift and Control keys to select multiple tracks if required.</property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">True</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="tab_expand">False</property> - <property name="tab_fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label5"> - <property name="visible">True</property> - <property name="label" translatable="yes">Devices</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="type">tab</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="sounds_vbox"> - <property name="border_width">12</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkCheckButton" id="events_toggle"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">_Play alerts and sound effects</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="events_toggled_cb"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkAlignment" id="alignment17"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">12</property> - <property name="right_padding">0</property> - - <child> - <widget class="GtkVBox" id="vbox18"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkCheckButton" id="input_feedback_toggle"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Play _sound effects when buttons are clicked</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkCheckButton" id="bell_audible_toggle"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Play _alert sound</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkFrame" id="frame1"> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> - - <child> - <widget class="GtkAlignment" id="alignment15"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">12</property> - <property name="bottom_padding">12</property> - <property name="left_padding">12</property> - <property name="right_padding">0</property> - - <child> - <widget class="GtkComboBox" id="sound_theme_combobox"> - <property name="visible">True</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label17"> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Sound Theme</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkFrame" id="frame2"> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> - - <child> - <widget class="GtkAlignment" id="alignment16"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">12</property> - <property name="bottom_padding">0</property> - <property name="left_padding">12</property> - <property name="right_padding">0</property> - - <child> - <widget class="GtkScrolledWindow" id="scrolledwindow2"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> - <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkTreeView" id="sounds_treeview"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="headers_visible">True</property> - <property name="rules_hint">False</property> - <property name="reorderable">False</property> - <property name="enable_search">True</property> - <property name="fixed_height_mode">False</property> - <property name="hover_selection">False</property> - <property name="hover_expand">False</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label18"> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Alerts and Sound Effects</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="tab_expand">False</property> - <property name="tab_fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label1"> - <property name="visible">True</property> - <property name="label" translatable="yes">Sounds</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="type">tab</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> -</widget> - -</glade-interface> diff --git a/capplets/sound/sound-theme-definition.h b/capplets/sound/sound-theme-definition.h deleted file mode 100644 index d5e690c52..000000000 --- a/capplets/sound/sound-theme-definition.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- mode: c; style: linux -*- */ -/* -*- c-basic-offset: 2 -*- */ - -/* sound-theme-definition.h - * Copyright (C) 2008 Bastien Nocera <hadess@hadess.net> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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. - */ - -typedef enum { - CATEGORY_INVALID, - CATEGORY_BELL, - CATEGORY_WINDOWS_BUTTONS, - CATEGORY_DESKTOP, - CATEGORY_ALERTS, - NUM_CATEGORIES -} CategoryType; - -typedef enum { - SOUND_TYPE_NORMAL, - SOUND_TYPE_AUDIO_BELL, - SOUND_TYPE_VISUAL_BELL, - SOUND_TYPE_FEEDBACK -} SoundType; - -static struct { - CategoryType category; - SoundType type; - const char *display_name; - const char *names[6]; -} sounds[20] = { - /* Bell */ - { CATEGORY_BELL, SOUND_TYPE_AUDIO_BELL, NC_("Sound event", "Alert sound"), { "bell-terminal", "bell-window-system", NULL } }, - { CATEGORY_BELL, SOUND_TYPE_VISUAL_BELL, NC_("Sound event", "Visual alert"), { NULL } }, - /* Windows and buttons */ - { CATEGORY_WINDOWS_BUTTONS, -1, NC_("Sound event", "Windows and Buttons"), { NULL } }, - { CATEGORY_WINDOWS_BUTTONS, SOUND_TYPE_FEEDBACK, NC_("Sound event", "Button clicked"), { "button-pressed", "menu-click", "menu-popup", "menu-popdown", "menu-replace", NULL } }, - { CATEGORY_WINDOWS_BUTTONS, SOUND_TYPE_FEEDBACK, NC_("Sound event", "Toggle button clicked"), { "button-toggle-off", "button-toggle-on", NULL } }, - { CATEGORY_WINDOWS_BUTTONS, SOUND_TYPE_FEEDBACK, NC_("Sound event", "Window maximized"), { "window-maximized", NULL } }, - { CATEGORY_WINDOWS_BUTTONS, SOUND_TYPE_FEEDBACK, NC_("Sound event", "Window unmaximized"), { "window-unmaximized", NULL } }, - { CATEGORY_WINDOWS_BUTTONS, SOUND_TYPE_FEEDBACK, NC_("Sound event", "Window minimised"), { "window-minimized", NULL } }, - /* Desktop */ - { CATEGORY_DESKTOP, -1, NC_("Sound event", "Desktop"), { NULL } }, - { CATEGORY_DESKTOP, SOUND_TYPE_NORMAL, NC_("Sound event", "Login"), { "desktop-login", NULL } }, - { CATEGORY_DESKTOP, SOUND_TYPE_NORMAL, NC_("Sound event", "Logout"), { "desktop-logout", NULL } }, - { CATEGORY_DESKTOP, SOUND_TYPE_NORMAL, NC_("Sound event", "New e-mail"), { "message-new-email", NULL } }, - { CATEGORY_DESKTOP, SOUND_TYPE_NORMAL, NC_("Sound event", "Empty trash"), { "trash-empty", NULL } }, - { CATEGORY_DESKTOP, SOUND_TYPE_NORMAL, NC_("Sound event", "Long action completed (download, CD burning, etc.)"), { "complete-copy", "complete-download", "complete-media-burn", "complete-media-rip", "complete-scan", NULL } }, - /* Alerts? */ - { CATEGORY_ALERTS, -1, NC_("Sound event", "Alerts"), { NULL } }, - { CATEGORY_ALERTS, SOUND_TYPE_NORMAL, NC_("Sound event", "Information or question"), { "dialog-information", "dialog-question", NULL } }, - { CATEGORY_ALERTS, SOUND_TYPE_NORMAL, NC_("Sound event", "Warning"), { "dialog-warning", NULL } }, - { CATEGORY_ALERTS, SOUND_TYPE_NORMAL, NC_("Sound event", "Error"), { "dialog-error", NULL } }, - { CATEGORY_ALERTS, SOUND_TYPE_NORMAL, NC_("Sound event", "Battery warning"), { "power-unplug-battery-low", "battery-low", "battery-caution", NULL } }, - /* Finish off */ - { -1, -1, NULL, { NULL } } -}; - diff --git a/capplets/sound/sound-theme-file-utils.c b/capplets/sound/sound-theme-file-utils.c deleted file mode 100644 index 3d9062fe8..000000000 --- a/capplets/sound/sound-theme-file-utils.c +++ /dev/null @@ -1,166 +0,0 @@ -/* -*- mode: c; style: linux -*- */ -/* -*- c-basic-offset: 2 -*- */ - -/* sound-theme-file-utils.c - * Copyright (C) 2008 Bastien Nocera <hadess@hadess.net> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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 <config.h> -#include <glib/gstdio.h> -#include <gio/gio.h> -#include <utime.h> - -#include "sound-theme-file-utils.h" -#include "capplet-util.h" - -#define CUSTOM_THEME_NAME "__custom" - -/* This function needs to be called after each individual - * changeset to the theme */ -void -custom_theme_update_time (void) -{ - char *path; - - path = custom_theme_dir_path (NULL); - utime (path, NULL); - g_free (path); -} - -char * -custom_theme_dir_path (const char *child) -{ - static char *dir = NULL; - const char *data_dir; - - if (dir == NULL) { - data_dir = g_get_user_data_dir (); - dir = g_build_filename (data_dir, "sounds", CUSTOM_THEME_NAME, NULL); - } - if (child == NULL) - return g_strdup (dir); - - return g_build_filename (dir, child, NULL); -} - -void -delete_custom_theme_dir (void) -{ - char *dir; - GFile *file; - - dir = custom_theme_dir_path (NULL); - file = g_file_new_for_path (dir); - g_free (dir); - capplet_file_delete_recursive (file, NULL); - g_object_unref (file); - - g_debug ("deleted the custom theme dir"); -} - -static void -delete_one_file (const char *sound_name, const char *pattern) -{ - GFile *file; - char *name, *filename; - - name = g_strdup_printf (pattern, sound_name); - filename = custom_theme_dir_path (name); - g_free (name); - file = g_file_new_for_path (filename); - g_free (filename); - capplet_file_delete_recursive (file, NULL); - g_object_unref (file); -} - -void -delete_old_files (char **sounds) -{ - guint i; - - for (i = 0; sounds[i] != NULL; i++) { - delete_one_file (sounds[i], "%s.ogg"); - } -} - -void -delete_disabled_files (char **sounds) -{ - guint i; - - for (i = 0; sounds[i] != NULL; i++) - delete_one_file (sounds[i], "%s.disabled"); -} - -static void -create_one_file (GFile *file) -{ - GFileOutputStream* stream; - - stream = g_file_create (file, G_FILE_CREATE_NONE, NULL, NULL); - if (stream != NULL) { - g_output_stream_close (G_OUTPUT_STREAM (stream), NULL, NULL); - g_object_unref (stream); - } -} - -void -add_disabled_file (char **sounds) -{ - guint i; - - for (i = 0; sounds[i] != NULL; i++) { - GFile *file; - char *name, *filename; - - name = g_strdup_printf ("%s.disabled", sounds[i]); - filename = custom_theme_dir_path (name); - g_free (name); - file = g_file_new_for_path (filename); - g_free (filename); - - create_one_file (file); - g_object_unref (file); - } -} - -void -add_custom_file (char **sounds, const char *filename) -{ - guint i; - - for (i = 0; sounds[i] != NULL; i++) { - GFile *file; - char *name, *path; - - /* We use *.ogg because it's the first type of file that - * libcanberra looks at */ - name = g_strdup_printf ("%s.ogg", sounds[i]); - path = custom_theme_dir_path (name); - g_free (name); - /* In case there's already a link there, delete it */ - g_unlink (path); - file = g_file_new_for_path (path); - g_free (path); - - /* Create the link */ - g_file_make_symbolic_link (file, filename, NULL, NULL); - g_object_unref (file); - } -} - diff --git a/capplets/sound/sound-theme-file-utils.h b/capplets/sound/sound-theme-file-utils.h deleted file mode 100644 index 9d2fb9b49..000000000 --- a/capplets/sound/sound-theme-file-utils.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -*- mode: c; style: linux -*- */ -/* -*- c-basic-offset: 2 -*- */ - -/* sound-theme-file-utils.h - * Copyright (C) 2008 Bastien Nocera <hadess@hadess.net> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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 __SOUND_THEME_FILE_UTILSHH__ -#define __SOUND_THEME_HH__ - -#include <gio/gio.h> - -char *custom_theme_dir_path (const char *child); - -void delete_custom_theme_dir (void); -void delete_old_files (char **sounds); -void delete_disabled_files (char **sounds); - -void add_disabled_file (char **sounds); -void add_custom_file (char **sounds, const char *filename); - -void custom_theme_update_time (void); - -#endif /* __SOUND_THEME_FILE_UTILS_HH__ */ diff --git a/capplets/sound/sound-theme.c b/capplets/sound/sound-theme.c deleted file mode 100644 index 3b2319faf..000000000 --- a/capplets/sound/sound-theme.c +++ /dev/null @@ -1,1237 +0,0 @@ -/* -*- mode: c; style: linux -*- */ -/* -*- c-basic-offset: 2 -*- */ - -/* sound-theme.c - * Copyright (C) 2008 Bastien Nocera <hadess@hadess.net> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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 <config.h> -#include <gtk/gtk.h> -#include <glib/gi18n.h> -#include <gio/gio.h> -#include <glade/glade.h> -#include <gconf/gconf-client.h> -#include <canberra-gtk.h> - -#include "sound-theme.h" -#include "capplet-util.h" -#include "sound-theme-definition.h" -#include "sound-theme-file-utils.h" - -#define SOUND_THEME_KEY "/desktop/gnome/sound/theme_name" -#define INPUT_SOUNDS_KEY "/desktop/gnome/sound/input_feedback_sounds" -#define VISUAL_BELL_KEY "/apps/metacity/general/visual_bell" -#define VISUAL_BELL_TYPE_KEY "/apps/metacity/general/visual_bell_type" -#define AUDIO_BELL_KEY "/apps/metacity/general/audible_bell" - -#define CUSTOM_THEME_NAME "__custom" -#define PREVIEW_BUTTON_XPAD 5 - -enum { - THEME_DISPLAY_COL, - THEME_IDENTIFIER_COL, - THEME_PARENT_ID_COL, - THEME_NUM_COLS -}; - -enum { - SOUND_UNSET, - SOUND_OFF, - SOUND_BUILTIN, - SOUND_CUSTOM, - SOUND_CUSTOM_OLD -}; - -#define SOUND_VISUAL_BELL_TITLEBAR SOUND_BUILTIN -#define SOUND_VISUAL_BELL_SCREEN SOUND_CUSTOM - -static void set_combox_for_theme_name (GladeXML *dialog, const char *name); -static gboolean theme_changed_custom_reinit (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); -static void dump_theme (GladeXML *dialog); - -static int -visual_bell_gconf_to_setting (GConfClient *client) -{ - char *value; - int retval; - - if (gconf_client_get_bool (client, VISUAL_BELL_KEY, NULL) == FALSE) { - return SOUND_OFF; - } - value = gconf_client_get_string (client, VISUAL_BELL_TYPE_KEY, NULL); - if (value == NULL) - return SOUND_VISUAL_BELL_SCREEN; - if (strcmp (value, "fullscreen") == 0) - retval = SOUND_VISUAL_BELL_SCREEN; - else if (strcmp (value, "frame_flash") == 0) - retval = SOUND_VISUAL_BELL_TITLEBAR; - else - retval = SOUND_VISUAL_BELL_SCREEN; - - g_free (value); - - return retval; -} - -static void -visual_bell_setting_to_gconf (GConfClient *client, int setting) -{ - const char *value; - - value = NULL; - - switch (setting) { - case SOUND_OFF: - break; - case SOUND_VISUAL_BELL_SCREEN: - value = "fullscreen"; - break; - case SOUND_VISUAL_BELL_TITLEBAR: - value = "frame_flash"; - break; - default: - g_assert_not_reached (); - } - - gconf_client_set_string (client, VISUAL_BELL_TYPE_KEY, value ? value : "fullscreen", NULL); - gconf_client_set_bool (client, VISUAL_BELL_KEY, value != NULL, NULL); -} - -static void -theme_changed_cb (GConfClient *client, - guint cnxn_id, - GConfEntry *entry, - GladeXML *dialog) -{ - char *theme_name; - - theme_name = gconf_client_get_string (client, SOUND_THEME_KEY, NULL); - set_combox_for_theme_name (dialog, theme_name); - g_free (theme_name); -} - -static char * -load_index_theme_name (const char *index, char **parent) -{ - GKeyFile *file; - char *indexname = NULL; - gboolean hidden; - - file = g_key_file_new (); - if (g_key_file_load_from_file (file, index, G_KEY_FILE_KEEP_TRANSLATIONS, NULL) == FALSE) { - g_key_file_free (file); - return NULL; - } - /* Don't add hidden themes to the list */ - hidden = g_key_file_get_boolean (file, "Sound Theme", "Hidden", NULL); - if (!hidden) { - indexname = g_key_file_get_locale_string (file, - "Sound Theme", - "Name", - NULL, - NULL); - - /* Save the parent theme, if there's one */ - if (parent != NULL) { - *parent = g_key_file_get_string (file, - "Sound Theme", - "Inherits", - NULL); - } - } - - g_key_file_free (file); - return indexname; -} - -static void -add_theme_to_store (const char *key, - const char *value, - GtkListStore *store) -{ - char *parent; - - parent = NULL; - - /* Get the parent, if we're checking the custom theme */ - if (strcmp (key, CUSTOM_THEME_NAME) == 0) { - char *name, *path; - - path = custom_theme_dir_path ("index.theme"); - name = load_index_theme_name (path, &parent); - g_free (name); - g_free (path); - } - gtk_list_store_insert_with_values (store, NULL, G_MAXINT, - THEME_DISPLAY_COL, value, - THEME_IDENTIFIER_COL, key, - THEME_PARENT_ID_COL, parent, - -1); - g_free (parent); -} - -static void -sound_theme_in_dir (GHashTable *hash, const char *dir) -{ - GDir *d; - const char *name; - - d = g_dir_open (dir, 0, NULL); - if (d == NULL) - return; - while ((name = g_dir_read_name (d)) != NULL) { - char *dirname, *index, *indexname; - - /* Look for directories */ - dirname = g_build_filename (dir, name, NULL); - if (g_file_test (dirname, G_FILE_TEST_IS_DIR) == FALSE) { - g_free (dirname); - continue; - } - - /* Look for index files */ - index = g_build_filename (dirname, "index.theme", NULL); - g_free (dirname); - - /* Check the name of the theme in the index.theme file */ - indexname = load_index_theme_name (index, NULL); - g_free (index); - if (indexname == NULL) - continue; - - g_hash_table_insert (hash, g_strdup (name), indexname); - } - - g_dir_close (d); -} - -static void -set_combox_for_theme_name (GladeXML *dialog, const char *name) -{ - GtkTreeIter iter; - GtkTreeModel *model; - gboolean found; - - g_debug ("setting theme %s", name ? name : "(null)"); - - /* If the name is empty, use "freedesktop" */ - if (name == NULL || *name == '\0') - name = "freedesktop"; - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (WID ("sound_theme_combobox"))); - - if (gtk_tree_model_get_iter_first (model, &iter) == FALSE) { - return; - } - - do { - char *value; - - gtk_tree_model_get (model, &iter, THEME_IDENTIFIER_COL, &value, -1); - found = (value != NULL && strcmp (value, name) == 0); - g_free (value); - - } while (!found && gtk_tree_model_iter_next (model, &iter)); - - /* When we can't find the theme we need to set, try to set the default - * one "freedesktop" */ - if (found) { - gtk_combo_box_set_active_iter (GTK_COMBO_BOX (WID ("sound_theme_combobox")), &iter); - } else if (strcmp (name, "freedesktop") != 0) { - g_debug ("not found, falling back to fdo"); - set_combox_for_theme_name (dialog, "freedesktop"); - } -} - -static void -theme_combobox_changed (GtkComboBox *widget, - GladeXML *dialog) -{ - GtkTreeIter iter; - GtkTreeModel *model; - GConfClient *client; - char *theme_name; - - if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (WID ("sound_theme_combobox")), &iter) == FALSE) - return; - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (WID ("sound_theme_combobox"))); - gtk_tree_model_get (model, &iter, THEME_IDENTIFIER_COL, &theme_name, -1); - - client = gconf_client_get_default (); - gconf_client_set_string (client, SOUND_THEME_KEY, theme_name, NULL); - g_object_unref (client); - - /* Don't reinit a custom theme */ - if (strcmp (theme_name, CUSTOM_THEME_NAME) != 0) { - model = gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("sounds_treeview"))); - gtk_tree_model_foreach (model, theme_changed_custom_reinit, NULL); - - /* Delete the custom dir */ - delete_custom_theme_dir (); - - /* And the combo box entry */ - model = gtk_combo_box_get_model (GTK_COMBO_BOX (WID ("sound_theme_combobox"))); - gtk_tree_model_get_iter_first (model, &iter); - do { - char *parent; - gtk_tree_model_get (model, &iter, THEME_PARENT_ID_COL, &parent, -1); - if (parent != NULL && strcmp (parent, CUSTOM_THEME_NAME) != 0) { - gtk_list_store_remove (GTK_LIST_STORE (model), &iter); - g_free (parent); - break; - } - g_free (parent); - } while (gtk_tree_model_iter_next (model, &iter)); - } -} - -void -setup_sound_theme (GladeXML *dialog) -{ - GHashTable *hash; - GtkListStore *store; - GtkCellRenderer *renderer; - const char * const *data_dirs; - const char *data_dir; - char *dir, *theme_name; - GConfClient *client; - guint i; - - /* Add the theme names and their display name to a hash table, - * makes it easy to avoid duplicate themes */ - hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); - - data_dirs = g_get_system_data_dirs (); - for (i = 0; data_dirs[i] != NULL; i++) { - dir = g_build_filename (data_dirs[i], "sounds", NULL); - sound_theme_in_dir (hash, dir); - g_free (dir); - } - - data_dir = g_get_user_data_dir (); - dir = g_build_filename (data_dir, "sounds", NULL); - sound_theme_in_dir (hash, dir); - g_free (dir); - - /* If there isn't at least one theme, make everything - * insensitive, LAME! */ - if (g_hash_table_size (hash) == 0) { - gtk_widget_set_sensitive (WID ("sounds_vbox"), FALSE); - g_warning ("Bad setup, install the freedesktop sound theme"); - g_hash_table_destroy (hash); - return; - } - - /* Setup the tree model, 3 columns: - * - internal theme name/directory - * - display theme name - * - the internal id for the parent theme, used for the custom theme */ - store = gtk_list_store_new (THEME_NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); - - /* Add the themes to a combobox */ - g_hash_table_foreach (hash, (GHFunc) add_theme_to_store, store); - g_hash_table_destroy (hash); - - /* Set the display */ - gtk_combo_box_set_model (GTK_COMBO_BOX (WID ("sound_theme_combobox")), - GTK_TREE_MODEL (store)); - - renderer = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (WID ("sound_theme_combobox")), - renderer, TRUE); - gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (WID ("sound_theme_combobox")), - renderer, "text", THEME_DISPLAY_COL, NULL); - - /* Setup the default as per the GConf setting */ - client = gconf_client_get_default (); - theme_name = gconf_client_get_string (client, SOUND_THEME_KEY, NULL); - set_combox_for_theme_name (dialog, theme_name); - g_free (theme_name); - - /* Listen for changes in GConf, and on the combobox */ - gconf_client_notify_add (client, SOUND_THEME_KEY, - (GConfClientNotifyFunc) theme_changed_cb, dialog, NULL, NULL); - g_object_unref (client); - - g_signal_connect (WID ("sound_theme_combobox"), "changed", - G_CALLBACK (theme_combobox_changed), dialog); -} - -enum { - DISPLAY_COL, - SETTING_COL, - TYPE_COL, - SENSITIVE_COL, - HAS_PREVIEW_COL, - FILENAME_COL, - SOUND_NAMES_COL, - NUM_COLS -}; - -static void -setting_set_func (GtkTreeViewColumn *tree_column, - GtkCellRenderer *cell, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer data) -{ - int setting; - char *filename; - SoundType type; - - gtk_tree_model_get (model, iter, - SETTING_COL, &setting, - FILENAME_COL, &filename, - TYPE_COL, &type, - -1); - - if (setting == SOUND_UNSET) { - g_object_set (cell, - "visible", FALSE, - NULL); - g_free (filename); - return; - } - - if (type != SOUND_TYPE_VISUAL_BELL) { - if (setting == SOUND_OFF) { - g_object_set (cell, - "text", _("Disabled"), - NULL); - } else if (setting == SOUND_BUILTIN) { - g_object_set (cell, - "text", _("Default"), - NULL); - } else if (setting == SOUND_CUSTOM || setting == SOUND_CUSTOM_OLD) { - char *display; - - display = g_filename_display_basename (filename); - g_object_set (cell, - "text", display, - NULL); - g_free (display); - } - } else { - if (setting == SOUND_OFF) { - g_object_set (cell, - "text", _("Disabled"), - NULL); - } else if (setting == SOUND_VISUAL_BELL_SCREEN) { - g_object_set (cell, - "text", _("Flash screen"), - NULL); - } else if (setting == SOUND_VISUAL_BELL_TITLEBAR) { - g_object_set (cell, - "text", _("Flash window"), - NULL); - } - } - g_free (filename); -} - -static void -play_sound_preview (GtkFileChooser *chooser, - gpointer user_data) -{ - char *filename; - ca_context *ctx; - - filename = gtk_file_chooser_get_preview_filename (GTK_FILE_CHOOSER (chooser)); - if (filename == NULL) - return; - - ctx = ca_gtk_context_get (); - ca_gtk_play_for_widget (GTK_WIDGET (chooser), 0, - CA_PROP_APPLICATION_NAME, _("Sound Preferences"), - CA_PROP_MEDIA_FILENAME, filename, - CA_PROP_EVENT_DESCRIPTION, _("Testing event sound"), - CA_PROP_CANBERRA_CACHE_CONTROL, "never", -#ifdef CA_PROP_CANBERRA_ENABLE - CA_PROP_CANBERRA_ENABLE, "1", -#endif - NULL); - g_free (filename); -} - -static char * -get_sound_filename (GladeXML *dialog) -{ - GtkWidget *chooser; - int response; - char *filename, *path; - const char * const *data_dirs, *data_dir; - GtkFileFilter *filter; - guint i; - - chooser = gtk_file_chooser_dialog_new (_("Select Sound File"), - GTK_WINDOW (WID("sound_prefs_dialog")), - GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, - NULL); - - gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), TRUE); - gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), FALSE); - - filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, _("Sound files")); - gtk_file_filter_add_mime_type (filter, "audio/x-vorbis+ogg"); - gtk_file_filter_add_mime_type (filter, "audio/x-wav"); - gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); - gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), filter); - - g_signal_connect (chooser, "update-preview", - G_CALLBACK (play_sound_preview), NULL); - - data_dirs = g_get_system_data_dirs (); - for (i = 0; data_dirs[i] != NULL; i++) { - path = g_build_filename (data_dirs[i], "sounds", NULL); - gtk_file_chooser_add_shortcut_folder (GTK_FILE_CHOOSER (chooser), path, NULL); - g_free (path); - } - data_dir = g_get_user_special_dir (G_USER_DIRECTORY_MUSIC); - if (data_dir != NULL) - gtk_file_chooser_add_shortcut_folder (GTK_FILE_CHOOSER (chooser), data_dir, NULL); - - gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser), SOUND_DATA_DIR); - - response = gtk_dialog_run (GTK_DIALOG (chooser)); - filename = NULL; - if (response == GTK_RESPONSE_ACCEPT) - filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); - - gtk_widget_destroy (chooser); - - return filename; -} - -static void -fill_custom_model (GtkListStore *store, const char *prev_filename) -{ - GtkTreeIter iter; - - gtk_list_store_clear (store); - - if (prev_filename != NULL) { - char *display; - display = g_filename_display_basename (prev_filename); - gtk_list_store_insert_with_values (store, &iter, G_MAXINT, - 0, display, - 1, SOUND_CUSTOM_OLD, - -1); - g_free (display); - } - gtk_list_store_insert_with_values (store, &iter, G_MAXINT, - 0, _("Default"), - 1, SOUND_BUILTIN, - -1); - gtk_list_store_insert_with_values (store, &iter, G_MAXINT, - 0, _("Disabled"), - 1, SOUND_OFF, - -1); - gtk_list_store_insert_with_values (store, &iter, G_MAXINT, - 0, _("Custom..."), - 1, SOUND_CUSTOM, -1); -} - -static void -fill_visual_bell_model (GtkListStore *store) -{ - GtkTreeIter iter; - - gtk_list_store_clear (store); - - gtk_list_store_insert_with_values (store, &iter, G_MAXINT, - 0, _("Disabled"), - 1, SOUND_OFF, - -1); - gtk_list_store_insert_with_values (store, &iter, G_MAXINT, - 0, _("Flash screen"), - 1, SOUND_VISUAL_BELL_SCREEN, - -1); - gtk_list_store_insert_with_values (store, &iter, G_MAXINT, - 0, _("Flash window"), - 1, SOUND_VISUAL_BELL_TITLEBAR, - -1); -} - -static void -combobox_editing_started (GtkCellRenderer *renderer, - GtkCellEditable *editable, - gchar *path, - GladeXML *dialog) -{ - GtkTreeModel *model, *store; - GtkTreeIter iter; - SoundType type; - char *filename; - - model = gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("sounds_treeview"))); - if (gtk_tree_model_get_iter_from_string (model, &iter, path) == FALSE) { - return; - } - - gtk_tree_model_get (model, &iter, TYPE_COL, &type, FILENAME_COL, &filename, -1); - g_object_get (renderer, "model", &store, NULL); - if (type == SOUND_TYPE_VISUAL_BELL) - fill_visual_bell_model (GTK_LIST_STORE (store)); - else - fill_custom_model (GTK_LIST_STORE (store), filename); - g_free (filename); -} - -static gboolean -save_sounds (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - gpointer data) -{ - int type, setting; - char *filename, **sounds; - - gtk_tree_model_get (model, iter, - TYPE_COL, &type, - SETTING_COL, &setting, - FILENAME_COL, &filename, - SOUND_NAMES_COL, &sounds, - -1); - if (type == SOUND_TYPE_VISUAL_BELL) - return FALSE; - - if (setting == SOUND_BUILTIN) { - delete_old_files (sounds); - delete_disabled_files (sounds); - } else if (setting == SOUND_OFF) { - delete_old_files (sounds); - add_disabled_file (sounds); - } else if (setting == SOUND_CUSTOM || setting == SOUND_CUSTOM_OLD) { - delete_old_files (sounds); - delete_disabled_files (sounds); - add_custom_file (sounds, filename); - } - g_free (filename); - g_strfreev (sounds); - - return FALSE; -} - -static void -save_custom_theme (GtkTreeModel *model, const char *parent) -{ - GKeyFile *keyfile; - char *data, *path; - - /* Create the custom directory */ - path = custom_theme_dir_path (NULL); - g_mkdir_with_parents (path, 0755); - g_free (path); - - /* Save the sounds themselves */ - gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) save_sounds, NULL); - - /* Set the data for index.theme */ - keyfile = g_key_file_new (); - g_key_file_set_string (keyfile, "Sound Theme", "Name", _("Custom")); - g_key_file_set_string (keyfile, "Sound Theme", "Inherits", parent); - g_key_file_set_string (keyfile, "Sound Theme", "Directories", "."); - data = g_key_file_to_data (keyfile, NULL, NULL); - g_key_file_free (keyfile); - - /* Save the index.theme */ - path = custom_theme_dir_path ("index.theme"); - g_file_set_contents (path, data, -1, NULL); - g_free (path); - g_free (data); - - custom_theme_update_time (); -} - -static gboolean -count_customised_sounds (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - int *num_custom) -{ - int type, setting; - - gtk_tree_model_get (model, iter, TYPE_COL, &type, SETTING_COL, &setting, -1); - if (type == SOUND_TYPE_VISUAL_BELL) - return FALSE; - - if (setting == SOUND_OFF || setting == SOUND_CUSTOM || setting == SOUND_CUSTOM_OLD) - (*num_custom)++; - - return FALSE; -} - -static void -dump_theme (GladeXML *dialog) -{ - int num_custom; - GtkTreeModel *model; - GtkTreeIter iter; - char *parent; - - num_custom = 0; - model = gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("sounds_treeview"))); - gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) count_customised_sounds, &num_custom); - - g_debug ("%d customised sounds", num_custom); - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (WID ("sound_theme_combobox"))); - /* Get the current theme's name, and set the parent */ - if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (WID ("sound_theme_combobox")), &iter) == FALSE) - return; - - if (num_custom == 0) { - gtk_tree_model_get (model, &iter, THEME_PARENT_ID_COL, &parent, -1); - if (parent != NULL) { - set_combox_for_theme_name (dialog, parent); - g_free (parent); - } - gtk_tree_model_get_iter_first (model, &iter); - do { - gtk_tree_model_get (model, &iter, THEME_PARENT_ID_COL, &parent, -1); - if (parent != NULL && strcmp (parent, CUSTOM_THEME_NAME) != 0) { - gtk_list_store_remove (GTK_LIST_STORE (model), &iter); - break; - } - } while (gtk_tree_model_iter_next (model, &iter)); - - delete_custom_theme_dir (); - } else { - gtk_tree_model_get (model, &iter, THEME_IDENTIFIER_COL, &parent, -1); - if (strcmp (parent, CUSTOM_THEME_NAME) != 0) { - gtk_list_store_insert_with_values (GTK_LIST_STORE (model), NULL, G_MAXINT, - THEME_DISPLAY_COL, _("Custom"), - THEME_IDENTIFIER_COL, CUSTOM_THEME_NAME, - THEME_PARENT_ID_COL, parent, - -1); - } else { - g_free (parent); - gtk_tree_model_get (model, &iter, THEME_PARENT_ID_COL, &parent, -1); - } - - g_debug ("The parent theme is: %s", parent); - model = gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("sounds_treeview"))); - save_custom_theme (model, parent); - g_free (parent); - - set_combox_for_theme_name (dialog, CUSTOM_THEME_NAME); - } -} - -static void -setting_column_edited (GtkCellRendererText *renderer, - gchar *path, - gchar *new_text, - GladeXML *dialog) -{ - GtkTreeModel *model, *tree_model; - GtkTreeIter iter, tree_iter; - SoundType type; - char *text, *old_filename; - int setting; - - if (new_text == NULL) - return; - - g_object_get (renderer, - "model", &model, - NULL); - - tree_model = gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("sounds_treeview"))); - if (gtk_tree_model_get_iter_from_string (tree_model, &tree_iter, path) == FALSE) - return; - - gtk_tree_model_get (tree_model, &tree_iter, - TYPE_COL, &type, - FILENAME_COL, &old_filename, - -1); - - gtk_tree_model_get_iter_first (model, &iter); - do { - gint cmp; - - gtk_tree_model_get (model, &iter, 0, &text, 1, &setting, -1); - cmp = g_utf8_collate (text, new_text); - g_free (text); - - if (cmp == 0) { - if (type == SOUND_TYPE_NORMAL || type == SOUND_TYPE_FEEDBACK || type == SOUND_TYPE_AUDIO_BELL) { - - if (setting == SOUND_CUSTOM || (setting == SOUND_CUSTOM_OLD && old_filename == NULL)) { - char *filename = get_sound_filename (dialog); - if (filename == NULL) - break; - gtk_tree_store_set (GTK_TREE_STORE (tree_model), - &tree_iter, - SETTING_COL, setting, - HAS_PREVIEW_COL, setting != SOUND_OFF, - FILENAME_COL, filename, - -1); - g_free (filename); - } else if (setting == SOUND_CUSTOM_OLD) { - gtk_tree_store_set (GTK_TREE_STORE (tree_model), - &tree_iter, - SETTING_COL, setting, - HAS_PREVIEW_COL, setting != SOUND_OFF, - FILENAME_COL, old_filename, - -1); - } else { - gtk_tree_store_set (GTK_TREE_STORE (tree_model), - &tree_iter, - SETTING_COL, setting, - HAS_PREVIEW_COL, setting != SOUND_OFF, - -1); - } - - g_debug ("Something changed, dump theme"); - dump_theme (dialog); - - break; - } else if (type == SOUND_TYPE_VISUAL_BELL) { - GConfClient *client; - - client = gconf_client_get_default (); - visual_bell_setting_to_gconf (client, setting); - g_object_unref (client); - gtk_tree_store_set (GTK_TREE_STORE (tree_model), - &tree_iter, - SETTING_COL, setting, - -1); - break; - } - g_assert_not_reached (); - } - } while (gtk_tree_model_iter_next (model, &iter)); - g_free (old_filename); -} - -/* Functions to toggle whether the Input feedback sounds are editable */ -static gboolean -input_feedback_foreach (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - gpointer data) -{ - int type; - gboolean enabled = GPOINTER_TO_INT (data); - - gtk_tree_model_get (model, iter, TYPE_COL, &type, -1); - if (type == SOUND_TYPE_FEEDBACK) { - gtk_tree_store_set (GTK_TREE_STORE (model), iter, - SENSITIVE_COL, enabled, - HAS_PREVIEW_COL, enabled, - -1); - } - return FALSE; -} - -static void -set_input_feedback_enabled (GladeXML *dialog, gboolean enabled) -{ - GtkTreeModel *model; - - model = gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("sounds_treeview"))); - gtk_tree_model_foreach (model, input_feedback_foreach, GINT_TO_POINTER (enabled)); -} - -static void -input_feedback_changed_cb (GConfClient *client, - guint cnxn_id, - GConfEntry *entry, - GladeXML *dialog) -{ - gboolean input_feedback_enabled; - - input_feedback_enabled = gconf_client_get_bool (client, INPUT_SOUNDS_KEY, NULL); - set_input_feedback_enabled (dialog, input_feedback_enabled); -} - -/* Functions to toggle whether the audible bell sound is editable */ -static gboolean -audible_bell_foreach (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - gpointer data) -{ - int type; - gboolean enabled = GPOINTER_TO_INT (data); - - gtk_tree_model_get (model, iter, TYPE_COL, &type, -1); - if (type == SOUND_TYPE_AUDIO_BELL) { - gtk_tree_store_set (GTK_TREE_STORE (model), iter, - SENSITIVE_COL, enabled, - HAS_PREVIEW_COL, enabled, - -1); - return TRUE; - } - return FALSE; -} - -static void -set_audible_bell_enabled (GladeXML *dialog, gboolean enabled) -{ - GtkTreeModel *model; - - model = gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("sounds_treeview"))); - gtk_tree_model_foreach (model, audible_bell_foreach, GINT_TO_POINTER (enabled)); -} - -static void -audible_bell_changed_cb (GConfClient *client, - guint cnxn_id, - GConfEntry *entry, - GladeXML *dialog) -{ - gboolean audio_bell_enabled; - - audio_bell_enabled = gconf_client_get_bool (client, AUDIO_BELL_KEY, NULL); - set_audible_bell_enabled (dialog, audio_bell_enabled); -} - -static gboolean -theme_changed_custom_reinit (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - gpointer data) -{ - int type; - gboolean sensitive; - - gtk_tree_model_get (model, iter, - TYPE_COL, &type, - SENSITIVE_COL, &sensitive, -1); - if (type != -1 && type != SOUND_TYPE_VISUAL_BELL) { - gtk_tree_store_set (GTK_TREE_STORE (model), iter, - SETTING_COL, SOUND_BUILTIN, - HAS_PREVIEW_COL, sensitive, - -1); - } - return FALSE; -} - -static int -get_file_type (const char *sound_name, char **linked_name) -{ - char *name, *filename; - - *linked_name = NULL; - - name = g_strdup_printf ("%s.disabled", sound_name); - filename = custom_theme_dir_path (name); - g_free (name); - - if (g_file_test (filename, G_FILE_TEST_IS_REGULAR) != FALSE) { - g_free (filename); - return SOUND_OFF; - } - g_free (filename); - - /* We only check for .ogg files because those are the - * only ones we create */ - name = g_strdup_printf ("%s.ogg", sound_name); - filename = custom_theme_dir_path (name); - g_free (name); - - if (g_file_test (filename, G_FILE_TEST_IS_SYMLINK) != FALSE) { - *linked_name = g_file_read_link (filename, NULL); - g_free (filename); - return SOUND_CUSTOM; - } - g_free (filename); - - return SOUND_BUILTIN; -} - -static gboolean -theme_changed_custom_init (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - gpointer data) -{ - char **sound_names; - - gtk_tree_model_get (model, iter, SOUND_NAMES_COL, &sound_names, -1); - if (sound_names != NULL) { - char *filename; - int type; - - type = get_file_type (sound_names[0], &filename); - - gtk_tree_store_set (GTK_TREE_STORE (model), iter, - SETTING_COL, type, - HAS_PREVIEW_COL, type != SOUND_OFF, - FILENAME_COL, filename, - -1); - g_strfreev (sound_names); - g_free (filename); - } - return FALSE; -} - -static gboolean -play_sound_at_path (GtkWidget *tree_view, - GtkTreeViewColumn *column, - GtkTreePath *path) -{ - GObject *preview_column; - - preview_column = g_object_get_data (G_OBJECT (tree_view), "preview-column"); - if (column == (GtkTreeViewColumn *) preview_column) { - GtkTreeModel *model; - GtkTreeIter iter; - char **sound_names; - gboolean sensitive; - ca_context *ctx; - - model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)); - if (gtk_tree_model_get_iter (model, &iter, path) == FALSE) { - return FALSE; - } - - gtk_tree_model_get (model, &iter, - SOUND_NAMES_COL, &sound_names, - SENSITIVE_COL, &sensitive, -1); - if (!sensitive || sound_names == NULL) - return FALSE; - - ctx = ca_gtk_context_get (); - ca_gtk_play_for_widget (GTK_WIDGET (tree_view), 0, - CA_PROP_APPLICATION_NAME, _("Sound Preferences"), - CA_PROP_EVENT_ID, sound_names[0], - CA_PROP_EVENT_DESCRIPTION, _("Testing event sound"), - CA_PROP_CANBERRA_CACHE_CONTROL, "never", -#ifdef CA_PROP_CANBERRA_ENABLE - CA_PROP_CANBERRA_ENABLE, "1", -#endif - NULL); - - g_strfreev (sound_names); - - return TRUE; - } - return FALSE; -} - -static gboolean -custom_treeview_button_press_event_cb (GtkWidget *tree_view, - GdkEventButton *event, - GladeXML *dialog) -{ - GtkTreePath *path; - GtkTreeViewColumn *column; - GdkEventButton *button_event = (GdkEventButton *) event; - gboolean res = FALSE; - - if (event->type != GDK_BUTTON_PRESS) - return TRUE; - - if (gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (tree_view), - button_event->x, button_event->y, - &path, &column, NULL, NULL)) { - res = play_sound_at_path (tree_view, column, path); - gtk_tree_path_free (path); - } - - return res; -} - -typedef GtkCellRendererPixbuf ActivatableCellRendererPixbuf; -typedef GtkCellRendererPixbufClass ActivatableCellRendererPixbufClass; - -#define ACTIVATABLE_TYPE_CELL_RENDERER_PIXBUF (activatable_cell_renderer_pixbuf_get_type ()) -G_DEFINE_TYPE (ActivatableCellRendererPixbuf, activatable_cell_renderer_pixbuf, GTK_TYPE_CELL_RENDERER_PIXBUF); - -static gboolean -activatable_cell_renderer_pixbuf_activate (GtkCellRenderer *cell, - GdkEvent *event, - GtkWidget *widget, - const gchar *path_string, - GdkRectangle *background_area, - GdkRectangle *cell_area, - GtkCellRendererState flags) -{ - GtkTreeViewColumn *preview_column; - GtkTreePath *path; - gboolean res; - - preview_column = g_object_get_data (G_OBJECT (widget), "preview-column"); - path = gtk_tree_path_new_from_string (path_string); - res = play_sound_at_path (widget, preview_column, path); - gtk_tree_path_free (path); - - return res; -} - -static void -activatable_cell_renderer_pixbuf_init (ActivatableCellRendererPixbuf *cell) -{ -} - -static void -activatable_cell_renderer_pixbuf_class_init (ActivatableCellRendererPixbufClass *class) -{ - GtkCellRendererClass *cell_class; - - cell_class = GTK_CELL_RENDERER_CLASS (class); - - cell_class->activate = activatable_cell_renderer_pixbuf_activate; -} - - -void -setup_sound_theme_custom (GladeXML *dialog, gboolean have_xkb) -{ - GtkTreeStore *store; - GtkTreeModel *custom_model; - GtkTreeViewColumn *column; - GtkCellRenderer *renderer; - GtkTreeIter iter, parent; - GConfClient *client; - CategoryType type; - gboolean input_feedback_enabled, audible_bell_enabled; - int visual_bell_setting; - char *theme_name; - guint i; - - client = gconf_client_get_default (); - visual_bell_setting = visual_bell_gconf_to_setting (client); - - /* Set up the model for the custom view */ - store = gtk_tree_store_new (NUM_COLS, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRV); - - /* The first column with the categories/sound names */ - renderer = gtk_cell_renderer_text_new (); - column = gtk_tree_view_column_new_with_attributes ("Display", renderer, - "text", DISPLAY_COL, - "sensitive", SENSITIVE_COL, - NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (WID ("sounds_treeview")), column); - - /* The 2nd column with the sound settings */ - renderer = gtk_cell_renderer_combo_new (); - g_signal_connect (renderer, "edited", G_CALLBACK (setting_column_edited), dialog); - g_signal_connect (renderer, "editing-started", G_CALLBACK (combobox_editing_started), dialog); - custom_model = GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT)); - fill_custom_model (GTK_LIST_STORE (custom_model), NULL); - g_object_set (renderer, "model", custom_model, "has-entry", FALSE, "editable", TRUE, "text-column", 0, NULL); - column = gtk_tree_view_column_new_with_attributes ("Setting", renderer, - "editable", SENSITIVE_COL, - "sensitive", SENSITIVE_COL, - "visible", TRUE, - NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (WID ("sounds_treeview")), column); - gtk_tree_view_column_set_cell_data_func (column, renderer, setting_set_func, NULL, NULL); - - /* The 3rd column with the preview pixbuf */ - renderer = g_object_new (ACTIVATABLE_TYPE_CELL_RENDERER_PIXBUF, NULL); - g_object_set (renderer, - "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, - "icon-name", "media-playback-start", - "stock-size", GTK_ICON_SIZE_MENU, - NULL); - column = gtk_tree_view_column_new_with_attributes ("Preview", renderer, - "visible", HAS_PREVIEW_COL, - NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (WID ("sounds_treeview")), column); - g_object_set_data (G_OBJECT (WID ("sounds_treeview")), "preview-column", column); - - gtk_tree_view_set_model (GTK_TREE_VIEW (WID ("sounds_treeview")), GTK_TREE_MODEL (store)); - gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (WID ("sounds_treeview")), FALSE); - - g_signal_connect (WID ("sounds_treeview"), "button-press-event", - G_CALLBACK (custom_treeview_button_press_event_cb), dialog); - - /* Fill in the model */ - type = CATEGORY_INVALID; - - for (i = 0; ; i++) { - GtkTreeIter *_parent; - - if (sounds[i].category == -1) - break; - - if (sounds[i].type == SOUND_TYPE_VISUAL_BELL && have_xkb == FALSE) - continue; - - /* Is it a new type of sound? */ - if (sounds[i].category == type && type != CATEGORY_INVALID && type != CATEGORY_BELL) - _parent = &parent; - else - _parent = NULL; - - if (sounds[i].type == SOUND_TYPE_VISUAL_BELL) - gtk_tree_store_insert_with_values (store, &iter, _parent, G_MAXINT, - DISPLAY_COL, g_dpgettext2 (NULL, "Sound event", sounds[i].display_name), - SETTING_COL, visual_bell_setting, - TYPE_COL, sounds[i].type, - HAS_PREVIEW_COL, FALSE, - SENSITIVE_COL, TRUE, - -1); - else if (sounds[i].type != -1) - gtk_tree_store_insert_with_values (store, &iter, _parent, G_MAXINT, - DISPLAY_COL, g_dpgettext2 (NULL, "Sound event", sounds[i].display_name), - SETTING_COL, SOUND_BUILTIN, - TYPE_COL, sounds[i].type, - SOUND_NAMES_COL, sounds[i].names, - HAS_PREVIEW_COL, TRUE, - SENSITIVE_COL, TRUE, - -1); - else - /* Category */ - gtk_tree_store_insert_with_values (store, &iter, _parent, G_MAXINT, - DISPLAY_COL, g_dpgettext2 (NULL, "Sound event", sounds[i].display_name), - SETTING_COL, SOUND_UNSET, - TYPE_COL, sounds[i].type, - SENSITIVE_COL, TRUE, - HAS_PREVIEW_COL, FALSE, - -1); - - /* If we didn't set a parent already, set one in case we need it later */ - if (_parent == NULL) - parent = iter; - type = sounds[i].category; - } - - gtk_tree_view_expand_all (GTK_TREE_VIEW (WID ("sounds_treeview"))); - - /* Listen to GConf for a bunch of keys */ - input_feedback_enabled = gconf_client_get_bool (client, INPUT_SOUNDS_KEY, NULL); - if (input_feedback_enabled == FALSE) - set_input_feedback_enabled (dialog, FALSE); - gconf_client_notify_add (client, INPUT_SOUNDS_KEY, - (GConfClientNotifyFunc) input_feedback_changed_cb, dialog, NULL, NULL); - - audible_bell_enabled = gconf_client_get_bool (client, AUDIO_BELL_KEY, NULL); - if (audible_bell_enabled == FALSE) - set_audible_bell_enabled (dialog, FALSE); - gconf_client_notify_add (client, AUDIO_BELL_KEY, - (GConfClientNotifyFunc) audible_bell_changed_cb, dialog, NULL, NULL); - - /* Setup the default values if we're using the custom theme */ - theme_name = gconf_client_get_string (client, SOUND_THEME_KEY, NULL); - if (theme_name != NULL && strcmp (theme_name, CUSTOM_THEME_NAME) == 0) - gtk_tree_model_foreach (GTK_TREE_MODEL (store), theme_changed_custom_init, NULL); - g_free (theme_name); - - g_object_unref (client); -} - diff --git a/capplets/sound/sound-theme.h b/capplets/sound/sound-theme.h deleted file mode 100644 index aed38f5d6..000000000 --- a/capplets/sound/sound-theme.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -*- mode: c; style: linux -*- */ -/* -*- c-basic-offset: 2 -*- */ - -/* sound-theme.h - * Copyright (C) 2008 Bastien Nocera <hadess@hadess.net> - * - * This program 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, or (at your option) - * any later version. - * - * This program 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 __SOUND_THEME_HH__ -#define __SOUND_THEME_HH__ - -#include <gtk/gtk.h> -#include <glade/glade.h> - -void setup_sound_theme (GladeXML *dialog); -void setup_sound_theme_custom (GladeXML *dialog, gboolean have_xkb); - -#endif /* __SOUND_THEME_HH__ */ diff --git a/configure.in b/configure.in index 7eeb1457d..f8a6d989a 100644 --- a/configure.in +++ b/configure.in @@ -243,68 +243,6 @@ fi AM_GCONF_SOURCE_2 dnl ============================================== -dnl GStreamer section -dnl ============================================== -GST_MAJORMINOR=auto - -AC_ARG_ENABLE(gstreamer, -AC_HELP_STRING([--disable-gstreamer],[disable gstreamer support]), -[case "${enableval}" in - yes) ENABLE_GSTREAMER=yes ;; - 0.10) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.10 ;; - no) ENABLE_GSTREAMER=no ;; - *) AC_MSG_ERROR([ - *** Bad value ${enableval} for --enable-gstreamer - *** Please use one of the following: - *** --enable-gstreamer=0.10 - ]) ;; -esac], -[ENABLE_GSTREAMER=yes]) dnl Default value - -have_gstreamer=no -if test "x$ENABLE_GSTREAMER" = "xyes"; then - GST_REQS=0.10.1.2 - PKGS="gstreamer-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GST_REQS" - - PKG_CHECK_MODULES(GST, $PKGS, have_gstreamer=yes, - AC_MSG_RESULT([no])) - - GST_LIBS="$GST_LIBS -lgstinterfaces-0.10 -lgstaudio-0.10" -else - AC_MSG_NOTICE([*** GStreamer support disabled ***]) -fi -AM_CONDITIONAL(HAVE_GSTREAMER, test "x$have_gstreamer" = "xyes") -AC_SUBST(GST_LIBS) -AC_SUBST(GST_CFLAGS) - -dnl ============================================== -dnl sound capplet section -dnl ============================================== - -AC_ARG_WITH(libcanberra, - AC_HELP_STRING([--without-libcanberra],[Don't build parts depending on libcanberra]), - with_libcanberra=$withval, - with_libcanberra=yes) - -if test "x$with_libcanberra" != "xno"; then - PKG_CHECK_MODULES(CANBERRA, libcanberra-gtk >= 0.4 gio-2.0, have_canberra=yes, have_canberra=no) - if test "x$have_gstreamer" = "xyes" && test "x$have_canberra" = "xyes" ; then - SOUND_CAPPLET_LIBS="$GST_LIBS -lgstaudio-0.10 -lgstinterfaces-0.10" - SOUND_CAPPLET_CFLAGS="$GST_CFLAGS" - AC_SUBST(SOUND_CAPPLET_LIBS) - AC_SUBST(SOUND_CAPPLET_CFLAGS) - else - if test "x$with_libcanberra" = "xyes" -a "x$have_canberra" = "xno"; then - AC_MSG_ERROR([Sound capplet requested but libcanberra not found]) - fi - AC_MSG_NOTICE([*** Sound capplet will not be built]); - fi -else - AC_MSG_NOTICE([*** Sound capplet will not be built]); -fi -AM_CONDITIONAL(BUILD_SOUND, test "x$with_libcanberra" = "xyes") - -dnl ============================================== dnl Define the main variables dnl ============================================== COMMON_CFLAGS="-I\$(top_srcdir)/capplets/common" @@ -365,8 +303,6 @@ capplets/mouse/Makefile capplets/mouse/gnome-settings-mouse.desktop.in capplets/network/Makefile capplets/network/gnome-network-preferences.desktop.in -capplets/sound/Makefile -capplets/sound/gnome-settings-sound.desktop.in capplets/windows/Makefile capplets/windows/window-properties.desktop.in font-viewer/Makefile |