[Rhythmbox-devel] No-burner support
- From: Tom Parker <palfrey tevp net>
- To: rhythmbox-devel gnome org
- Subject: [Rhythmbox-devel] No-burner support
- Date: Thu, 08 Jun 2006 15:33:00 +0200
I'd been wondering for a while whether I could disable the CD-burning
support in Rhythmbox entirely, as I never use it (my system doesn't even
have a burner). As it turns out I couldn't, so I've written a patch to
support this. Default behaviour is as current, but with the
--disable-nautilus-burn flag given to configure, CD burning is switched
off entirely. As well as the patch enclosed here, you'll also need the
rhythmbox-ui.xml.in and sifter.pl (used to generate rhythmbox-ui.xml
from the .in with or without burner menu/popup options).
WFM, applies against current CVS Head. Hopefully of some interest to
other people.
Tom Parker
--
palfrey tevp net - http://tevp.net
Illegitimus non carborundum
Index: Makefile.am
===================================================================
RCS file: /cvs/gnome/rhythmbox/Makefile.am,v
retrieving revision 1.51
diff -u -p -r1.51 Makefile.am
--- Makefile.am 12 May 2006 16:04:44 -0000 1.51
+++ Makefile.am 8 Jun 2006 13:19:21 -0000
@@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = 1.7
DISTCHECK_CONFIGURE_FLAGS = --disable-schemas-install --enable-gtk-doc --disable-scrollkeeper
distuninstallcheck_listfiles = find . -type f -print | grep -v '^\./var/scrollkeeper'
-SUBDIRS = macros lib metadata player rhythmdb widgets sources iradio podcast \
+SUBDIRS = macros lib metadata $(PLAYER_MODULE) rhythmdb widgets sources iradio podcast \
daapsharing backends plugins bindings shell data po help tests doc
EXTRA_DIST = \
Index: configure.ac
===================================================================
RCS file: /cvs/gnome/rhythmbox/configure.ac,v
retrieving revision 1.245
diff -u -p -r1.245 configure.ac
--- configure.ac 8 Jun 2006 06:31:10 -0000 1.245
+++ configure.ac 8 Jun 2006 13:19:22 -0000
@@ -559,22 +559,34 @@ AM_CONDITIONAL(HAVE_LINUX_CDROM, test "x
NCB_DRIVE_DOOR_VERSION=2.11.3
dnl CD burner support
-PKG_CHECK_MODULES(LIBNAUTILUS_BURN, [libnautilus-burn >= $NCB_MIN_REQS], have_cd_burner=yes, have_cd_burner=no)
-if test "x$have_cd_burner" = xno; then
- AC_MSG_ERROR([libnautilus-burn not found or too cold])
-fi
-AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_door_is_open,
- [AC_DEFINE([HAVE_BURN_DRIVE_DOOR], 1, [Have nautilus-burn function to check drive door state])],
- ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
-AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_unref,
- [AC_DEFINE([HAVE_BURN_DRIVE_UNREF], 1, [Have nautilus-burn 2.13 drive unref function])],
- ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
-AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_new_from_path,
- [AC_DEFINE([HAVE_BURN_DRIVE_NEW_FROM_PATH], 1, [Have nautilus-burn 2.13 drive new_from_path function])],
- ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
-AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_get_write_speeds,
- [AC_DEFINE([HAVE_BURN_DRIVE_GET_WRITE_SPEEDS], 1, [Have nautilus-burn 2.13 drive get_write_speeds])],
- ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+AC_ARG_ENABLE(nautilus-burn,
+ AC_HELP_STRING([--disable-nautilus-burn],
+ [Disable cd burner support in rhythmbox]))
+if test x"$enable_nautilus_burn" != xno; then
+ PKG_CHECK_MODULES(LIBNAUTILUS_BURN, [libnautilus-burn >= $NCB_MIN_REQS], have_cd_burner=yes, have_cd_burner=no)
+ if test "x$have_cd_burner" = xyes; then
+ AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_door_is_open,
+ [AC_DEFINE([HAVE_BURN_DRIVE_DOOR], 1, [Have nautilus-burn function to check drive door state])],
+ ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+ AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_unref,
+ [AC_DEFINE([HAVE_BURN_DRIVE_UNREF], 1, [Have nautilus-burn 2.13 drive unref function])],
+ ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+ AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_new_from_path,
+ [AC_DEFINE([HAVE_BURN_DRIVE_NEW_FROM_PATH], 1, [Have nautilus-burn 2.13 drive new_from_path function])],
+ ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+ AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_get_write_speeds,
+ [AC_DEFINE([HAVE_BURN_DRIVE_GET_WRITE_SPEEDS], 1, [Have nautilus-burn 2.13 drive get_write_speeds])],
+ ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+ AC_DEFINE(HAVE_NAUTILUS_BURN, 1, [defined if you have nautilus-burn])
+ PLAYER_MODULE=player
+ else
+ AC_MSG_ERROR([libnautilus-burn not found or too cold])
+ fi
+else
+ PLAYER_MODULE=
+fi
+AC_SUBST(PLAYER_MODULE)
+AM_CONDITIONAL(HAVE_NAUTILUS_BURN, test "x$enable_nautilus_burn" != "xno")
AC_SUBST(CFLAGS)
AC_SUBST(LDFLAGS)
@@ -944,7 +955,11 @@ fi
if test x"${with_rhythmdb_debug}" != x0; then
AC_MSG_NOTICE([** RhythmDB sanity checking enabled (may be slow!)])
fi
-
+if test x"$enable_nautilus_burn" = xyes; then
+ AC_MSG_NOTICE([** CD burning is enabled])
+else
+ AC_MSG_NOTICE([ CD burning is disabled])
+fi
if test x"$enable_tag_writing" = xyes; then
AC_MSG_NOTICE([** Tag writing is enabled - USE AT YOUR OWN RISK])
Index: data/ui/Makefile.am
===================================================================
RCS file: /cvs/gnome/rhythmbox/data/ui/Makefile.am,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile.am
--- data/ui/Makefile.am 25 May 2006 07:20:46 -0000 1.17
+++ data/ui/Makefile.am 8 Jun 2006 13:19:22 -0000
@@ -3,5 +3,9 @@
uixmldir = $(pkgdatadir)
uixml_DATA = rhythmbox-ui.xml ipod-ui.xml daap-ui.xml generic-player-ui.xml
-EXTRA_DIST = rhythmbox-ui.xml ipod-ui.xml daap-ui.xml generic-player-ui.xml
+EXTRA_DIST = rhythmbox-ui.xml.in ipod-ui.xml daap-ui.xml generic-player-ui.xml
+export
+
+rhythmbox-ui.xml: rhythmbox-ui.xml.in Makefile sifter.pl
+ ./sifter.pl $< $@
Index: player/rb-recorder-gst.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/player/rb-recorder-gst.c,v
retrieving revision 1.26
diff -u -p -r1.26 rb-recorder-gst.c
--- player/rb-recorder-gst.c 2 Jun 2006 05:58:18 -0000 1.26
+++ player/rb-recorder-gst.c 8 Jun 2006 13:19:22 -0000
@@ -100,7 +100,8 @@ struct _RBRecorderPrivate {
double progress;
GList *tracks;
+#ifdef HAVE_NAUTILUS_BURN
NautilusBurnDrive *drive;
NautilusBurnRecorder *recorder;
gboolean playing;
Index: shell/Makefile.am
===================================================================
RCS file: /cvs/gnome/rhythmbox/shell/Makefile.am,v
retrieving revision 1.83
diff -u -p -r1.83 Makefile.am
--- shell/Makefile.am 14 May 2006 00:00:55 -0000 1.83
+++ shell/Makefile.am 8 Jun 2006 13:19:22 -0000
@@ -100,13 +100,16 @@ rhythmbox_LDADD = \
$(top_builddir)/sources/libsourcesimpl.la \
$(top_builddir)/iradio/librbiradio.la \
$(top_builddir)/podcast/librbpodcast.la \
- $(top_builddir)/player/librbplayer.la \
$(top_builddir)/metadata/librbmetadata.la \
$(top_builddir)/widgets/librbwidgets.la \
$(top_builddir)/rhythmdb/librhythmdb.la \
$(top_builddir)/backends/librbbackends.la \
$(top_builddir)/plugins/librbplugins.la \
$(top_builddir)/lib/librb.la
+
+if HAVE_NAUTILUS_BURN
+rhythmbox_LDADD += $(top_builddir)/player/librbplayer.la
+endif
if USE_DAAP
INCLUDES += -I$(top_srcdir)/daapsharing
Index: shell/main.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/shell/main.c,v
retrieving revision 1.98
diff -u -p -r1.98 main.c
--- shell/main.c 30 May 2006 13:47:16 -0000 1.98
+++ shell/main.c 8 Jun 2006 13:19:22 -0000
@@ -73,6 +73,7 @@
#include <dbus/dbus-glib-lowlevel.h>
#endif
+#ifdef HAVE_NAUTILUS_BURN
#include <nautilus-burn-drive.h>
#ifndef NAUTILUS_BURN_CHECK_VERSION
#define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE
@@ -81,6 +82,13 @@
#if NAUTILUS_BURN_CHECK_VERSION(2,15,3)
#include <nautilus-burn.h>
#endif
+
+#else // !HAVE_NAUTILUS_BURN
+#ifndef NAUTILUS_BURN_CHECK_VERSION
+#define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE
+#endif
+
+#endif // HAVE_NAUTILUS_BURN
static gboolean debug = FALSE;
static char *debug_match = NULL;
Index: shell/rb-playlist-manager.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/shell/rb-playlist-manager.c,v
retrieving revision 1.107
diff -u -p -r1.107 rb-playlist-manager.c
--- shell/rb-playlist-manager.c 7 Jun 2006 13:10:39 -0000 1.107
+++ shell/rb-playlist-manager.c 8 Jun 2006 13:19:22 -0000
@@ -70,8 +70,10 @@ static void rb_playlist_manager_cmd_load
RBPlaylistManager *mgr);
static void rb_playlist_manager_cmd_save_playlist (GtkAction *action,
RBPlaylistManager *mgr);
+#ifdef HAVE_NAUTILUS_BURN
static void rb_playlist_manager_cmd_burn_playlist (GtkAction *action,
RBPlaylistManager *mgr);
+#endif
static void rb_playlist_manager_cmd_new_playlist (GtkAction *action,
RBPlaylistManager *mgr);
static void rb_playlist_manager_cmd_new_automatic_playlist (GtkAction *action,
@@ -144,9 +146,11 @@ static GtkActionEntry rb_playlist_manage
{ "MusicPlaylistSavePlaylist", GTK_STOCK_SAVE_AS, N_("_Save to File..."), NULL,
N_("Save a playlist to a file"),
G_CALLBACK (rb_playlist_manager_cmd_save_playlist) },
+#ifdef HAVE_NAUTILUS_BURN
{ "MusicPlaylistBurnPlaylist", GTK_STOCK_CDROM, N_("_Create Audio CD..."), NULL,
N_("Create an audio CD from playlist"),
G_CALLBACK (rb_playlist_manager_cmd_burn_playlist) },
+#endif
{ "MusicPlaylistRenamePlaylist", NULL, N_("_Rename"), NULL,
N_("Rename playlist"),
G_CALLBACK (rb_playlist_manager_cmd_rename_playlist) },
@@ -314,12 +318,16 @@ static void
rb_playlist_manager_playlist_entries_changed (GtkTreeModel *model, RhythmDBEntry *entry, RBPlaylistManager *mgr)
{
int num_tracks;
+#ifdef HAVE_NAUTILUS_BURN
GtkAction *action;
+#endif
num_tracks = gtk_tree_model_iter_n_children (model, NULL);
+#ifdef HAVE_NAUTILUS_BURN
action = gtk_action_group_get_action (mgr->priv->actiongroup, "MusicPlaylistBurnPlaylist");
gtk_action_set_sensitive (action, (num_tracks > 0));
+#endif
}
static void
@@ -391,6 +399,7 @@ rb_playlist_manager_set_source (RBPlayli
"MusicPlaylistRenamePlaylist");
gtk_action_set_visible (action, can_rename);
+#ifdef HAVE_NAUTILUS_BURN
action = gtk_action_group_get_action (mgr->priv->actiongroup,
"MusicPlaylistBurnPlaylist");
if (playlist_active && rb_recorder_enabled ()) {
@@ -413,6 +422,7 @@ rb_playlist_manager_set_source (RBPlayli
} else {
gtk_action_set_visible (action, FALSE);
}
+#endif
}
static void
@@ -1401,12 +1411,14 @@ rb_playlist_manager_cmd_save_playlist (G
g_object_unref (G_OBJECT (xml));
}
+#ifdef HAVE_NAUTILUS_BURN
static void
rb_playlist_manager_cmd_burn_playlist (GtkAction *action,
RBPlaylistManager *mgr)
{
rb_playlist_source_burn_playlist (RB_PLAYLIST_SOURCE (mgr->priv->selected_source));
}
+#endif
/**
* rb_playlist_manager_get_playlists
Index: shell/rb-removable-media-manager.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/shell/rb-removable-media-manager.c,v
retrieving revision 1.28
diff -u -p -r1.28 rb-removable-media-manager.c
--- shell/rb-removable-media-manager.c 2 Jun 2006 22:27:46 -0000 1.28
+++ shell/rb-removable-media-manager.c 8 Jun 2006 13:19:22 -0000
@@ -27,6 +27,7 @@
#include <gtk/gtk.h>
#include <libgnomevfs/gnome-vfs.h>
+#ifdef HAVE_NAUTILUS_BURN
#include <nautilus-burn-drive.h>
#ifndef NAUTILUS_BURN_CHECK_VERSION
@@ -37,6 +38,12 @@
#include <nautilus-burn.h>
#endif
+#else // !HAVE_NAUTILUS_BURN
+#ifndef NAUTILUS_BURN_CHECK_VERSION
+#define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE
+#endif
+#endif
+
#include "rb-removable-media-manager.h"
#include "rb-library-source.h"
#include "rb-sourcelist.h"
@@ -371,7 +379,9 @@ typedef struct
gboolean removed;
gboolean tray_opened;
RBRemovableMediaManager *manager;
+#ifdef HAVE_NAUTILUS_BURN
NautilusBurnDrive *drive;
+#endif
} RbCdDriveInfo;
#ifdef HAVE_BURN_DRIVE_DOOR
@@ -406,6 +416,7 @@ gboolean poll_tray_opened (RbCdDriveInfo
}
#endif
+#ifdef HAVE_NAUTILUS_BURN
static
void end_cd_drive_monitor (RbCdDriveInfo *info, RBRemovableMediaManager *manager)
{
@@ -466,8 +477,10 @@ get_nautilus_burn_drive_for_path (const
return path_drive;
#endif
}
+#endif
#endif /* NAUTILUS_BURN < 2.15.3 */
+#ifdef HAVE_NAUTILUS_BURN
static char *
split_drive_from_cdda_uri (const char *uri)
{
@@ -538,17 +551,20 @@ rb_removable_media_manager_playing_uri_c
g_free (priv->playing_uri);
priv->playing_uri = (uri) ? g_strdup (uri) : NULL;
}
+#endif
static gboolean
rb_removable_media_manager_load_media (RBRemovableMediaManager *manager)
{
- RBRemovableMediaManagerPrivate *priv = REMOVABLE_MEDIA_MANAGER_GET_PRIVATE (manager);
GnomeVFSVolumeMonitor *monitor = gnome_vfs_get_volume_monitor ();
+#ifdef HAVE_NAUTILUS_BURN
+ RBRemovableMediaManagerPrivate *priv = REMOVABLE_MEDIA_MANAGER_GET_PRIVATE (manager);
#if !NAUTILUS_BURN_CHECK_VERSION(2,15,3)
GList *drives;
#endif
GObject *shell_player;
+#endif
/*
* Monitor new (un)mounted file systems to look for new media
@@ -568,6 +584,7 @@ rb_removable_media_manager_load_media (R
G_CALLBACK (rb_removable_media_manager_volume_unmounted_cb),
manager);
+#ifdef HAVE_NAUTILUS_BURN
/*
* Monitor all cd drives for inserted audio cds
*
@@ -586,6 +603,7 @@ rb_removable_media_manager_load_media (R
g_signal_connect (shell_player, "playing-uri-changed",
G_CALLBACK (rb_removable_media_manager_playing_uri_changed_cb),
manager);
+#endif
return FALSE;
}
@@ -819,6 +837,7 @@ rb_removable_media_manager_unmount_volum
rb_removable_media_manager_unmount_volume (manager, volume);
}
+#ifdef HAVE_NAUTILUS_BURN
#if !NAUTILUS_BURN_CHECK_VERSION(2,15,3)
static const char *
nautilus_burn_drive_get_device (NautilusBurnDrive *drive)
@@ -828,6 +847,7 @@ nautilus_burn_drive_get_device (Nautilus
return drive->device;
}
#endif
+#endif
void
rb_removable_media_manager_scan (RBRemovableMediaManager *manager)
@@ -862,6 +882,7 @@ rb_removable_media_manager_scan (RBRemov
}
g_list_free (list);
+#ifdef HAVE_NAUTILUS_BURN
/* scan cd drives */
#if NAUTILUS_BURN_CHECK_VERSION(2,15,3)
list = nautilus_burn_drive_monitor_get_drives (nautilus_burn_get_drive_monitor ());
@@ -878,6 +899,7 @@ rb_removable_media_manager_scan (RBRemov
}
}
g_list_free (list);
+#endif
}
Index: sources/Makefile.am
===================================================================
RCS file: /cvs/gnome/rhythmbox/sources/Makefile.am,v
retrieving revision 1.41
diff -u -p -r1.41 Makefile.am
--- sources/Makefile.am 27 May 2006 04:30:50 -0000 1.41
+++ sources/Makefile.am 8 Jun 2006 13:19:22 -0000
@@ -20,8 +20,6 @@ libsourcesimpl_la_SOURCES = \
rb-removable-media-source.h \
rb-audiocd-source.c \
rb-audiocd-source.h \
- rb-playlist-source-recorder.c \
- rb-playlist-source-recorder.h \
rb-playlist-source.c \
rb-playlist-source.h \
rb-playlist-xml.h \
@@ -70,6 +68,11 @@ if USE_DAAP
libsourcesimpl_la_SOURCES += $(daap_files)
endif
+if HAVE_NAUTILUS_BURN
+libsourcesimpl_la_SOURCES += rb-playlist-source-recorder.c \
+ rb-playlist-source-recorder.h
+endif
+
if USE_LIBSOUP
INCLUDES += $(SOUP_CFLAGS)
endif
Index: sources/rb-playlist-source.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/sources/rb-playlist-source.c,v
retrieving revision 1.118
diff -u -p -r1.118 rb-playlist-source.c
--- sources/rb-playlist-source.c 25 May 2006 07:20:48 -0000 1.118
+++ sources/rb-playlist-source.c 8 Jun 2006 13:19:22 -0000
@@ -500,6 +500,7 @@ rb_playlist_source_save_playlist (RBPlay
"%s", error->message);
}
+#ifdef HAVE_NAUTILUS_BURN
static gboolean
burn_playlist_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **artist, char **title, gulong *duration)
{
@@ -545,6 +546,7 @@ rb_playlist_source_burn_playlist (RBPlay
GTK_TREE_MODEL (source->priv->model),
burn_playlist_iter_func,
&error);
+
if (! res) {
rb_error_dialog (GTK_WINDOW (parent),
_("Unable to create audio CD"),
@@ -563,6 +565,7 @@ rb_playlist_source_burn_playlist (RBPlay
gtk_widget_show (recorder);
}
+#endif
/* Adapted from yelp-toc-pager.c */
static xmlChar *
<ui>
<menubar name="MenuBar">
<menu name="MusicMenu" action="Music">
<menuitem name="MusicImportFileMenu" action="MusicImportFile"/>
<menuitem name="MusicImportFolderMenu" action="MusicImportFolder"/>
<separator/>
<menuitem name="MusicImportCD" action="MusicImportCD"/>
<menuitem name="MusicScanMedia" action="MusicScanMedia"/>
<separator/>
<menu name="PlaylistMenu" action="Playlist">
<menuitem name="MusicPlaylistNewPlaylistMenu" action="MusicPlaylistNewPlaylist"/>
<menuitem name="MusicPlaylistNewAutomaticPlaylistMenu" action="MusicPlaylistNewAutomaticPlaylist"/>
<menuitem name="MusicPlaylistLoadPlaylistMenu" action="MusicPlaylistLoadPlaylist"/>
<menuitem name="MusicPlaylistSavePlaylistMenu" action="MusicPlaylistSavePlaylist"/>
#HAVE_NAUTILUS_BURN <menuitem name="MusicPlaylistBurnPlaylistMenu" action="MusicPlaylistBurnPlaylist"/>
<menuitem name="MusicPlaylistEditAutoPlaylistMenu" action="EditAutomaticPlaylist"/>
<separator name="MusicPlaylistSeparator1"/>
<menuitem name="MusicPlaylistDeletePlaylistMenu" action="MusicPlaylistDeletePlaylist"/>
</menu>
<menuitem name="MusicNewInternetRadioStationMenu" action="MusicNewInternetRadioStation"/>
<menuitem name="MusicNewPodcastMenu" action="MusicNewPodcast"/>
<separator/>
<menuitem name="MusicPropertiesMenu" action="MusicProperties"/>
<separator/>
<menuitem name="MusicClose" action="MusicClose"/>
<menuitem name="MusicQuit" action="MusicQuit"/>
</menu>
<menu name="EditMenu" action="Edit">
<menuitem name="EditCutMenu" action="EditCut"/>
<menuitem name="EditCopyMenu" action="EditCopy"/>
<menuitem name="EditPasteMenu" action="EditPaste"/>
<menuitem name="EditDeleteMenu" action="EditDelete"/>
<separator/>
<menuitem name="EditSelectAllMenu" action="EditSelectAll"/>
<menuitem name="EditSelectNoneMenu" action="EditSelectNone"/>
<separator/>
<menuitem name="EditAddToQueueMenu" action="AddToQueue"/>
<menu name="EditPlaylistAddMenu" action="EditPlaylistAdd">
<menuitem name="EditPlaylistAddNew" action="EditPlaylistAddNew"/>
<separator/>
<placeholder name="EditPlaylistAddPlaceholder"/>
</menu>
<separator/>
<menuitem name="EditMovetoTrash" action="EditMovetoTrash"/>
<separator/>
<menuitem name="EditPluginsMenu" action="EditPlugins"/>
<menuitem name="EditPreferencesMenu" action="EditPreferences"/>
</menu>
<menu name="ViewMenu" action="View">
<menuitem name="ViewSmallDisplayMenu" action="ViewSmallDisplay"/>
<menuitem name="ViewPartyModeMenu" action="ViewPartyMode"/>
<separator name="ViewSep1"/>
<menuitem name="ViewSidePaneMenu" action="ViewSidePane"/>
<menuitem name="ViewQueueAsSidebarMenu" action="ViewQueueAsSidebar"/>
<menuitem name="ViewBrowserMenu" action="ViewBrowser"/>
<menuitem name="ViewStatusbarMenu" action="ViewStatusbar"/>
<menuitem name="ViewToolbarMenu" action="ViewToolbar"/>
<separator name="ViewSep2"/>
<menuitem name="ViewAllMenu" action="ViewAll"/>
<separator name="ViewSep3"/>
<menuitem name="ViewJumpToPlayingMenu" action="ViewJumpToPlaying"/>
</menu>
<menu name="ToolsMenu" action="Tools">
<placeholder name="ToolsOps_1" />
<separator/>
<placeholder name="ToolsOps_2" />
<separator/>
<placeholder name="ToolsOps_3" />
<separator/>
<placeholder name="ToolsOps_4" />
<separator/>
<placeholder name="ToolsOps_5" />
</menu>
<menu name="ControlMenu" action="Control">
<menuitem name="ControlPlayMenu" action="ControlPlay"/>
<separator name="ControlSep1"/>
<menuitem name="ControlPreviousMenu" action="ControlPrevious"/>
<menuitem name="ControlNextMenu" action="ControlNext"/>
<separator name="ControlSep2"/>
<menuitem name="ControlVolumeUpMenu" action="ControlVolumeUp"/>
<menuitem name="ControlVolumeDownMenu" action="ControlVolumeDown"/>
<separator name="ControlSep3"/>
<menuitem name="ControlShuffleMenu" action="ControlShuffle"/>
<menuitem name="ControlRepeatMenu" action="ControlRepeat"/>
</menu>
<menu name="HelpMenu" action="Help">
<menuitem name="HelpContentsMenu" action="HelpContents"/>
<menuitem name="HelpAboutMenu" action="HelpAbout"/>
</menu>
</menubar>
<toolbar name="ToolBar">
<toolitem name="Previous" action="ControlPrevious"/>
<toolitem name="Play" action="ControlPlay"/>
<toolitem name="Next" action="ControlNext"/>
<separator/>
<toolitem name="Repeat" action="ControlRepeat"/>
<toolitem name="Shuffle" action="ControlShuffle"/>
<separator/>
<toolitem name="Browse" action="ViewBrowser"/>
<separator/>
</toolbar>
<toolbar name="SearchBar">
</toolbar>
<popup name="RhythmboxTrayPopup">
<menuitem name="PlayTray" action="ControlPlay"/>
<separator/>
<menuitem name="PreviousTray" action="ControlPrevious"/>
<menuitem name="NextTray" action="ControlNext"/>
<separator/>
<menuitem name="ShowWindowTray" action="TrayShowWindow"/>
<menuitem name="ShowNotifications" action="TrayShowNotifications"/>
<separator/>
<menuitem name="QuitTray" action="MusicQuit"/>
</popup>
<popup name="BrowserSourceViewPopup">
<menuitem name="AddToQueueLibraryPopup" action="AddToQueue"/>
<menu name="BrowserSourcePopupPlaylistAdd" action="EditPlaylistAdd">
<placeholder name="BrowserSourcePopupPlaylistAddPlaceholder"/>
<separator/>
<menuitem name="BrowserSourcePopupPlaylistAddNew" action="EditPlaylistAddNew"/>
</menu>
<menuitem name="CopyLibraryPopup" action="EditCopy"/>
<separator/>
<menuitem name="DeleteLibraryPopup" action="EditDelete"/>
<menuitem name="MovetoTrashPopup" action="EditMovetoTrash"/>
<separator/>
<menuitem name="BrowseGenreLibraryPopup" action="BrowserSrcChooseGenre"/>
<menuitem name="BrowseArtistLibraryPopup" action="BrowserSrcChooseArtist"/>
<menuitem name="BrowseAlbumLibraryPopup" action="BrowserSrcChooseAlbum"/>
<separator/>
<menuitem name="PropertiesLibraryPopup" action="MusicProperties"/>
</popup>
<popup name="ImportErrorsViewPopup">
<menuitem name="MovetoTrashPopup" action="EditMovetoTrash"/>
</popup>
<popup name="PlaylistViewPopup">
<menuitem name="AddToQueuePlaylistPopup" action="AddToQueue"/>
<menu name="PlaylistPopupPlaylistAdd" action="EditPlaylistAdd">
<menuitem name="PlaylistPopupPlaylistAddNew" action="EditPlaylistAddNew"/>
<separator/>
<placeholder name="PlaylistPopupPlaylistAddPlaceholder"/>
</menu>
<menuitem name="CopyPlaylistPopup" action="EditCopy"/>
<menuitem name="CutPlaylistPopup" action="EditCut"/>
<menuitem name="DeletePlaylistPopup" action="EditDelete"/>
<separator/>
<menuitem name="MovetoTrashPlaylistPopup" action="EditMovetoTrash"/>
<separator/>
<menuitem name="PropertiesPlaylistPopup" action="MusicProperties"/>
</popup>
<popup name="QueuePlaylistViewPopup">
<menuitem name="DeletePlaylistPopup" action="EditDelete"/>
<separator/>
<menuitem name="PropertiesPlaylistPopup" action="MusicProperties"/>
</popup>
<popup name="QueueSidebarViewPopup">
<menuitem name="DeletePlaylistPopup" action="QueueDelete"/>
<menuitem name="ClearPlaylistPopup" action="ClearQueue"/>
<separator/>
<menuitem name="PropertiesPlaylistPopup" action="QueueMusicProperties"/>
</popup>
<popup name="QueueSourcePopup">
<menuitem name="ClearPlaylistPopup" action="ClearQueue"/>
#HAVE_NAUTILUS_BURN <separator/>
#HAVE_NAUTILUS_BURN <menuitem name="MusicPlaylistBurnPlaylistMenu" action="MusicPlaylistBurnPlaylist"/>
</popup>
<popup name="SourceListPopup">
<menuitem name="SourceListPopupNewPlaylist" action="MusicPlaylistNewPlaylist"/>
<menuitem name="SourceListPopupNewAutomaticPlaylist" action="MusicPlaylistNewAutomaticPlaylist"/>
</popup>
<popup name="LibrarySourcePopup">
<menuitem name="LibrarySrcPopupAddFile" action="MusicImportFile"/>
<menuitem name="LibrarySrcPopupAddFolder" action="MusicImportFolder"/>
<menuitem name="LibrarySrcPopupAddCD" action="MusicImportCD"/>
</popup>
<popup name="IRadioSourcePopup">
<menuitem name="IRadioSrcPopupNewStation" action="MusicNewInternetRadioStation"/>
</popup>
<popup name="IRadioViewPopup">
<menuitem name="DeleteIRadioPopup" action="EditDelete"/>
<separator/>
<menuitem name="PropertiesIRadioPopup" action="MusicProperties"/>
</popup>
<popup name="PodcastSourcePopup">
<menuitem name="PodcastSrcPopupNew" action="MusicNewPodcast"/>
<menuitem name="PodcastSrcPopupUpdateAllFeeds" action="PodcastUpdateAllFeeds"/>
</popup>
<popup name="PodcastViewPopup">
<menuitem name="DownloadPodcastPopup" action="PodcastSrcDownloadPost"/>
<menuitem name="CancelDownloadPopup" action="PodcastSrcCancelDownload"/>
<menuitem name="DeletePodcastPopup" action="EditDelete"/>
<separator/>
<menuitem name="AddToQueuePodcastPopup" action="AddToQueue"/>
<separator/>
<menuitem name="PropertiesPodcastPopup" action="MusicProperties"/>
</popup>
<popup name="PodcastFeedViewPopup">
<menuitem name="NewPodcastPopup" action="MusicNewPodcast"/>
<menuitem name="PodcastSrcPopupUpdateAllFeeds" action="PodcastUpdateAllFeeds"/>
<separator/>
<menuitem name="UpdateFeedPodcastPopup" action="PodcastFeedUpdate"/>
<menuitem name="DeleteFeedPodcastPopup" action="PodcastFeedDelete"/>
<separator/>
<menuitem name="PropertiesFeedPodcastPopup" action="PodcastFeedProperties"/>
</popup>
<popup name="AudioCdSourcePopup">
<menuitem name="AudioCdSourcePopupCopyAllTracks" action="RemovableSourceCopyAllTracks"/>
<menuitem name="AudioCdSourcePopupEjectCd" action="RemovableSourceEject"/>
</popup>
<popup name="PlaylistSourcePopup">
<menuitem name="RenameAutoPlaylistPopup" action="MusicPlaylistRenamePlaylist"/>
<separator/>
<menuitem name="QueuePlaylistPopup" action="QueuePlaylist"/>
<separator/>
<menuitem name="DeletePlaylistPopup" action="MusicPlaylistDeletePlaylist"/>
</popup>
<popup name="AutoPlaylistSourcePopup">
<menuitem name="EditAutoPlaylistPopup" action="EditAutomaticPlaylist"/>
<menuitem name="RenameAutoPlaylistPopup" action="MusicPlaylistRenamePlaylist"/>
<separator/>
<menuitem name="QueuePlaylistPopup" action="QueuePlaylist"/>
#HAVE_NAUTILUS_BURN <menuitem name="MusicPlaylistBurnPlaylistMenu" action="MusicPlaylistBurnPlaylist"/>
<separator/>
<menuitem name="DeleteAutoPlaylistPopup" action="MusicPlaylistDeletePlaylist"/>
</popup>
<popup name="MissingFilesViewPopup">
<menuitem name="DeleteMissingFilesPopup" action="EditDelete"/>
<menuitem name="PropertiesMissingFilesPopup" action="MusicProperties"/>
</popup>
</ui>
#!/usr/bin/perl -w
open(INFILE, "< $ARGV[0]");
open(OUTFILE, "> $ARGV[1]");
while (<INFILE>)
{
if (substr($_,0,1) eq "#")
{
($var,$rest) = split(/ /,$_,2);
$var = substr($var,1);
if (!exists $ENV{$var} || $ENV{$var} == 0)
{
next;
}
$_ = $rest;
}
print OUTFILE $_;
}
close INFILE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]