summaryrefslogtreecommitdiffstats
path: root/audio/gnome-media
diff options
context:
space:
mode:
authormarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2004-12-26 10:24:26 +0800
committermarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2004-12-26 10:24:26 +0800
commit2221392343c8e0dee767886b59735bbd454d441b (patch)
treecf2dec721a93122dc5c564660de1e4174011be7f /audio/gnome-media
parent72bfd921afb407ed021ca31390d3b0762ae31ae1 (diff)
downloadmarcuscom-ports-2221392343c8e0dee767886b59735bbd454d441b.tar
marcuscom-ports-2221392343c8e0dee767886b59735bbd454d441b.tar.gz
marcuscom-ports-2221392343c8e0dee767886b59735bbd454d441b.tar.bz2
marcuscom-ports-2221392343c8e0dee767886b59735bbd454d441b.tar.lz
marcuscom-ports-2221392343c8e0dee767886b59735bbd454d441b.tar.xz
marcuscom-ports-2221392343c8e0dee767886b59735bbd454d441b.tar.zst
marcuscom-ports-2221392343c8e0dee767886b59735bbd454d441b.zip
Improve the saving feature of gnome-sound-recorder.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@3328 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'audio/gnome-media')
-rw-r--r--audio/gnome-media/Makefile1
-rw-r--r--audio/gnome-media/files/patch-grecord_src_gsr-window.c87
2 files changed, 88 insertions, 0 deletions
diff --git a/audio/gnome-media/Makefile b/audio/gnome-media/Makefile
index 476572948..0489e4613 100644
--- a/audio/gnome-media/Makefile
+++ b/audio/gnome-media/Makefile
@@ -7,6 +7,7 @@
PORTNAME= gnomemedia2
PORTVERSION= 2.9.3
+PORTREVISION= 1
CATEGORIES= audio gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/gnome-media/2.9
diff --git a/audio/gnome-media/files/patch-grecord_src_gsr-window.c b/audio/gnome-media/files/patch-grecord_src_gsr-window.c
new file mode 100644
index 000000000..fb11cf848
--- /dev/null
+++ b/audio/gnome-media/files/patch-grecord_src_gsr-window.c
@@ -0,0 +1,87 @@
+--- grecord/src/gsr-window.c.orig Sat Dec 25 20:01:19 2004
++++ grecord/src/gsr-window.c Sat Dec 25 20:12:13 2004
+@@ -29,7 +29,7 @@
+ #include <unistd.h>
+
+ #include <gnome.h>
+-#include <libgnomevfs/gnome-vfs-utils.h>
++#include <libgnomevfs/gnome-vfs.h>
+ #include <gconf/gconf-client.h>
+ #include <gst/gst.h>
+ #include <gst/gconf/gconf.h>
+@@ -476,39 +476,53 @@
+ {
+ GSRWindowPrivate *priv;
+ GMAudioProfile *profile;
+- char *tmp, *command;
+- GError *error;
+- int status;
+-
+- status = 0;
++ char *tmp, *src;
++ GnomeVFSURI *src_uri, *dst_uri;
+
+ priv = window->priv;
+-
++
+ profile = gm_audio_profile_choose_get_active (priv->profile);
+
+- tmp = g_strdup_printf ("%s.%s", name,
++ tmp = g_strdup_printf ("file://%s.%s", name,
+ gm_audio_profile_get_extension (profile));
+-
+- command = g_strdup_printf ("/bin/cp %s %s", priv->record_filename, tmp);
+-
+- if (!g_spawn_command_line_sync (command, NULL, NULL, &status, &error)) {
+- gchar *error_message;
++ src = g_strdup_printf ("file://%s", priv->record_filename);
++ src_uri = gnome_vfs_uri_new (src);
++ dst_uri = gnome_vfs_uri_new (tmp);
++ g_free (src);
++ g_free (tmp);
++ if (src_uri && dst_uri) {
++ GnomeVFSResult result;
++ result = gnome_vfs_xfer_uri (src_uri, dst_uri,
++ GNOME_VFS_XFER_DEFAULT,
++ GNOME_VFS_XFER_ERROR_MODE_ABORT,
++ GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
++ NULL, NULL);
++ if (result == GNOME_VFS_OK) {
++ char *title, *short_name;
++ priv->filename = g_strdup_printf ("%s.%s",
++ name, gm_audio_profile_get_extension (profile));
++ short_name = g_path_get_basename (priv->filename);
++ title = g_strdup_printf ("%s - Sound Recorder",
++ short_name);
++ gtk_window_set_title (GTK_WINDOW (window), title);
++ priv->dirty = FALSE;
++ g_free (title);
++ } else {
++ gchar *error_message;
+
+- error_message = g_strdup_printf (_("Could not save the file \" %s\""), error->message);
+- show_error_dialog (GTK_WINDOW (window), error_message);
+- g_free (error_message);
+- }
+-
+- if (status) {
++ error_message = g_strdup_printf (_("Could not save the file \" %s\""), gnome_vfs_result_to_string (result));
++ show_error_dialog (GTK_WINDOW (window), error_message);
++ g_free (error_message);
++ }
++ gnome_vfs_uri_unref (src_uri);
++ gnome_vfs_uri_unref (dst_uri);
++ } else {
+ gchar *error_message;
+
+- error_message = g_strdup_printf (_("Could not save the file \" %s\""), tmp);
++ error_message = g_strdup_printf (_("Could not save the file \" %s.%s\""), name, gm_audio_profile_get_extension (profile));
+ show_error_dialog (GTK_WINDOW (window), error_message);
+ g_free (error_message);
+ }
+-
+- g_free (tmp);
+- g_free (command);
+ }
+
+ static void