[easytag/wip/gerror: 1/3] Use GError in FLAC tagging code
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [easytag/wip/gerror: 1/3] Use GError in FLAC tagging code
- Date: Tue, 23 Sep 2014 23:18:24 +0000 (UTC)
commit d48600727447da24e02f88dba11a45ac5c4be7fd
Author: David King <amigadave amigadave com>
Date: Tue Sep 23 22:28:36 2014 +0100
Use GError in FLAC tagging code
Avoid several uses of Log_Print().
src/et_core.c | 8 +++++-
src/tags/flac_tag.c | 39 +++++++++++++++++++++++--------------
src/tags/flac_tag.h | 52 +++++++++++++++++++++-----------------------------
3 files changed, 52 insertions(+), 47 deletions(-)
---
diff --git a/src/et_core.c b/src/et_core.c
index 0381bd7..6b1c29e 100644
--- a/src/et_core.c
+++ b/src/et_core.c
@@ -546,7 +546,11 @@ GList *ET_Add_File_To_File_List (gchar *filename)
#endif
#ifdef ENABLE_FLAC
case FLAC_TAG:
- Flac_Tag_Read_File_Tag(filename,FileTag);
+ if (!flac_tag_read_file_tag (filename, FileTag, &error))
+ {
+ Log_Print (LOG_ERROR, "%s", error->message);
+ g_clear_error (&error);
+ }
break;
#endif
case APE_TAG:
@@ -3427,7 +3431,7 @@ ET_Save_File_Tag_To_HD (ET_File *ETFile, GError **error)
#endif
#ifdef ENABLE_FLAC
case FLAC_TAG:
- state = Flac_Tag_Write_File_Tag(ETFile);
+ state = flac_tag_write_file_tag (ETFile, error);
break;
#endif
case APE_TAG:
diff --git a/src/tags/flac_tag.c b/src/tags/flac_tag.c
index ec0ccb2..8976d91 100644
--- a/src/tags/flac_tag.c
+++ b/src/tags/flac_tag.c
@@ -99,9 +99,12 @@ static gboolean Flac_Set_Tag (FLAC__StreamMetadata *vc_block, const gchar *tag_n
* - if field is found but contains no info (strlen(str)==0), we don't read it
*/
gboolean
-Flac_Tag_Read_File_Tag (const gchar *filename, File_Tag *FileTag)
+flac_tag_read_file_tag (const gchar *filename,
+ File_Tag *FileTag,
+ GError **error)
{
FLAC__Metadata_SimpleIterator *iter;
+ const gchar *flac_error_msg;
gchar *string = NULL;
gchar *filename_utf8 = filename_to_display(filename);
guint i;
@@ -109,8 +112,7 @@ Flac_Tag_Read_File_Tag (const gchar *filename, File_Tag *FileTag)
//gint j = 1;
g_return_val_if_fail (filename != NULL && FileTag != NULL, FALSE);
-
- flac_error_msg = NULL;
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
// Initialize the iterator for the blocks
iter = FLAC__metadata_simple_iterator_new();
@@ -129,9 +131,10 @@ Flac_Tag_Read_File_Tag (const gchar *filename, File_Tag *FileTag)
FLAC__metadata_simple_iterator_delete(iter);
}
- Log_Print (LOG_ERROR, _("Error while opening file ‘%s’ as FLAC: %s"),
- filename_utf8, flac_error_msg);
- g_free(filename_utf8);
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
+ _("Error while opening file ‘%s’ as FLAC: %s"),
+ filename_utf8, flac_error_msg);
+ g_free (filename_utf8);
return FALSE;
}
@@ -817,22 +820,24 @@ static gboolean Flac_Set_Tag (FLAC__StreamMetadata *vc_block, const gchar *tag_n
/*
* Write Flac tag, using the level 2 flac interface
*/
-gboolean Flac_Tag_Write_File_Tag (ET_File *ETFile)
+gboolean
+flac_tag_write_file_tag (ET_File *ETFile, GError **error)
{
File_Tag *FileTag;
gchar *filename_utf8, *filename;
gchar *basename_utf8;
+ const gchar *flac_error_msg;
FLAC__Metadata_Chain *chain;
FLAC__Metadata_Iterator *iter;
FLAC__StreamMetadata_VorbisComment_Entry vce_field_vendor_string; // To save vendor string
gboolean vce_field_vendor_string_found = FALSE;
g_return_val_if_fail (ETFile != NULL && ETFile->FileTag != NULL, FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
FileTag = (File_Tag *)ETFile->FileTag->data;
filename = ((File_Name *)ETFile->FileNameCur->data)->value;
filename_utf8 = ((File_Name *)ETFile->FileNameCur->data)->value_utf8;
- flac_error_msg = NULL;
/* libFLAC is able to detect (and skip) ID3v2 tags by itself */
@@ -853,8 +858,9 @@ gboolean Flac_Tag_Write_File_Tag (ET_File *ETFile)
FLAC__metadata_chain_delete(chain);
}
- Log_Print (LOG_ERROR, _("Error while opening file ‘%s’ as FLAC: %s"),
- filename_utf8, flac_error_msg);
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
+ _("Error while opening file ‘%s’ as FLAC: %s"),
+ filename_utf8, flac_error_msg);
return FALSE;
}
@@ -864,8 +870,9 @@ gboolean Flac_Tag_Write_File_Tag (ET_File *ETFile)
{
flac_error_msg =
FLAC__Metadata_ChainStatusString[FLAC__METADATA_CHAIN_STATUS_MEMORY_ALLOCATION_ERROR];
- Log_Print (LOG_ERROR, _("Error while opening file ‘%s’ as FLAC: %s"),
- filename_utf8, flac_error_msg);
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
+ _("Error while opening file ‘%s’ as FLAC: %s"),
+ filename_utf8, flac_error_msg);
return FALSE;
}
@@ -1120,10 +1127,12 @@ gboolean Flac_Tag_Write_File_Tag (ET_File *ETFile)
FLAC__metadata_chain_delete(chain);
- Log_Print (LOG_ERROR, _("Failed to write comments to file ‘%s’: %s"),
- filename_utf8, flac_error_msg);
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
+ _("Failed to write comments to file ‘%s’: %s"),
+ filename_utf8, flac_error_msg);
return FALSE;
- }else
+ }
+ else
{
basename_utf8 = g_path_get_basename(filename_utf8);
Log_Print (LOG_OK, _("Wrote tag of ‘%s’"), basename_utf8);
diff --git a/src/tags/flac_tag.h b/src/tags/flac_tag.h
index 9762aea..2ac8e57 100644
--- a/src/tags/flac_tag.h
+++ b/src/tags/flac_tag.h
@@ -1,43 +1,35 @@
-/* flac_tag.h - 2003/12/27 */
-/*
- * EasyTAG - Tag editor for MP3 and Ogg Vorbis files
- * Copyright (C) 2001-2003 Jerome Couderc <easytag gmail com>
- * Copyright (C) 2003 Pavel Minayev <thalion front ru>
+/* EasyTAG - Tag editor for audo files
+ * Copyright (C) 2013 David King <amigadave amigadave com>
+ * Copyright (C) 2001-2003 Jerome Couderc <easytag gmail com>
+ * Copyright (C) 2003 Pavel Minayev <thalion front ru>
*
- * 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 of the License, or
- * (at your option) any later version.
+ * 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 of the License, 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.
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-#ifndef __FLAC_TAG_H__
-#define __FLAC_TAG_H__
-
+#ifndef ET_FLAC_TAG_H_
+#define ET_FLAC_TAG_H_
#include <glib.h>
#include "et_core.h"
-/***************
- * Declaration *
- ***************/
-const gchar *flac_error_msg;
-
+G_BEGIN_DECLS
-/**************
- * Prototypes *
- **************/
-gboolean Flac_Tag_Read_File_Tag (const gchar *filename, File_Tag *FileTag);
-gboolean Flac_Tag_Write_File_Tag (ET_File *ETFile);
+gboolean flac_tag_read_file_tag (const gchar *filename, File_Tag *FileTag, GError **error);
+gboolean flac_tag_write_file_tag (ET_File *ETFile, GError **error);
+G_END_DECLS
-#endif /* __FLAC_TAG_H__ */
+#endif /* ET_FLAC_TAG_H_ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]