int agfa_model_number(char *model,char *software) { struct camera_id *model_id; int number = NO_MODEL; for(model_id = &agfa_model_id[0]; model_id && model_id->name; ++model_id) { if(strncasecmp(model,model_id->name,model_id->namelen) == 0) { number = model_id->id; setnoteversion(model_id->noteversion); setnotetagset(model_id->notetagset); /* info only */ break; } } return(number); }
char * maker_asahi2_tagname(unsigned short tag,int model) { char *tagname = CNULL; /* This is the same as Casio note version 2 */ switch(tag) { case 0x0002: tagname = "JpegThumbnailDimensions"; break; case 0x0003: tagname = "JpegThumbnailLength"; break; case 0x0004: tagname = "JpegThumbnailOffset"; break; case 0x0008: tagname = "QualityMode"; break; case 0x0009: tagname = "ImageSize"; break; case 0x000D: tagname = "FocusMode"; break; case 0x0014: tagname = "IsoSensitivity"; break; case 0x0019: tagname = "WhiteBalance"; break; case 0x001D: tagname = "FocalLength"; break; /* units .1mm */ case 0x001F: tagname = "Saturation"; break; case 0x0020: tagname = "Contrast"; break; case 0x0021: tagname = "Sharpness"; break; case 0x2000: tagname = "JpegThumbnail"; break; case 0x2011: tagname = "WhiteBalanceBias"; break; case 0x2012: tagname = "WhiteBalance"; break; case 0x2022: tagname = "ObjectDistance"; break; case 0x2034: tagname = "FlashDistance"; break; case 0x3000: tagname = "RecordMode"; break; case 0x3001: tagname = "SelfTimer?"; break; case 0x3002: tagname = "Quality"; break; case 0x3003: tagname = "FocusMode"; break; case 0x3006: tagname = "TimeZone"; break; case 0x3007: tagname = "BestshotMode"; break; case 0x3014: tagname = "CCDSensitivity"; break; case 0x3015: tagname = "ColorMode"; break; case 0x3016: tagname = "Enhancement"; break; case 0x3017: tagname = "Filter"; break; default: break; } setnotetagset(2); return(tagname); }
char * maker_agfa1_tagname(unsigned short tag) { char *tagname = CNULL; switch(tag) { case 0x0100: tagname = "JpegThumbnail"; break; case 0x0200: tagname = "SpecialMode"; break; case 0x0201: tagname = "Quality"; break; case 0x0202: tagname = "Macro"; break; case 0x0204: tagname = "DigitalZoom"; break; case 0x0207: tagname = "SoftwareRelease"; break; case 0x0208: tagname = "PictureInfo"; break; case 0x0209: tagname = "CameraID"; break; case 0x020b: tagname = "ImageWidth"; break; /* ? */ case 0x020c: tagname = "ImageHeight"; break; /* ? */ case 0x0f00: tagname = "Data"; break; default: break; } setnotetagset(1); return(tagname); }
char * maker_asahi3_tagname(unsigned short tag,int model) { char *tagname = CNULL; switch(tag) { case 0x0001: tagname = "CaptureMode"; break; case 0x0002: tagname = "JpegThumbnailDimensions"; break; case 0x0003: tagname = "JpegThumbnailLength"; break; case 0x0004: tagname = "JpegThumbnailOffset"; break; case 0x0006: tagname = "Date"; break; case 0x0007: tagname = "Time"; break; case 0x0008: tagname = "QualityMode"; break; case 0x0009: tagname = "ImageSize"; break; case 0x000B: tagname = "PictureMode"; break; case 0x000D: tagname = "FocusMode"; break; case 0x0014: tagname = "IsoSensitivity"; break; case 0x0017: tagname = "MeteringMode"; break; case 0x0019: tagname = "WhiteBalance"; break; case 0x001D: tagname = "FocalLength"; break; case 0x001E: tagname = "DigitalZoom"; break; case 0x001F: tagname = "Saturation"; break; case 0x0020: tagname = "Contrast"; break; case 0x0021: tagname = "Sharpness"; break; case 0x0029: tagname = "FrameNumber"; break; case 0x0039: tagname = "RawImageSize"; break; case 0x003F: tagname = "LensType"; break; case 0x0200: tagname = "BlackPoint"; break; case 0x0201: tagname = "WhitePoint"; break; case 0x0402: tagname = "ToneCurve"; break; case 0x0403: tagname = "ToneCurves"; break; default: break; } setnotetagset(3); return(tagname); }
char * maker_agfa_tagname(unsigned short tag,int model) { char *tagname = CNULL; int noteversion = 0; /* Should have to do this only once, and only for unrecognized */ /* models. If the model is recognized (or the user has forced a */ /* noteversion) noteversion will already be set. */ if((noteversion = getnoteversion()) == 0) { noteversion = 1; setnoteversion(1); } switch(noteversion) { case 1: tagname = maker_agfa1_tagname(tag); break; default: setnotetagset(noteversion); /* for info only */ break; } /* If no model-specific tag is found, check "generic" tags */ if(tagname == NULL) { switch(tag) { case 0x0e00: tagname = "PrintIM"; break; default: break; } } return(tagname); }
int set_asahi_noteversion() { struct maker_scheme *scheme; int noteversion = 0; int tagset = 0; scheme = retrieve_makerscheme(); if(scheme->note_version <= 0) { switch(scheme->scheme_type) { case HAS_ID_SCHEME: if(scheme->first_entry.tag == 0x1) { tagset = 3; noteversion = 3; } else { tagset = 2; noteversion = 2; } break; case PLAIN_IFD_SCHEME: tagset = 1; noteversion = 1; break; } setnotetagset(tagset); setnoteversion(noteversion); } else noteversion = scheme->note_version; return(noteversion); }
char * maker_asahi1_tagname(unsigned short tag,int model) { char *tagname = CNULL; switch(tag) { case 0x0001: tagname = "CaptureMode"; break; case 0x0002: tagname = "Quality"; break; case 0x0003: tagname = "FocusMode"; break; case 0x0004: tagname = "FlashMode"; break; case 0x0007: tagname = "WhiteBalance"; break; case 0x000a: tagname = "DigitalZoom"; break; case 0x000b: tagname = "Sharpness"; break; case 0x000c: tagname = "Contrast"; break; case 0x000d: tagname = "Saturation"; break; case 0x0014: tagname = "ISOSpeedSetting"; break; case 0x0017: tagname = "Color"; break; case 0x1000: tagname = "TimeZone"; break; case 0x1001: tagname = "DaylightSavings"; break; } setnotetagset(1); return(tagname); }