[gnac/devel] Code cleanup
- From: BenoÃt Dupasquier <bdupasqu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnac/devel] Code cleanup
- Date: Wed, 16 Nov 2011 22:29:54 +0000 (UTC)
commit dd52624ff96760ee0b14beace3973df91b8fb764
Author: BenoÃt Dupasquier <bdupasqu src gnome org>
Date: Wed Nov 16 17:45:38 2011 +0000
Code cleanup
libgnac/libgnac-converter.c | 322 ++++++++++++++--------------------
libgnac/libgnac-gst-utils.c | 31 ++--
libgnac/libgnac-gst.c | 19 +-
libgnac/libgnac-metadata.c | 120 ++++++-------
src/gnac-main.c | 91 +++++-----
src/gnac-playlist.c | 3 +
src/gnac-utils.c | 2 +
src/profiles/gnac-profiles-manager.c | 11 +-
8 files changed, 260 insertions(+), 339 deletions(-)
---
diff --git a/libgnac/libgnac-converter.c b/libgnac/libgnac-converter.c
index 5f97c46..4d89d92 100644
--- a/libgnac/libgnac-converter.c
+++ b/libgnac/libgnac-converter.c
@@ -92,12 +92,11 @@ libgnac_converter_init(LibgnacConverter *self)
priv->queue = g_queue_new();
priv->queue_copy = NULL;
- priv->file_table = g_hash_table_new_full(g_str_hash,
- g_str_equal,
- g_free,
- (GDestroyNotify)libgnac_item_free);
+ priv->file_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
+ (GDestroyNotify) libgnac_item_free);
+
+ priv->profile = (LibgnacProfile *) g_malloc(sizeof(LibgnacProfile));
- priv->profile = (LibgnacProfile*)g_malloc(sizeof(LibgnacProfile));
priv->profile->audio_desc = NULL;
priv->profile->video_desc = NULL;
priv->profile->muxer_desc = NULL;
@@ -112,35 +111,36 @@ libgnac_converter_init(LibgnacConverter *self)
priv->rename_pattern = NULL;
priv->folder_hierarchy = NULL;
priv->folder_type = 0;
+
+ /* Init gstreamer plugins helper */
+ gst_pb_utils_init();
}
static void
-libgnac_converter_dispose(GObject *gobject)
+libgnac_converter_dispose(GObject *object)
{
- LibgnacConverter *self = LIBGNAC_CONVERTER(gobject);
+ LibgnacConverter *self = LIBGNAC_CONVERTER(object);
- if (self->priv->file_table)
- {
+ if (self->priv->file_table) {
g_hash_table_unref(self->priv->file_table);
self->priv->file_table = NULL;
}
- if (self->priv->queue)
- {
+ if (self->priv->queue) {
g_queue_free(self->priv->queue);
self->priv->queue = NULL;
}
/* Chain up to the parent class */
- G_OBJECT_CLASS(libgnac_converter_parent_class)->dispose(gobject);
+ G_OBJECT_CLASS(libgnac_converter_parent_class)->dispose(object);
}
static void
-libgnac_converter_finalize(GObject *gobject)
+libgnac_converter_finalize(GObject *object)
{
- LibgnacConverter *self = LIBGNAC_CONVERTER(gobject);
+ LibgnacConverter *self = LIBGNAC_CONVERTER(object);
g_free(self->priv->profile->audio_desc);
g_free(self->priv->profile->muxer_desc);
@@ -152,7 +152,7 @@ libgnac_converter_finalize(GObject *gobject)
libgnac_output_finalize();
/* Chain up to the parent class */
- G_OBJECT_CLASS(libgnac_converter_parent_class)->finalize(gobject);
+ G_OBJECT_CLASS(libgnac_converter_parent_class)->finalize(object);
}
@@ -160,7 +160,7 @@ static void
libgnac_converter_get_property(GObject *object,
guint property_id,
GValue *value,
- GParamSpec *pspec)
+ GParamSpec *param)
{
LibgnacConverter *self = LIBGNAC_CONVERTER(object);
@@ -207,7 +207,7 @@ libgnac_converter_get_property(GObject *object,
break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, param);
break;
}
}
@@ -217,7 +217,7 @@ static void
libgnac_converter_set_property(GObject *object,
guint property_id,
const GValue *value,
- GParamSpec *pspec)
+ GParamSpec *param)
{
LibgnacConverter *self = LIBGNAC_CONVERTER(object);
@@ -225,19 +225,16 @@ libgnac_converter_set_property(GObject *object,
{
case PROP_AUDIO_PIPELINE_DESC:
g_free(self->priv->profile->audio_desc);
- self->priv->profile->audio_desc = NULL;
self->priv->profile->audio_desc = g_value_dup_string(value);
break;
case PROP_MUXER_PIPELINE_DESC:
g_free(self->priv->profile->muxer_desc);
- self->priv->profile->muxer_desc = NULL;
self->priv->profile->muxer_desc = g_value_dup_string(value);
break;
case PROP_VIDEO_PIPELINE_DESC:
g_free(self->priv->profile->video_desc);
- self->priv->profile->video_desc = NULL;
self->priv->profile->video_desc = g_value_dup_string(value);
break;
@@ -247,13 +244,11 @@ libgnac_converter_set_property(GObject *object,
case PROP_RENAME_PATTERN:
g_free(self->priv->rename_pattern);
- self->priv->rename_pattern = NULL;
self->priv->rename_pattern = g_value_dup_string(value);
break;
case PROP_FOLDER_HIERARCHY:
g_free(self->priv->folder_hierarchy);
- self->priv->folder_hierarchy = NULL;
self->priv->folder_hierarchy = g_value_dup_string(value);
break;
@@ -263,18 +258,16 @@ libgnac_converter_set_property(GObject *object,
case PROP_FOLDER_PATH:
g_free(self->priv->folder_path);
- self->priv->folder_path = NULL;
self->priv->folder_path = g_value_dup_string(value);
break;
case PROP_EXTENSION:
g_free(self->priv->extension);
- self->priv->extension = NULL;
self->priv->extension = g_value_dup_string(value);
break;
default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, param);
break;
}
}
@@ -296,223 +289,154 @@ libgnac_converter_allow_overwrite_accumulator(GSignalInvocationHint *ihint,
static void
-libgnac_converter_class_init(LibgnacConverterClass *klass)
+libgnac_converter_init_properties(GObjectClass *object_class)
{
- GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
- GParamSpec *pspec;
-
- g_type_class_add_private(klass, sizeof(LibgnacConverterPrivate));
-
- gobject_class->dispose = libgnac_converter_dispose;
- gobject_class->finalize = libgnac_converter_finalize;
-
- gobject_class->set_property = libgnac_converter_set_property;
- gobject_class->get_property = libgnac_converter_get_property;
+ GParamSpec *param;
/* Audio pipeline desc */
- pspec = g_param_spec_string("audio-description",
- "Audio pipeline description",
- "Audio pipeline description",
- NULL,
- G_PARAM_READWRITE);
-
- g_object_class_install_property(gobject_class,
- PROP_AUDIO_PIPELINE_DESC,
- pspec);
+ param = g_param_spec_string("audio-description",
+ "Audio pipeline description", "Audio pipeline description",
+ NULL, G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, PROP_AUDIO_PIPELINE_DESC, param);
/* Muxer pipeline desc */
- pspec = g_param_spec_string("muxer-description",
- "Muxer pipeline description",
- "Muxer pipeline description",
- NULL,
- G_PARAM_READWRITE);
-
- g_object_class_install_property(gobject_class,
- PROP_MUXER_PIPELINE_DESC,
- pspec);
+ param = g_param_spec_string("muxer-description",
+ "Muxer pipeline description", "Muxer pipeline description",
+ NULL, G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, PROP_MUXER_PIPELINE_DESC, param);
/* Video pipeline desc */
- pspec = g_param_spec_string("video-description",
- "Video pipeline description",
- "Video pipeline description",
- NULL,
- G_PARAM_READWRITE);
-
- g_object_class_install_property(gobject_class,
- PROP_VIDEO_PIPELINE_DESC,
- pspec);
+ param = g_param_spec_string("video-description",
+ "Video pipeline description", "Video pipeline description",
+ NULL, G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, PROP_VIDEO_PIPELINE_DESC, param);
/* Folder hierarchy */
- pspec = g_param_spec_string("folder-hierarchy",
- "Folder Hierarchy",
- "Folder hierarchy to create",
- NULL,
- G_PARAM_READWRITE);
-
- g_object_class_install_property(gobject_class,
- PROP_FOLDER_HIERARCHY,
- pspec);
+ param = g_param_spec_string("folder-hierarchy",
+ "Folder Hierarchy", "Folder hierarchy to create",
+ NULL, G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, PROP_FOLDER_HIERARCHY, param);
/* Folder path */
- pspec = g_param_spec_string("folder-path",
- "Folder Path",
- "Path to the output folder",
- NULL,
- G_PARAM_READWRITE);
-
- g_object_class_install_property(gobject_class,
- PROP_FOLDER_PATH,
- pspec);
+ param = g_param_spec_string("folder-path",
+ "Folder Path", "Path to the output folder",
+ NULL, G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, PROP_FOLDER_PATH, param);
/* Extension */
- pspec = g_param_spec_string("extension",
- "File Extension",
- "Output's file extension",
- NULL,
- G_PARAM_READWRITE);
-
- g_object_class_install_property(gobject_class,
- PROP_EXTENSION,
- pspec);
+ param = g_param_spec_string("extension",
+ "File Extension", "Output's file extension",
+ NULL, G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, PROP_EXTENSION, param);
/* Strip special characters */
- pspec = g_param_spec_boolean("strip-special",
- "Strip special",
- "Strip special characters",
- FALSE,
- G_PARAM_READWRITE);
-
- g_object_class_install_property(gobject_class,
- PROP_STRIP_SPECIAL,
- pspec);
+ param = g_param_spec_boolean("strip-special",
+ "Strip special", "Strip special characters",
+ FALSE, G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, PROP_STRIP_SPECIAL, param);
/* Rename pattern */
- pspec = g_param_spec_string("rename-pattern",
- "Rename Pattern",
- "Output's rename pattern",
- NULL,
- G_PARAM_READWRITE);
-
- g_object_class_install_property(gobject_class,
- PROP_RENAME_PATTERN,
- pspec);
+ param = g_param_spec_string("rename-pattern",
+ "Rename Pattern", "Output's rename pattern",
+ NULL, G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, PROP_RENAME_PATTERN, param);
/* Folder type */
- pspec = g_param_spec_int("folder-type",
- "Folder type",
- "Output's folder type",
- 0, FOLDER_TYPE_N, 0,
- G_PARAM_READWRITE);
-
- g_object_class_install_property(gobject_class,
- PROP_FOLDER_TYPE,
- pspec);
+ param = g_param_spec_int("folder-type",
+ "Folder type", "Output's folder type",
+ 0, FOLDER_TYPE_N, 0, G_PARAM_READWRITE);
+ g_object_class_install_property(object_class, PROP_FOLDER_TYPE, param);
/* Nb files */
- pspec = g_param_spec_int("nb-files",
- "File number",
- "Output's nb files",
- 0, G_MAXINT, 0,
- G_PARAM_READABLE);
-
- g_object_class_install_property(gobject_class,
- PROP_NB_FILES,
- pspec);
-
+ param = g_param_spec_int("nb-files",
+ "File number", "Output's nb files",
+ 0, G_MAXINT, 0, G_PARAM_READABLE);
+ g_object_class_install_property(object_class, PROP_NB_FILES, param);
+}
- /* Signals */
+static void
+libgnac_converter_init_signals(GObjectClass *object_class)
+{
signals[OVERWRITE] = g_signal_new("allow-overwrite",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, overwrite),
libgnac_converter_allow_overwrite_accumulator, NULL,
g_cclosure_user_marshal_BOOLEAN__POINTER,
G_TYPE_BOOLEAN, 1, G_TYPE_POINTER);
signals[PROGRESS] = g_signal_new("progress",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, progress),
NULL, NULL,
g_cclosure_user_marshal_VOID__UINT_FLOAT_UINT64,
G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_FLOAT, G_TYPE_UINT64);
signals[FILE_ADDED] = g_signal_new("file-added",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, file_added),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
signals[FILE_REMOVED] = g_signal_new("file-removed",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, file_removed),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
signals[FILE_STARTED] = g_signal_new("file-started",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, file_started),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
signals[FILE_COMPLETED] = g_signal_new("file-completed",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, file_completed),
NULL, NULL,
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE, 1, G_TYPE_STRING);
signals[FILES_CLEARED] = g_signal_new("files-cleared",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, files_cleared),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
signals[STARTED] = g_signal_new("started",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, started),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
signals[STOPPED] = g_signal_new("stopped",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, stopped),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
signals[COMPLETION] = g_signal_new("completion",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, completion),
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
signals[PLUGIN_INSTALL] = g_signal_new("plugin-install",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, plugin_install),
NULL, NULL,
g_cclosure_marshal_VOID__BOOLEAN,
G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
signals[ERROR] = g_signal_new("error",
- G_TYPE_FROM_CLASS(gobject_class),
- G_SIGNAL_RUN_LAST,
+ G_TYPE_FROM_CLASS(object_class), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(LibgnacConverterClass, error),
NULL, NULL,
g_cclosure_user_marshal_VOID__STRING_STRING_POINTER,
@@ -520,14 +444,29 @@ libgnac_converter_class_init(LibgnacConverterClass *klass)
}
-/* private methods */
+static void
+libgnac_converter_class_init(LibgnacConverterClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
+
+ g_type_class_add_private(klass, sizeof(LibgnacConverterPrivate));
+
+ object_class->dispose = libgnac_converter_dispose;
+ object_class->finalize = libgnac_converter_finalize;
+
+ object_class->set_property = libgnac_converter_set_property;
+ object_class->get_property = libgnac_converter_get_property;
+
+ libgnac_converter_init_properties(object_class);
+ libgnac_converter_init_signals(object_class);
+}
+
static gboolean
libgnac_converter_start_next(LibgnacConverter *self)
{
GError *err = NULL;
LibgnacConverterPrivate *priv;
- LibgnacMediaItem *item = NULL;
gchar *key = NULL;
gchar *uri = NULL;
@@ -537,16 +476,16 @@ libgnac_converter_start_next(LibgnacConverter *self)
do {
LibgnacTags *tags;
+ LibgnacMediaItem *item = NULL;
key = g_queue_pop_head(priv->queue_copy);
- if (key) item = g_hash_table_lookup(priv->file_table, key);
- else item = NULL;
+ if (key) {
+ item = g_hash_table_lookup(priv->file_table, key);
+ }
if (!item) return FALSE;
- if (err) {
- g_clear_error(&err);
- }
+ g_clear_error(&err);
priv->n_converted++;
@@ -602,8 +541,6 @@ libgnac_converter_restart_current(LibgnacConverter *self)
}
-/* public methods */
-
GObject *
libgnac_converter_new(LibgnacMetadata *mdata)
{
@@ -631,6 +568,8 @@ libgnac_converter_get_config(LibgnacConverter *self)
void
libgnac_converter_free_config(LibgnacOutputConfig *config)
{
+ if (!config) return;
+
g_free(config->extension);
g_free(config->folder_hierarchy);
g_free(config->folder_path);
@@ -644,14 +583,14 @@ libgnac_converter_add(LibgnacConverter *self,
GFile *file,
GError **error)
{
+ g_return_if_fail(LIBGNAC_IS_CONVERTER(self));
+ g_return_if_fail(error == NULL || *error == NULL);
+
LibgnacConverterPrivate *priv;
LibgnacMediaItem *item;
gchar *uri;
gchar *dup_uri;
- g_return_if_fail(LIBGNAC_IS_CONVERTER(self));
- g_return_if_fail(error == NULL || *error == NULL);
-
priv = LIBGNAC_CONVERTER_GET_PRIVATE(self);
uri = g_file_get_uri(file);
@@ -692,14 +631,14 @@ libgnac_converter_remove(LibgnacConverter *self,
GFile *file,
GError **error)
{
+ g_return_if_fail(LIBGNAC_IS_CONVERTER(self));
+ g_return_if_fail(error == NULL || *error == NULL);
+
LibgnacConverterPrivate *priv;
gchar *uri;
gpointer key_uri = NULL;
gpointer item = NULL;
- g_return_if_fail(LIBGNAC_IS_CONVERTER(self));
- g_return_if_fail(error == NULL || *error == NULL);
-
priv = LIBGNAC_CONVERTER_GET_PRIVATE(self);
uri = g_file_get_uri(file);
@@ -743,9 +682,10 @@ libgnac_converter_remove(LibgnacConverter *self,
void
libgnac_converter_clear(LibgnacConverter *self)
{
- LibgnacConverterPrivate *priv;
g_return_if_fail(LIBGNAC_IS_CONVERTER(self));
+ LibgnacConverterPrivate *priv;
+
priv = LIBGNAC_CONVERTER_GET_PRIVATE(self);
g_queue_clear(priv->queue);
@@ -761,18 +701,19 @@ void
libgnac_converter_start(LibgnacConverter *self,
GError **error)
{
- LibgnacConverterPrivate *priv;
- gchar *dbg_msg;
-
g_return_if_fail(LIBGNAC_IS_CONVERTER(self));
g_return_if_fail(error == NULL || *error == NULL);
+ LibgnacConverterPrivate *priv;
+ gchar *dbg_msg;
+
priv = LIBGNAC_CONVERTER_GET_PRIVATE(self);
if (priv->queue_copy) {
g_queue_free(priv->queue_copy);
priv->queue_copy = NULL;
}
+
priv->queue_copy = g_queue_copy(priv->queue);
g_queue_sort(priv->queue_copy, (GCompareDataFunc)g_strcmp0, NULL);
priv->n_converted = -1;
@@ -796,12 +737,12 @@ void
libgnac_converter_stop(LibgnacConverter *self,
GError **error)
{
- GError *err = NULL;
- LibgnacConverterPrivate *priv;
-
g_return_if_fail(LIBGNAC_IS_CONVERTER(self));
g_return_if_fail(error == NULL || *error == NULL);
+ GError *err = NULL;
+ LibgnacConverterPrivate *priv;
+
priv = LIBGNAC_CONVERTER_GET_PRIVATE(self);
libgnac_item_stop(priv->current, &err);
@@ -809,6 +750,7 @@ libgnac_converter_stop(LibgnacConverter *self,
g_propagate_error(error, err);
return;
}
+
priv->elapsed_duration = 0;
priv->n_converted = -1;
priv->current = NULL;
@@ -820,10 +762,10 @@ void
libgnac_converter_pause(LibgnacConverter *self,
GError **error)
{
- LibgnacConverterPrivate *priv;
g_return_if_fail(LIBGNAC_IS_CONVERTER(self));
g_return_if_fail(error == NULL || *error == NULL);
+ LibgnacConverterPrivate *priv;
priv = LIBGNAC_CONVERTER_GET_PRIVATE(self);
libgnac_gst_pause(priv->current, error);
}
@@ -833,10 +775,10 @@ void
libgnac_converter_resume(LibgnacConverter *self,
GError **error)
{
- LibgnacConverterPrivate *priv;
g_return_if_fail(LIBGNAC_IS_CONVERTER(self));
g_return_if_fail(error == NULL || *error == NULL);
+ LibgnacConverterPrivate *priv;
priv = LIBGNAC_CONVERTER_GET_PRIVATE(self);
libgnac_gst_run(priv->current, error);
}
@@ -856,7 +798,6 @@ libgnac_converter_emit_plugin_installed(LibgnacConverter *self)
}
-/* Callbacks */
void
libgnac_converter_eos_cb(GstBus *bus,
GstMessage *message,
@@ -910,16 +851,14 @@ libgnac_converter_error_sink(LibgnacMediaItem *item,
return TRUE;
}
- if (err) {
- if (!g_error_matches(err, G_IO_ERROR, G_IO_ERROR_EXISTS)) {
- libgnac_debug("Unable to create directory");
- g_signal_emit(item->parent, signals[ERROR], 0, uri,
- _("Unable to create destination directory"), NULL);
- g_clear_error(&err);
- return FALSE;
- }
+ if (!g_error_matches(err, G_IO_ERROR, G_IO_ERROR_EXISTS)) {
+ libgnac_debug("Unable to create directory");
+ g_signal_emit(item->parent, signals[ERROR], 0, uri,
+ _("Unable to create destination directory"), NULL);
g_clear_error(&err);
+ return FALSE;
}
+ g_clear_error(&err);
if (!libgnac_error_handle_dest_file_already_exists(item, message, uri)) {
g_signal_emit(item->parent, signals[ERROR], 0, uri,
@@ -930,6 +869,7 @@ libgnac_converter_error_sink(LibgnacMediaItem *item,
return TRUE;
}
+
static gboolean
libgnac_converter_error_src(LibgnacMediaItem *item,
GstMessage *message,
@@ -938,10 +878,10 @@ libgnac_converter_error_src(LibgnacMediaItem *item,
{
g_signal_emit(item->parent, signals[ERROR], 0, uri,
_("Unable to read source file"), error);
-
return FALSE;
}
+
static gboolean
libgnac_converter_error_other(LibgnacMediaItem *item,
GstMessage *message,
@@ -955,6 +895,7 @@ libgnac_converter_error_other(LibgnacMediaItem *item,
libgnac_warning("Unable to remove partial file %s: %s", uri, err->message);
g_clear_error(&err);
}
+
g_signal_emit(item->parent, signals[ERROR], 0, uri,
_("An error occured during conversion"), error);
@@ -1113,12 +1054,11 @@ libgnac_converter_percentage_cb(LibgnacConverter *converter)
gst_element_get_state(item->pipeline, &state, &pending_state, 0);
- if (state == GST_STATE_PAUSED)
- {
+ if (state == GST_STATE_PAUSED) {
return TRUE;
}
- else if (state != GST_STATE_PLAYING && pending_state != GST_STATE_PLAYING)
- {
+
+ if (state != GST_STATE_PLAYING && pending_state != GST_STATE_PLAYING) {
item->timeout_id = 0;
return FALSE;
}
diff --git a/libgnac/libgnac-gst-utils.c b/libgnac/libgnac-gst-utils.c
index 3cf8537..54ae6d2 100644
--- a/libgnac/libgnac-gst-utils.c
+++ b/libgnac/libgnac-gst-utils.c
@@ -45,21 +45,16 @@ libgnac_gstu_make_pipeline_element(GstElement *bin,
elem = gst_element_factory_make(element, name);
if (!elem) {
libgnac_debug("Failed to create %s element", element);
- g_set_error(error,
- LIBGNAC_ERROR,
- LIBGNAC_ERROR_MISSING_PLUGIN,
- "%s",
- element);
+ g_set_error(error, LIBGNAC_ERROR,
+ LIBGNAC_ERROR_MISSING_PLUGIN, "%s", element);
return NULL;
}
if (!gst_bin_add(GST_BIN(bin), elem)) {
libgnac_debug("Failed to add %s element to the bin", element);
- g_set_error(error,
- LIBGNAC_ERROR,
+ g_set_error(error, LIBGNAC_ERROR,
LIBGNAC_ERROR_PIPELINE_CREATION,
- _("Failed to add %s element"),
- element);
+ _("Failed to add %s element"), element);
return NULL;
}
@@ -71,11 +66,11 @@ GstElement *
libgnac_gstu_pipeline_new(GError **error)
{
GstElement *pipeline;
+
pipeline = gst_pipeline_new("pipeline");
if (!pipeline) {
libgnac_warning("Pipeline creation failed");
- g_set_error(error,
- LIBGNAC_ERROR,
+ g_set_error(error, LIBGNAC_ERROR,
LIBGNAC_ERROR_PIPELINE_CREATION,
_("Unable to create pipeline"));
return NULL;
@@ -93,11 +88,9 @@ libgnac_gstu_bin_add(GstElement *bin,
if (!gst_bin_add(GST_BIN(bin), elem)) {
gchar *name = gst_element_get_name(elem);
libgnac_debug("Failed to add %s element to the bin", name);
- g_set_error(error,
- LIBGNAC_ERROR,
+ g_set_error(error, LIBGNAC_ERROR,
LIBGNAC_ERROR_PIPELINE_CREATION,
- _("Failed to add %s element"),
- name);
+ _("Failed to add %s element"), name);
g_free(name);
return FALSE;
}
@@ -112,12 +105,12 @@ libgnac_gstu_element_link(GstElement *src,
GError **error)
{
gboolean ret;
+
ret = gst_element_link(src, dst);
if (!ret) {
libgnac_debug("Failed to link element %s to %s",
gst_element_get_name(src), gst_element_get_name(dst));
- g_set_error(error,
- LIBGNAC_ERROR,
+ g_set_error(error, LIBGNAC_ERROR,
LIBGNAC_ERROR_PIPELINE_CREATION,
_("Unable to link element %s to %s"),
gst_element_get_name(src), gst_element_get_name(dst));
@@ -133,12 +126,12 @@ libgnac_gstu_pad_link(GstPad *src,
GError **error)
{
GstPadLinkReturn ret;
+
ret = gst_pad_link(src, sink);
if (ret != GST_PAD_LINK_OK) {
libgnac_debug("Failed to link pad %s to %s",
gst_pad_get_name(src), gst_pad_get_name(sink));
- g_set_error(error,
- LIBGNAC_ERROR,
+ g_set_error(error, LIBGNAC_ERROR,
LIBGNAC_ERROR_PIPELINE_CREATION,
_("Unable to link pad %s to %s"),
gst_pad_get_name(src), gst_pad_get_name(sink));
diff --git a/libgnac/libgnac-gst.c b/libgnac/libgnac-gst.c
index 860a859..32baa45 100644
--- a/libgnac/libgnac-gst.c
+++ b/libgnac/libgnac-gst.c
@@ -84,16 +84,13 @@ libgnac_gst_parse_error_missing_elem(GstParseContext *ctx,
{
gchar **missing;
/* clean up the "old" error */
- g_error_free(*error);
- *error = NULL;
+ g_clear_error(error);
/* get the name of the missing elements */
missing = gst_parse_context_get_missing_elements(ctx);
libgnac_debug("Failed to parse description: %s", descr);
/* set the "new" error */
- g_set_error(error,
- LIBGNAC_ERROR,
- LIBGNAC_ERROR_MISSING_PLUGIN,
- "%s", missing[0]);
+ g_set_error(error, LIBGNAC_ERROR,
+ LIBGNAC_ERROR_MISSING_PLUGIN, "%s", missing[0]);
/* clean up */
g_strfreev(missing);
gst_parse_context_free(ctx);
@@ -362,6 +359,8 @@ libgnac_gst_build_pipeline(LibgnacMediaItem *item,
void
libgnac_gst_clean_pipeline(LibgnacMediaItem *item)
{
+ if (!item) return;
+
if (item->pipeline) {
if (!gst_element_set_state(item->pipeline, GST_STATE_NULL))
{
@@ -388,12 +387,12 @@ libgnac_gst_newpad_cb(GstElement *decodebin,
gboolean last,
gpointer data)
{
- GstCaps *caps;
- GstStructure *structure;
- const gchar *mimetype;
+ const gchar *mimetype;
+ GstCaps *caps;
+ GstStructure *structure;
LibgnacMediaItem *item;
- item = (LibgnacMediaItem*)data;
+ item = (LibgnacMediaItem *) data;
caps = gst_pad_get_caps(pad);
if (gst_caps_is_empty(caps) || gst_caps_is_any(caps)) {
diff --git a/libgnac/libgnac-metadata.c b/libgnac/libgnac-metadata.c
index 5e0a6c7..1286548 100644
--- a/libgnac/libgnac-metadata.c
+++ b/libgnac/libgnac-metadata.c
@@ -65,16 +65,15 @@ G_DEFINE_TYPE(LibgnacMetadata, libgnac_metadata, G_TYPE_OBJECT);
static void
libgnac_metadata_destroy_pipeline(LibgnacMetadata *md)
{
- if (md->priv->pipeline)
- {
- GstBus *bus;
- bus = gst_element_get_bus(md->priv->pipeline);
- gst_element_set_state(md->priv->pipeline, GST_STATE_NULL);
- gst_bus_set_sync_handler(bus, NULL, NULL);
- gst_object_unref(GST_OBJECT(bus));
- gst_object_unref(GST_OBJECT(md->priv->pipeline));
- md->priv->pipeline = NULL;
- }
+ if (!md->priv->pipeline) return;
+
+ GstBus *bus;
+ bus = gst_element_get_bus(md->priv->pipeline);
+ gst_element_set_state(md->priv->pipeline, GST_STATE_NULL);
+ gst_bus_set_sync_handler(bus, NULL, NULL);
+ gst_object_unref(GST_OBJECT(bus));
+ gst_object_unref(GST_OBJECT(md->priv->pipeline));
+ md->priv->pipeline = NULL;
}
@@ -83,8 +82,8 @@ libgnac_metadata_reset(LibgnacMetadata *md)
{
if (md->priv->uri) {
g_object_unref(md->priv->uri);
+ md->priv->uri = NULL;
}
- md->priv->uri = NULL;
md->priv->eos = FALSE;
md->priv->error = NULL;
libgnac_metadata_destroy_pipeline(md);
@@ -96,17 +95,16 @@ libgnac_metadata_reset(LibgnacMetadata *md)
static void
-libgnac_metadata_dispose(GObject *gobject)
+libgnac_metadata_dispose(GObject *object)
{
- LibgnacMetadata *self = LIBGNAC_METADATA(gobject);
+ LibgnacMetadata *self = LIBGNAC_METADATA(object);
- if (self->priv->tags_table)
- {
+ if (self->priv->tags_table) {
g_hash_table_destroy(self->priv->tags_table);
self->priv->tags_table = NULL;
}
- G_OBJECT_CLASS(libgnac_metadata_parent_class)->dispose(gobject);
+ G_OBJECT_CLASS(libgnac_metadata_parent_class)->dispose(object);
}
@@ -139,10 +137,8 @@ libgnac_metadata_init(LibgnacMetadata *md)
{
LibgnacMetadataPrivate *priv = md->priv = LIBGNAC_METADATA_GET_PRIVATE(md);
- priv->tags_table = g_hash_table_new_full(g_str_hash,
- g_str_equal,
- g_free,
- (GDestroyNotify)libgnac_metadata_tags_free);
+ priv->tags_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
+ (GDestroyNotify)libgnac_metadata_tags_free);
}
@@ -156,10 +152,10 @@ libgnac_metadata_new(void)
static void
libgnac_metadata_free_gvalue(GValue *value)
{
- if (value) {
- g_value_unset(value);
- g_free(value);
- }
+ if (!value) return;
+
+ g_value_unset(value);
+ g_free(value);
}
@@ -180,8 +176,7 @@ libgnac_metadata_process_tag_image(const GstTagList *taglist,
LibgnacMetadata *md)
{
gint i;
- for (i = 0; i < count; i++)
- {
+ for (i = 0; i < count; i++) {
const GValue *val;
gint image_type;
GstBuffer *buffer;
@@ -192,8 +187,7 @@ libgnac_metadata_process_tag_image(const GstTagList *taglist,
g_return_if_fail(buffer);
/* GST_TAG_PREVIEW_IMAGE does not have an "image-type" field */
- if (g_str_equal(tag_name, GST_TAG_IMAGE))
- {
+ if (g_str_equal(tag_name, GST_TAG_IMAGE)) {
GstCaps *caps;
GstStructure *structure;
@@ -204,7 +198,7 @@ libgnac_metadata_process_tag_image(const GstTagList *taglist,
g_return_if_fail(structure);
gst_structure_get_enum(structure, "image-type",
- GST_TYPE_TAG_IMAGE_TYPE, &image_type);
+ GST_TYPE_TAG_IMAGE_TYPE, &image_type);
}
/* we are only interested in the front cover (but if there is only
@@ -223,23 +217,21 @@ libgnac_metadata_process_tag_image(const GstTagList *taglist,
loader = gdk_pixbuf_loader_new();
g_signal_connect(loader, "size-prepared",
- G_CALLBACK(libgnac_metadata_size_prepared_cb), NULL);
+ G_CALLBACK(libgnac_metadata_size_prepared_cb), NULL);
data = GST_BUFFER_DATA(buffer);
size = GST_BUFFER_SIZE(buffer);
- if (!gdk_pixbuf_loader_write(loader, data, size, &error))
- {
+ if (!gdk_pixbuf_loader_write(loader, data, size, &error)) {
libgnac_debug("Error writing data to pixbuf: %s", error->message);
gdk_pixbuf_loader_close(loader, NULL);
- g_error_free(error);
+ g_clear_error(&error);
return;
}
- if (!gdk_pixbuf_loader_close(loader, &error))
- {
+ if (!gdk_pixbuf_loader_close(loader, &error)) {
libgnac_debug("Error closing pixbuf loader: %s", error->message);
- g_error_free(error);
+ g_clear_error(&error);
return;
}
@@ -265,23 +257,22 @@ libgnac_metadata_process_tag_value(GstStructure *structure,
LibgnacMetadata *md)
{
const GValue *val;
+
val = gst_structure_get_value(structure, tag_name);
- if (val)
- {
- if (GST_VALUE_HOLDS_FRACTION(val))
- {
- GValue *newval;
- gint numerator;
- gint denominator;
+ if (!val) return;
- numerator = gst_value_get_fraction_numerator(val);
- denominator = gst_value_get_fraction_denominator(val);
+ if (GST_VALUE_HOLDS_FRACTION(val)) {
+ GValue *newval;
+ gint numerator;
+ gint denominator;
- newval = g_new0(GValue, 1);
- g_value_init(newval, G_TYPE_FLOAT);
- g_value_set_float(newval, (gfloat)numerator/denominator);
- g_hash_table_insert(md->priv->metadata, tag_name, newval);
- }
+ numerator = gst_value_get_fraction_numerator(val);
+ denominator = gst_value_get_fraction_denominator(val);
+
+ newval = g_new0(GValue, 1);
+ g_value_init(newval, G_TYPE_FLOAT);
+ g_value_set_float(newval, (gfloat)numerator/denominator);
+ g_hash_table_insert(md->priv->metadata, tag_name, newval);
}
}
@@ -292,8 +283,7 @@ libgnac_metadata_process_tag_int(GstStructure *structure,
LibgnacMetadata *md)
{
gint int_val;
- if (gst_structure_get_int(structure, tag_name, &int_val))
- {
+ if (gst_structure_get_int(structure, tag_name, &int_val)) {
GValue *val;
val = g_new0(GValue, 1);
g_value_init(val, G_TYPE_INT);
@@ -327,14 +317,12 @@ libgnac_metadata_process_tag(const GstTagList *taglist,
type = gst_tag_get_type(tag_name);
newval = g_new0(GValue, 1);
g_value_init(newval, type);
- if (!g_value_transform(val, newval))
- {
+ if (!g_value_transform(val, newval)) {
libgnac_metadata_free_gvalue(newval);
return;
}
- if (type == G_TYPE_STRING)
- {
+ if (type == G_TYPE_STRING) {
gchar *str;
str = g_value_dup_string(newval);
if (!g_utf8_validate(str, -1, NULL))
@@ -411,11 +399,10 @@ libgnac_metadata_on_message_error(GstBus *bus,
GstMessage *message,
LibgnacMetadata *md)
{
- GError *error;
- gchar *debug;
+ GError *error = NULL;
+ gchar *debug;
gst_message_parse_error(message, &error, &debug);
libgnac_debug("Error on metadata reading: %s", error->message);
-
md->priv->eos = TRUE;
}
@@ -487,8 +474,7 @@ libgnac_metadata_new_decoded_pad_cb(GstElement *element,
const gchar *mimetype;
sink_pad = gst_element_get_pad(md->priv->sink, "sink");
- if (GST_PAD_IS_LINKED(sink_pad))
- {
+ if (GST_PAD_IS_LINKED(sink_pad)) {
g_object_unref(sink_pad);
return;
}
@@ -497,8 +483,7 @@ libgnac_metadata_new_decoded_pad_cb(GstElement *element,
libgnac_gstu_pad_link(pad, sink_pad, NULL) == GST_PAD_LINK_OK);
caps = gst_pad_get_caps(pad);
- if (gst_caps_is_empty(caps) || gst_caps_is_any(caps))
- {
+ if (gst_caps_is_empty(caps) || gst_caps_is_any(caps)) {
gst_caps_unref(caps);
g_object_unref(sink_pad);
return;
@@ -630,8 +615,7 @@ libgnac_metadata_extract(LibgnacMetadata *md,
string_uri = g_file_get_uri(uri);
tags = g_hash_table_lookup(md->priv->tags_table, string_uri);
- if (!tags)
- {
+ if (!tags) {
GstElement *pipeline = NULL;
GstElement *source = NULL;
GstElement *decodebin = NULL;
@@ -772,8 +756,7 @@ libgnac_metadata_tags_exist(LibgnacTags *tags, ...)
va_start(names, tags);
- while ((name = va_arg(names, gchar*)) && !missing)
- {
+ while ((name = va_arg(names, gchar*)) && !missing) {
if (!g_hash_table_lookup(tags, name)) missing = TRUE;
}
@@ -786,8 +769,7 @@ libgnac_metadata_tags_exist(LibgnacTags *tags, ...)
LibgnacTags *
libgnac_metadata_get_dummy_tags(void)
{
- if (!dummy_tags)
- {
+ if (!dummy_tags) {
dummy_tags = g_hash_table_new_full(g_str_hash,
g_str_equal,
g_free,
diff --git a/src/gnac-main.c b/src/gnac-main.c
index cbb8398..159072a 100644
--- a/src/gnac-main.c
+++ b/src/gnac-main.c
@@ -307,13 +307,11 @@ gnac_add_file(GFile *file)
mime_type = g_file_info_get_content_type(info);
- if (mime_type) {
- if (gnac_playlist_is_mime_playlist(mime_type)) {
- gnac_playlist_parse(file, mime_type);
- } else if (gnac_utils_file_format_is_supported(mime_type)) {
- libgnac_info("Add file %s", uri);
- libgnac_converter_add(converter, file, &error);
- }
+ if (gnac_playlist_is_mime_playlist(mime_type)) {
+ gnac_playlist_parse(file, mime_type);
+ } else if (gnac_utils_file_format_is_supported(mime_type)) {
+ libgnac_info("Add file %s", uri);
+ libgnac_converter_add(converter, file, &error);
}
g_free(uri);
@@ -350,16 +348,20 @@ gboolean
gnac_settings_set(const gchar *key,
GVariant *value)
{
- gboolean ret;
- gchar *val_str;
+ gboolean ret;
+ gchar *val_str;
+
val_str = g_variant_print(value, FALSE);
ret = g_settings_set_value(settings, key, value);
+
if (!ret) {
libgnac_debug("Failed to set key \"%s\" to \"%s\"", key, val_str);
} else {
libgnac_debug("Key \"%s\" set to \"%s\"", key, val_str);
}
+
g_free(val_str);
+
return ret;
}
@@ -710,10 +712,7 @@ gnac_on_ui_pause_cb(GtkWidget *widget,
libgnac_converter_resume(converter, &error);
}
- if (error)
- {
- g_clear_error(&error);
- }
+ g_clear_error(&error);
}
void
@@ -773,6 +772,39 @@ gnac_on_ui_convert_cb(GtkWidget *widget,
}
+static void
+gnac_init_libgnac(void)
+{
+ metadata = LIBGNAC_METADATA(libgnac_metadata_new());
+ converter = LIBGNAC_CONVERTER(libgnac_converter_new(metadata));
+
+ g_signal_connect(converter, "allow-overwrite",
+ G_CALLBACK(gnac_on_converter_overwrite_cb), converter);
+ g_signal_connect(converter, "completion",
+ G_CALLBACK(gnac_on_converter_completion_cb), converter);
+ g_signal_connect(converter, "error",
+ G_CALLBACK(gnac_on_converter_error_cb), converter);
+ g_signal_connect(converter, "file-added",
+ G_CALLBACK(gnac_on_converter_file_added_cb), converter);
+ g_signal_connect(converter, "files-cleared",
+ G_CALLBACK(gnac_on_converter_files_cleared_cb), converter);
+ g_signal_connect(converter, "file-completed",
+ G_CALLBACK(gnac_on_converter_file_completed_cb), converter);
+ g_signal_connect(converter, "file-removed",
+ G_CALLBACK(gnac_on_converter_file_removed_cb), converter);
+ g_signal_connect(converter, "file-started",
+ G_CALLBACK(gnac_on_converter_file_started_cb), converter);
+ g_signal_connect(converter, "plugin-install",
+ G_CALLBACK(gnac_on_converter_plugin_install_cb), converter);
+ g_signal_connect(converter, "progress",
+ G_CALLBACK(gnac_on_converter_progress_cb), converter);
+ g_signal_connect(converter, "started",
+ G_CALLBACK(gnac_on_converter_started_cb), converter);
+ g_signal_connect(converter, "stopped",
+ G_CALLBACK(gnac_on_converter_stopped_cb), converter);
+}
+
+
gint
main(gint argc,
gchar **argv)
@@ -796,39 +828,8 @@ main(gint argc,
gdk_threads_init();
- /* Init gstreamer plugins helper */
- gst_pb_utils_init();
-
gnac_ui_init();
-
- /* Initialise converter and connect signals */
- metadata = LIBGNAC_METADATA(libgnac_metadata_new());
- converter = LIBGNAC_CONVERTER(libgnac_converter_new(metadata));
-
- g_signal_connect(converter, "allow-overwrite",
- G_CALLBACK(gnac_on_converter_overwrite_cb), converter);
- g_signal_connect(converter, "progress",
- G_CALLBACK(gnac_on_converter_progress_cb), converter);
- g_signal_connect(converter, "error",
- G_CALLBACK(gnac_on_converter_error_cb), converter);
- g_signal_connect(converter, "completion",
- G_CALLBACK(gnac_on_converter_completion_cb), converter);
- g_signal_connect(converter, "file-added",
- G_CALLBACK(gnac_on_converter_file_added_cb), converter);
- g_signal_connect(converter, "file-removed",
- G_CALLBACK(gnac_on_converter_file_removed_cb), converter);
- g_signal_connect(converter, "file-started",
- G_CALLBACK(gnac_on_converter_file_started_cb), converter);
- g_signal_connect(converter, "file-completed",
- G_CALLBACK(gnac_on_converter_file_completed_cb), converter);
- g_signal_connect(converter, "files-cleared",
- G_CALLBACK(gnac_on_converter_files_cleared_cb), converter);
- g_signal_connect(converter, "started",
- G_CALLBACK(gnac_on_converter_started_cb), converter);
- g_signal_connect(converter, "stopped",
- G_CALLBACK(gnac_on_converter_stopped_cb), converter);
- g_signal_connect(converter, "plugin-install",
- G_CALLBACK(gnac_on_converter_plugin_install_cb), converter);
+ gnac_init_libgnac();
gnac_ui_show();
diff --git a/src/gnac-playlist.c b/src/gnac-playlist.c
index 31d389a..4c0dec4 100755
--- a/src/gnac-playlist.c
+++ b/src/gnac-playlist.c
@@ -92,12 +92,15 @@ gnac_playlist_read_file(GFile *file)
gboolean
gnac_playlist_is_mime_playlist(const gchar *mime)
{
+ if (!mime) return FALSE;
+
guint i;
for (i = 0; mime_playlist[i].mime; i++) {
if (g_ascii_strcasecmp(mime, mime_playlist[i].mime) == 0) {
return TRUE;
}
}
+
return FALSE;
}
diff --git a/src/gnac-utils.c b/src/gnac-utils.c
index 13f16ef..d2faf49 100644
--- a/src/gnac-utils.c
+++ b/src/gnac-utils.c
@@ -226,6 +226,8 @@ gnac_utils_get_filenames_from_cmd_line(gchar **argv)
gboolean
gnac_utils_file_format_is_supported(const gchar *mime_type)
{
+ if (!mime_type) return FALSE;
+
return g_str_has_prefix(mime_type, "audio/") ||
g_str_has_prefix(mime_type, "video/") ||
g_str_equal(mime_type, "application/ogg") ||
diff --git a/src/profiles/gnac-profiles-manager.c b/src/profiles/gnac-profiles-manager.c
index a013792..c784762 100644
--- a/src/profiles/gnac-profiles-manager.c
+++ b/src/profiles/gnac-profiles-manager.c
@@ -1089,19 +1089,20 @@ gnac_profiles_mgr_on_drag_data_get(GtkWidget *widget,
static gchar **
gnac_profiles_mgr_get_selected_uris(void)
{
- GList *selected;
+ GList *selected;
selected = gnac_profiles_mgr_get_selected_rows();
if (!selected) return NULL;
- gchar **uris;
- GList *temp;
- GtkTreeRowReference *reference;
- guint i;
+ gchar **uris;
+ GtkTreeRowReference *reference;
reference = (GtkTreeRowReference*) selected->data;
uris = g_malloc((g_list_length(selected)+1) * sizeof(gchar*));
+ guint i;
+ GList *temp;
+
for (i = 0, temp = selected; temp; temp = temp->next, ++i) {
GFile *file;
AudioProfileGeneric *profile;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]