add new comparison method rgb_difference that resembles arithmetical difference per...
[imager.git] / raw.c
diff --git a/raw.c b/raw.c
index 9159e5a..bae403d 100644 (file)
--- a/raw.c
+++ b/raw.c
@@ -70,7 +70,6 @@ i_readraw_wiol(io_glue *ig, i_img_dim x, i_img_dim y, int datachannels, int stor
 
   i_clear_error();
   
-  io_glue_commit_types(ig);
   mm_log((1, "i_readraw(ig %p,x %" i_DF ",y %" i_DF ",datachannels %d,storechannels %d,intrl %d)\n",
          ig, i_DFc(x), i_DFc(y), datachannels, storechannels, intrl));
 
@@ -102,7 +101,7 @@ i_readraw_wiol(io_glue *ig, i_img_dim x, i_img_dim y, int datachannels, int stor
   
   k=0;
   while( k<im->ysize ) {
-    rc = ig->readcb(ig, inbuffer, inbuflen);
+    rc = i_io_read(ig, inbuffer, inbuflen);
     if (rc != inbuflen) { 
       if (rc < 0)
        i_push_error(0, "error reading file");
@@ -136,13 +135,12 @@ undef_int
 i_writeraw_wiol(i_img* im, io_glue *ig) {
   ssize_t rc;
 
-  io_glue_commit_types(ig);
   i_clear_error();
   mm_log((1,"writeraw(im %p,ig %p)\n", im, ig));
   
   if (im == NULL) { mm_log((1,"Image is empty\n")); return(0); }
   if (!im->virtual) {
-    rc = ig->writecb(ig,im->idata,im->bytes);
+    rc = i_io_write(ig,im->idata,im->bytes);
     if (rc != im->bytes) { 
       i_push_error(errno, "Could not write to file");
       mm_log((1,"i_writeraw: Couldn't write to file\n")); 
@@ -159,7 +157,7 @@ i_writeraw_wiol(i_img* im, io_glue *ig) {
       rc = line_size;
       while (rc == line_size && y < im->ysize) {
        i_gsamp(im, 0, im->xsize, y, data, NULL, im->channels);
-       rc = ig->writecb(ig, data, line_size);
+       rc = i_io_write(ig, data, line_size);
        ++y;
       }
       if (rc != line_size) {
@@ -178,7 +176,7 @@ i_writeraw_wiol(i_img* im, io_glue *ig) {
       rc = line_size;
       while (rc == line_size && y < im->ysize) {
        i_gpal(im, 0, im->xsize, y, data);
-       rc = ig->writecb(ig, data, line_size);
+       rc = i_io_write(ig, data, line_size);
        ++y;
       }
       myfree(data);
@@ -189,7 +187,8 @@ i_writeraw_wiol(i_img* im, io_glue *ig) {
     }
   }
 
-  ig->closecb(ig);
+  if (i_io_close(ig))
+    return 0;
 
   return(1);
 }