Index: trunk/psLib/src/astronomy/astronomy.i
===================================================================
--- trunk/psLib/src/astronomy/astronomy.i	(revision 3114)
+++ trunk/psLib/src/astronomy/astronomy.i	(revision 3165)
@@ -3,6 +3,49 @@
 %include "psAstronomyErrors.h"
 %include "psCoord.h"
+
 %include "psMetadata.h"
+%extend psMetadataItem {
+    const char *get_STR(void) {
+       if (self->type != PS_META_STR) {
+	  return NULL;
+       } else {
+	  return self->data.V;
+       }
+    }
+}
+
+// add a method to add primitives to metadata
+%inline %{
+psBool psMetadataAddStr(psMetadata* md, psS32 where, const char* name, const char* comment, const char* value) {
+    return psMetadataAdd(md,where,name,PS_TYPE_PTR, PS_META_STR,comment,value);
+}
+psBool psMetadataAddF32(psMetadata* md, psS32 where, const char* name, const char* comment, psF32 value) {
+    return psMetadataAdd(md,where,name,PS_TYPE_F32, PS_META_PRIMITIVE,comment,value);
+}
+psBool psMetadataAddF64(psMetadata* md, psS32 where, const char* name, const char* comment, psF64 value) {
+    return psMetadataAdd(md,where,name,PS_TYPE_F64, PS_META_PRIMITIVE,comment,value);
+}
+psBool psMetadataAddS32(psMetadata* md, psS32 where, const char* name, const char* comment, psS32 value) {
+    return psMetadataAdd(md,where,name,PS_TYPE_S32, PS_META_PRIMITIVE,comment,value);
+}
+
+psMetadataItem* psMetadataItemAllocStr(const char* name, const char* comment, const char* value) {
+    return psMetadataItemAlloc(name, PS_TYPE_PTR, PS_META_STR, comment, value);
+}
+psMetadataItem* psMetadataItemAllocF32(const char* name, const char* comment, psF32 value) {
+    return psMetadataItemAlloc(name, PS_TYPE_F32, PS_META_PRIMITIVE, comment, value);
+}
+psMetadataItem* psMetadataItemAllocF64(const char* name, const char* comment, psF64 value) {
+    return psMetadataItemAlloc(name, PS_TYPE_F64, PS_META_PRIMITIVE, comment, value);
+}
+psMetadataItem* psMetadataItemAllocS32(const char* name, const char* comment, psS32 value) {
+    return psMetadataItemAlloc(name, PS_TYPE_S32, PS_META_PRIMITIVE, comment, value);
+}
+%}
+
+%apply uint32_t *OUTPUT { uint32_t *nFail }; /* for psMetadataParseConfig */
 %include "psMetadataIO.h"
+%clear uint32_t *nFail;
+
 %include "psPhotometry.h"
 %include "psTime.h"
