summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorWu-cheng Li <wuchengli@google.com>2010-01-31 22:34:33 +0800
committerWu-cheng Li <wuchengli@google.com>2010-02-04 16:26:16 +0800
commit574d52d26f44b600cdab3d3361eaa5f6dd9d7a4d (patch)
tree6641ca57e134cb2adec419041c701df211e43336 /main.c
parenta39920ca4b96a456511fa32ba90c77f119a274c3 (diff)
downloadjhead-574d52d26f44b600cdab3d3361eaa5f6dd9d7a4d.tar.gz
Change focal length string to rational.
bug:2375989
Diffstat (limited to 'main.c')
-rw-r--r--main.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/main.c b/main.c
index 682e892..6ea1219 100644
--- a/main.c
+++ b/main.c
@@ -517,6 +517,13 @@ static int addKeyValueDouble(char** buf, int bufLen, const char* key, double val
return addKeyValueString(buf, bufLen, key, valueStr);
}
+// Returns new buffer length. Rational value will be appended as "numerator/denominator".
+static int addKeyValueRational(char** buf, int bufLen, const char* key, rat_t value) {
+ char valueStr[25];
+ snprintf(valueStr, sizeof(valueStr), "%u/%u", value.num, value.denom);
+ return addKeyValueString(buf, bufLen, key, valueStr);
+}
+
static jstring getAttributes(JNIEnv *env, jobject jobj, jstring jfilename)
{
#ifdef SUPERDEBUG
@@ -571,8 +578,8 @@ static jstring getAttributes(JNIEnv *env, jobject jobj, jstring jfilename)
bufLen = addKeyValueInt(&buf, bufLen, "Flash", ImageInfo.FlashUsed);
if (bufLen == 0) return NULL;
- if (ImageInfo.FocalLength){
- bufLen = addKeyValueInt(&buf, bufLen, "FocalLength", ImageInfo.FocalLength);
+ if (ImageInfo.FocalLength.num != 0 && ImageInfo.FocalLength.denom != 0) {
+ bufLen = addKeyValueRational(&buf, bufLen, "FocalLength", ImageInfo.FocalLength);
if (bufLen == 0) return NULL;
}