app: port more palette importers to GIO

This commit is contained in:
Michael Natterer 2014-07-03 16:42:37 +02:00
parent 3213fe04ef
commit 5d4d3a0e3c
3 changed files with 25 additions and 19 deletions

View File

@ -539,11 +539,11 @@ gimp_palette_import_from_file (GimpContext *context,
break;
case GIMP_PALETTE_FILE_FORMAT_ACT:
palette_list = gimp_palette_load_act (context, file, f, error);
palette_list = gimp_palette_load_act (context, file, input, error);
break;
case GIMP_PALETTE_FILE_FORMAT_RIFF_PAL:
palette_list = gimp_palette_load_riff (context, file, f, error);
palette_list = gimp_palette_load_riff (context, file, input, error);
break;
case GIMP_PALETTE_FILE_FORMAT_PSP_PAL:

View File

@ -288,24 +288,27 @@ gimp_palette_load_gpl (GimpContext *context,
}
GList *
gimp_palette_load_act (GimpContext *context,
GFile *file,
FILE *f,
GError **error)
gimp_palette_load_act (GimpContext *context,
GFile *file,
GInputStream *input,
GError **error)
{
GimpPalette *palette;
gchar *palette_name;
gint fd = fileno (f);
guchar color_bytes[4];
guchar color_bytes[3];
gsize bytes_read;
g_return_val_if_fail (G_IS_FILE (file), NULL);
g_return_val_if_fail (G_IS_INPUT_STREAM (file), NULL);
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
palette_name = g_path_get_basename (gimp_file_get_utf8_name (file));
palette = GIMP_PALETTE (gimp_palette_new (context, palette_name));
g_free (palette_name);
while (read (fd, color_bytes, 3) == 3)
while (g_input_stream_read_all (input, color_bytes, sizeof (color_bytes),
&bytes_read, NULL, NULL) &&
bytes_read == sizeof (color_bytes))
{
GimpRGB color;
@ -321,27 +324,30 @@ gimp_palette_load_act (GimpContext *context,
}
GList *
gimp_palette_load_riff (GimpContext *context,
GFile *file,
FILE *f,
GError **error)
gimp_palette_load_riff (GimpContext *context,
GFile *file,
GInputStream *input,
GError **error)
{
GimpPalette *palette;
gchar *palette_name;
gint fd = fileno (f);
guchar color_bytes[4];
gsize bytes_read;
g_return_val_if_fail (G_IS_FILE (file), NULL);
g_return_val_if_fail (G_IS_INPUT_STREAM (file), NULL);
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
palette_name = g_path_get_basename (gimp_file_get_utf8_name (file));
palette = GIMP_PALETTE (gimp_palette_new (context, palette_name));
g_free (palette_name);
lseek (fd, 28, SEEK_SET);
if (! g_seekable_seek (G_SEEKABLE (input), 28, G_SEEK_SET, NULL, error))
return NULL;
while (read (fd,
color_bytes, sizeof (color_bytes)) == sizeof (color_bytes))
while (g_input_stream_read_all (input, color_bytes, sizeof (color_bytes),
&bytes_read, NULL, NULL) &&
bytes_read == sizeof (color_bytes))
{
GimpRGB color;

View File

@ -43,11 +43,11 @@ GList * gimp_palette_load_gpl (GimpContext *context,
GError **error);
GList * gimp_palette_load_act (GimpContext *context,
GFile *file,
FILE *f,
GInputStream *input,
GError **error);
GList * gimp_palette_load_riff (GimpContext *context,
GFile *file,
FILE *f,
GInputStream *input,
GError **error);
GList * gimp_palette_load_psp (GimpContext *context,
GFile *file,