Index: /trunk/psModules/src/pslib/psMetadataItemParse.c
===================================================================
--- /trunk/psModules/src/pslib/psMetadataItemParse.c	(revision 6908)
+++ /trunk/psModules/src/pslib/psMetadataItemParse.c	(revision 6909)
@@ -41,4 +41,99 @@
                 "--- treating as NaN.\n", item->name, item->comment, item->type);
         return NAN;
+    }
+}
+
+psU8 psMetadataItemParseS8(psMetadataItem *item
+                          )
+{
+    switch (item->type) {
+        PS_METADATA_ITEM_PARSE_NUMBER (F32, U8);
+        PS_METADATA_ITEM_PARSE_NUMBER (F64, U8);
+        PS_METADATA_ITEM_PARSE_NUMBER (S8,  U8);
+        PS_METADATA_ITEM_PARSE_NUMBER (S16, U8);
+        PS_METADATA_ITEM_PARSE_NUMBER (S32, U8);
+        PS_METADATA_ITEM_PARSE_NUMBER (U8,  U8);
+        PS_METADATA_ITEM_PARSE_NUMBER (U16, U8);
+        PS_METADATA_ITEM_PARSE_NUMBER (U32, U8);
+    default:
+        psError(PS_ERR_IO, true, "Item %s (%s) is not of integer type (%x) --- treating as zero.\n",
+                item->name, item->comment, item->type);
+        return 0;
+    }
+}
+
+psU16 psMetadataItemParseS16(psMetadataItem *item
+                            )
+{
+    switch (item->type) {
+        PS_METADATA_ITEM_PARSE_NUMBER (F32, U16);
+        PS_METADATA_ITEM_PARSE_NUMBER (F64, U16);
+        PS_METADATA_ITEM_PARSE_NUMBER (S8,  U16);
+        PS_METADATA_ITEM_PARSE_NUMBER (S16, U16);
+        PS_METADATA_ITEM_PARSE_NUMBER (S32, U16);
+        PS_METADATA_ITEM_PARSE_NUMBER (U8,  U16);
+        PS_METADATA_ITEM_PARSE_NUMBER (U16, U16);
+        PS_METADATA_ITEM_PARSE_NUMBER (U32, U16);
+    default:
+        psError(PS_ERR_IO, true, "Item %s (%s) is not of integer type (%x) --- treating as zero.\n",
+                item->name, item->comment, item->type);
+        return 0;
+    }
+}
+
+psU32 psMetadataItemParseS16(psMetadataItem *item
+                            )
+{
+    switch (item->type) {
+        PS_METADATA_ITEM_PARSE_NUMBER (F32, U32);
+        PS_METADATA_ITEM_PARSE_NUMBER (F64, U32);
+        PS_METADATA_ITEM_PARSE_NUMBER (S8,  U32);
+        PS_METADATA_ITEM_PARSE_NUMBER (S16, U32);
+        PS_METADATA_ITEM_PARSE_NUMBER (S32, U32);
+        PS_METADATA_ITEM_PARSE_NUMBER (U8,  U32);
+        PS_METADATA_ITEM_PARSE_NUMBER (U16, U32);
+        PS_METADATA_ITEM_PARSE_NUMBER (U32, U32);
+    default:
+        psError(PS_ERR_IO, true, "Item %s (%s) is not of integer type (%x) --- treating as zero.\n",
+                item->name, item->comment, item->type);
+        return 0;
+    }
+}
+
+psS8 psMetadataItemParseS8(psMetadataItem *item
+                          )
+{
+    switch (item->type) {
+        PS_METADATA_ITEM_PARSE_NUMBER(F32, S8);
+        PS_METADATA_ITEM_PARSE_NUMBER(F64, S8);
+        PS_METADATA_ITEM_PARSE_NUMBER(S8,  S8);
+        PS_METADATA_ITEM_PARSE_NUMBER(S16, S8);
+        PS_METADATA_ITEM_PARSE_NUMBER(S32, S8);
+        PS_METADATA_ITEM_PARSE_NUMBER(U8,  S8);
+        PS_METADATA_ITEM_PARSE_NUMBER(U16, S8);
+        PS_METADATA_ITEM_PARSE_NUMBER(U32, S8);
+    default:
+        psError(PS_ERR_IO, true, "Item %s (%s) is not of integer type (%x) --- treating as zero.\n",
+                item->name, item->comment, item->type);
+        return 0;
+    }
+}
+
+psS16 psMetadataItemParseS16(psMetadataItem *item
+                            )
+{
+    switch (item->type) {
+        PS_METADATA_ITEM_PARSE_NUMBER(F32, S16);
+        PS_METADATA_ITEM_PARSE_NUMBER(F64, S16);
+        PS_METADATA_ITEM_PARSE_NUMBER(S8,  S16);
+        PS_METADATA_ITEM_PARSE_NUMBER(S16, S16);
+        PS_METADATA_ITEM_PARSE_NUMBER(S32, S16);
+        PS_METADATA_ITEM_PARSE_NUMBER(U8,  S16);
+        PS_METADATA_ITEM_PARSE_NUMBER(U16, S16);
+        PS_METADATA_ITEM_PARSE_NUMBER(U32, S16);
+    default:
+        psError(PS_ERR_IO, true, "Item %s (%s) is not of integer type (%x) --- treating as zero.\n",
+                item->name, item->comment, item->type);
+        return 0;
     }
 }
Index: /trunk/psModules/src/pslib/psMetadataItemParse.h
===================================================================
--- /trunk/psModules/src/pslib/psMetadataItemParse.h	(revision 6908)
+++ /trunk/psModules/src/pslib/psMetadataItemParse.h	(revision 6909)
@@ -4,12 +4,16 @@
 #include "pslib.h"
 
-psF32 psMetadataItemParseF32(psMetadataItem *item
-                            );
-psF64 psMetadataItemParseF64(psMetadataItem *item
-                            );
-psS32 psMetadataItemParseS32(psMetadataItem *item
-                            );
-psString psMetadataItemParseString(psMetadataItem *item
-                                  );
+psF32 psMetadataItemParseF32(psMetadataItem *item);
+psF64 psMetadataItemParseF64(psMetadataItem *item);
+
+psS8  psMetadataItemParseS8 (psMetadataItem *item);
+psS16 psMetadataItemParseS16(psMetadataItem *item);
+psS32 psMetadataItemParseS32(psMetadataItem *item);
+
+psU8  psMetadataItemParseU8 (psMetadataItem *item);
+psU16 psMetadataItemParseU16(psMetadataItem *item);
+psU32 psMetadataItemParseU32(psMetadataItem *item);
+
+psString psMetadataItemParseString(psMetadataItem *item);
 
 #endif
