OSDN Git Service

Add Bluray support
[handbrake-jp/handbrake-jp-git.git] / gtk / src / values.c
index a888d0a..5800a00 100644 (file)
@@ -15,6 +15,7 @@
 #include <glib.h>
 #include <glib-object.h>
 #include <string.h>
+#include <inttypes.h>
 #include "values.h"
 
 static void dict_delete_key(gpointer data);
@@ -96,7 +97,7 @@ debug_show_value(GValue *gval)
        }
        else if (tp == G_TYPE_INT64)
        {
-               g_message("Type %s value %ld", "int64", g_value_get_int64(gval));
+               g_message("Type %s value %" PRId64, "int64", g_value_get_int64(gval));
        }
        else if (tp == G_TYPE_DOUBLE)
        {
@@ -252,6 +253,10 @@ ghb_value_cmp(const GValue *vala, const GValue *valb)
        GType typa;
        GType typb;
 
+       if ((vala == NULL && valb != NULL) || (vala != NULL && valb == NULL))
+       {
+               return 1;
+       }
        typa = G_VALUE_TYPE(vala);
        typb = G_VALUE_TYPE(valb);
        if (typa != typb)
@@ -748,6 +753,15 @@ xform_string_double(const GValue *sval, GValue *dval)
 }
 
 static void
+xform_double_string(const GValue *dval, GValue *sval)
+{
+       gchar *str;
+       double val = g_value_get_double(dval);
+       str = g_strdup_printf("%g", val);
+       g_value_take_string(sval, str);
+}
+
+static void
 xform_boolean_double(const GValue *bval, GValue *dval)
 {
        gboolean b = g_value_get_boolean(bval);
@@ -766,4 +780,6 @@ ghb_register_transforms()
                                                                xform_string_double);
        g_value_register_transform_func(G_TYPE_BOOLEAN, G_TYPE_DOUBLE, 
                                                                xform_boolean_double);
+       g_value_register_transform_func(G_TYPE_DOUBLE, G_TYPE_STRING, 
+                                                               xform_double_string);
 }