X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Ftest%2Fdebug%2Futil.c;fp=src%2Ftest%2Fdebug%2Futil.c;h=d270645788322d3353c46fba182bea406102f2b6;hb=a712cd772f4f3db8bed7037bb95c4de94767b230;hp=0000000000000000000000000000000000000000;hpb=2f0296582bf5d3f51db40d299f434fc8240ca6a5;p=fillmore diff --git a/src/test/debug/util.c b/src/test/debug/util.c new file mode 100644 index 0000000..d270645 --- /dev/null +++ b/src/test/debug/util.c @@ -0,0 +1,1673 @@ +/* util.c generated by valac, the Vala compiler + * generated from util.vala, do not modify */ + +/* Copyright 2009 Yorba Foundation + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define _g_free0(var) (var = (g_free (var), NULL)) + +#define TYPE_FRACTION (fraction_get_type ()) +typedef struct _Fraction Fraction; + +#define TYPE_TIME_CODE (time_code_get_type ()) +typedef struct _TimeCode TimeCode; +#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) +#define _g_checksum_free0(var) ((var == NULL) ? NULL : (var = (g_checksum_free (var), NULL))) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL))) +#define _gst_object_unref0(var) ((var == NULL) ? NULL : (var = (gst_object_unref (var), NULL))) + +typedef enum { + MEDIA_ERROR_MISSING_PLUGIN +} MediaError; +#define MEDIA_ERROR media_error_quark () +struct _Fraction { + gint numerator; + gint denominator; +}; + +struct _TimeCode { + gint hour; + gint minute; + gint second; + gint frame; + gboolean drop_code; +}; + +typedef enum { + GDK_Control_L, + GDK_Control_R, + GDK_Down, + GDK_equal, + GDK_Escape, + GDK_KP_Add, + GDK_KP_Enter, + GDK_KP_Subtract, + GDK_Left, + GDK_minus, + GDK_plus, + GDK_Return, + GDK_Right, + GDK_Shift_L, + GDK_Shift_R, + GDK_underscore, + GDK_Up +} KeySyms; + + +extern gboolean debug_enabled; +gboolean debug_enabled = FALSE; +extern GdkModifierType GDK_SHIFT_ALT_CONTROL_MASK; +GdkModifierType GDK_SHIFT_ALT_CONTROL_MASK = (GDK_SHIFT_MASK | GDK_MOD1_MASK) | GDK_CONTROL_MASK; + +GQuark media_error_quark (void); +float float_abs (float f); +gboolean float_within (double f, double epsilon); +gint sign (gint x); +gint stricmp (const char* str1, const char* str2); +char** copy_array (char** source, int source_length1, int* result_length1); +void print_debug (const char* text); +GType fraction_get_type (void); +Fraction* fraction_dup (const Fraction* self); +void fraction_free (Fraction* self); +void fraction_init (Fraction *self, gint numerator, gint denominator); +void fraction_init_from_string (Fraction *self, const char* s); +gboolean fraction_equal (Fraction *self, Fraction* f); +gint fraction_nearest_int (Fraction *self); +char* fraction_to_string (Fraction *self); +GType time_code_get_type (void); +TimeCode* time_code_dup (const TimeCode* self); +void time_code_free (TimeCode* self); +void time_code_get_from_length (TimeCode *self, gint64 length); +char* time_code_to_string (TimeCode *self); +gboolean time_in_range (gint64 time, gint64 center, gint64 delta); +char* isolate_filename (const char* path); +char* get_file_extension (const char* path); +char* append_extension (const char* path, const char* extension); +gboolean version_at_least (const char* v, const char* w); +gboolean get_file_md5_checksum (const char* filename, char** checksum); +void save_file_md5_checksum (const char* filename, const char* checksum); +gboolean md5_checksum_on_file (const char* filename, char** checksum); +void parse_color (const char* color, GdkColor* result); +GtkWidget* get_widget (GtkUIManager* manager, const char* name); +#define LINE_WIDTH 1.0 +#define RADIUS 15.0 +#define ANTIALIAS CAIRO_ANTIALIAS_DEFAULT +void draw_rounded_rectangle (GdkWindow* window, GdkColor* color, gboolean filled, gint x0, gint y0, gint width, gint height); +void draw_right_rounded_rectangle (GdkWindow* window, GdkColor* color, gboolean filled, gint x0, gint y0, gint width, gint height); +void draw_left_rounded_rectangle (GdkWindow* window, GdkColor* color, gboolean filled, gint x0, gint y0, gint width, gint height); +void draw_square_rectangle (GdkWindow* window, GdkColor* color, gboolean filled, gint x, gint y, gint width, gint height); +gboolean is_drop_frame_rate (Fraction* r); +gint64 frame_to_time_with_rate (gint frame, Fraction* rate); +gint time_to_frame_with_rate (gint64 time, Fraction* rate); +void frame_to_time (gint frame, Fraction* rate, TimeCode* result); +char* frame_to_string (gint frame, Fraction* rate); +void breakup_time (gint64 time, gint* hours, gint* minutes, double* seconds); +char* time_to_HHMMSS (gint64 time); +char* time_to_string (gint64 time); +GstElement* make_element_with_name (const char* element_name, const char* display_name, GError** error); +GstElement* make_element (const char* name, GError** error); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); +static gint _vala_array_length (gpointer array); +static int _vala_strcmp0 (const char * str1, const char * str2); + +const GtkTargetEntry drag_target_entries[1] = {{"text/uri-list", (guint) 0, (guint) 0}}; + + +GQuark media_error_quark (void) { + return g_quark_from_static_string ("media_error-quark"); +} + + +#line 12 "util.vala" +float float_abs (float f) { +#line 141 "util.c" + float result = 0.0F; +#line 13 "util.vala" + if (f < 0.0f) { +#line 145 "util.c" + result = -f; +#line 14 "util.vala" + return result; +#line 149 "util.c" + } + result = f; +#line 15 "util.vala" + return result; +#line 154 "util.c" +} + + +#line 18 "util.vala" +gboolean float_within (double f, double epsilon) { +#line 160 "util.c" + gboolean result = FALSE; + result = float_abs ((float) f) < epsilon; +#line 19 "util.vala" + return result; +#line 165 "util.c" +} + + +#line 22 "util.vala" +gint sign (gint x) { +#line 171 "util.c" + gint result = 0; + gint _tmp0_ = 0; +#line 23 "util.vala" + if (x == 0) { +#line 176 "util.c" + result = 0; +#line 24 "util.vala" + return result; +#line 180 "util.c" + } +#line 25 "util.vala" + if (x < 0) { +#line 25 "util.vala" + _tmp0_ = -1; +#line 186 "util.c" + } else { +#line 25 "util.vala" + _tmp0_ = 1; +#line 190 "util.c" + } + result = _tmp0_; +#line 25 "util.vala" + return result; +#line 195 "util.c" +} + + +#line 28 "util.vala" +gint stricmp (const char* str1, const char* str2) { +#line 201 "util.c" + gint result = 0; + char* temp_str1; + char* temp_str2; +#line 28 "util.vala" + g_return_val_if_fail (str1 != NULL, 0); +#line 28 "util.vala" + g_return_val_if_fail (str2 != NULL, 0); +#line 29 "util.vala" + temp_str1 = g_utf8_casefold (str1, (gssize) (-1)); +#line 30 "util.vala" + temp_str2 = g_utf8_casefold (str2, (gssize) (-1)); +#line 213 "util.c" + result = g_utf8_collate (temp_str1, temp_str2); + _g_free0 (temp_str1); + _g_free0 (temp_str2); +#line 32 "util.vala" + return result; +#line 219 "util.c" +} + + +#line 36 "util.vala" +char** copy_array (char** source, int source_length1, int* result_length1) { +#line 225 "util.c" + char** result = NULL; + char** _tmp0_; + gint _destination_size_; + gint destination_length1; + char** destination; + gint i; + char** _tmp2_; + destination = (_tmp0_ = g_new0 (char*, source_length1 + 1), destination_length1 = source_length1, _destination_size_ = destination_length1, _tmp0_); +#line 38 "util.vala" + i = 0; +#line 236 "util.c" + { + char** item_collection; + int item_collection_length1; + int item_it; +#line 39 "util.vala" + item_collection = source; +#line 243 "util.c" + item_collection_length1 = source_length1; + for (item_it = 0; item_it < source_length1; item_it = item_it + 1) { + char* item; + item = g_strdup (item_collection[item_it]); + { + char* _tmp1_; +#line 40 "util.vala" + destination[i] = (_tmp1_ = g_strdup (item), _g_free0 (destination[i]), _tmp1_); +#line 41 "util.vala" + i = i + 1; +#line 254 "util.c" + _g_free0 (item); + } + } + } + result = (_tmp2_ = destination, *result_length1 = destination_length1, _tmp2_); +#line 43 "util.vala" + return result; +#line 262 "util.c" + destination = (_vala_array_free (destination, destination_length1, (GDestroyNotify) g_free), NULL); +} + + +#line 50 "util.vala" +void print_debug (const char* text) { +#line 50 "util.vala" + g_return_if_fail (text != NULL); +#line 51 "util.vala" + if (!debug_enabled) { +#line 52 "util.vala" + return; +#line 275 "util.c" + } +#line 54 "util.vala" + g_debug ("util.vala:54: %s", text); +#line 279 "util.c" +} + + +#line 61 "util.vala" +void fraction_init (Fraction *self, gint numerator, gint denominator) { +#line 285 "util.c" + memset (self, 0, sizeof (Fraction)); +#line 62 "util.vala" + (*self).numerator = numerator; +#line 63 "util.vala" + (*self).denominator = denominator; +#line 291 "util.c" +} + + +#line 66 "util.vala" +void fraction_init_from_string (Fraction *self, const char* s) { +#line 297 "util.c" + char** _tmp1_; + gint _elements_size_; + gint elements_length1; + char** _tmp0_; + char** elements; +#line 66 "util.vala" + g_return_if_fail (s != NULL); +#line 305 "util.c" + memset (self, 0, sizeof (Fraction)); + elements = (_tmp1_ = _tmp0_ = g_strsplit (s, "/", 0), elements_length1 = _vala_array_length (_tmp0_), _elements_size_ = elements_length1, _tmp1_); +#line 68 "util.vala" + if (elements_length1 != 2) { +#line 69 "util.vala" + (*self).numerator = 0; +#line 70 "util.vala" + (*self).denominator = 0; +#line 314 "util.c" + } else { +#line 72 "util.vala" + (*self).numerator = atoi (elements[0]); +#line 73 "util.vala" + (*self).denominator = atoi (elements[1]); +#line 320 "util.c" + } + elements = (_vala_array_free (elements, elements_length1, (GDestroyNotify) g_free), NULL); +} + + +#line 77 "util.vala" +gboolean fraction_equal (Fraction *self, Fraction* f) { +#line 328 "util.c" + gboolean result = FALSE; +#line 78 "util.vala" + if (float_abs (((*self).numerator / ((float) (*self).denominator)) - ((*f).numerator / ((float) (*f).denominator))) <= (1000.0f / 1001.0f)) { +#line 332 "util.c" + result = TRUE; +#line 80 "util.vala" + return result; +#line 336 "util.c" + } + result = FALSE; +#line 81 "util.vala" + return result; +#line 341 "util.c" +} + + +#line 84 "util.vala" +gint fraction_nearest_int (Fraction *self) { +#line 347 "util.c" + gint result = 0; + result = (gint) ((((double) (*self).numerator) / (*self).denominator) + 0.5); +#line 85 "util.vala" + return result; +#line 352 "util.c" +} + + +#line 88 "util.vala" +char* fraction_to_string (Fraction *self) { +#line 358 "util.c" + char* result = NULL; + result = g_strdup_printf ("%d/%d", (*self).numerator, (*self).denominator); +#line 89 "util.vala" + return result; +#line 363 "util.c" +} + + +Fraction* fraction_dup (const Fraction* self) { + Fraction* dup; + dup = g_new0 (Fraction, 1); + memcpy (dup, self, sizeof (Fraction)); + return dup; +} + + +void fraction_free (Fraction* self) { + g_free (self); +} + + +GType fraction_get_type (void) { + static volatile gsize fraction_type_id__volatile = 0; + if (g_once_init_enter (&fraction_type_id__volatile)) { + GType fraction_type_id; + fraction_type_id = g_boxed_type_register_static ("Fraction", (GBoxedCopyFunc) fraction_dup, (GBoxedFreeFunc) fraction_free); + g_once_init_leave (&fraction_type_id__volatile, fraction_type_id); + } + return fraction_type_id__volatile; +} + + +#line 101 "util.vala" +void time_code_get_from_length (TimeCode *self, gint64 length) { +#line 102 "util.vala" + length = length / ((gint64) GST_SECOND); +#line 104 "util.vala" + (*self).hour = (gint) (length / 3600); +#line 105 "util.vala" + (*self).minute = (gint) ((length % 3600) / 60); +#line 106 "util.vala" + (*self).second = (gint) ((length % 3600) % 60); +#line 107 "util.vala" + (*self).frame = 0; +#line 403 "util.c" +} + + +#line 110 "util.vala" +char* time_code_to_string (TimeCode *self) { +#line 409 "util.c" + char* result = NULL; + char* ret; + char* _tmp3_; + char* _tmp2_; + char* _tmp5_; + char* _tmp4_; + char* _tmp9_; + char* _tmp8_; +#line 111 "util.vala" + ret = g_strdup (""); +#line 112 "util.vala" + if ((*self).hour != 0) { +#line 422 "util.c" + char* _tmp1_; + char* _tmp0_; +#line 113 "util.vala" + ret = (_tmp1_ = g_strconcat (ret, _tmp0_ = g_strdup_printf ("%.2d:", (*self).hour), NULL), _g_free0 (ret), _tmp1_); +#line 427 "util.c" + _g_free0 (_tmp0_); + } +#line 115 "util.vala" + ret = (_tmp3_ = g_strconcat (ret, _tmp2_ = g_strdup_printf ("%.2d:", (*self).minute), NULL), _g_free0 (ret), _tmp3_); +#line 432 "util.c" + _g_free0 (_tmp2_); +#line 116 "util.vala" + ret = (_tmp5_ = g_strconcat (ret, _tmp4_ = g_strdup_printf ("%.2d", (*self).second), NULL), _g_free0 (ret), _tmp5_); +#line 436 "util.c" + _g_free0 (_tmp4_); +#line 118 "util.vala" + if ((*self).drop_code) { +#line 440 "util.c" + char* _tmp6_; +#line 119 "util.vala" + ret = (_tmp6_ = g_strconcat (ret, ";", NULL), _g_free0 (ret), _tmp6_); +#line 444 "util.c" + } else { + char* _tmp7_; +#line 121 "util.vala" + ret = (_tmp7_ = g_strconcat (ret, ":", NULL), _g_free0 (ret), _tmp7_); +#line 449 "util.c" + } +#line 122 "util.vala" + ret = (_tmp9_ = g_strconcat (ret, _tmp8_ = g_strdup_printf ("%.2d", (*self).frame), NULL), _g_free0 (ret), _tmp9_); +#line 453 "util.c" + _g_free0 (_tmp8_); + result = ret; +#line 124 "util.vala" + return result; +#line 458 "util.c" +} + + +TimeCode* time_code_dup (const TimeCode* self) { + TimeCode* dup; + dup = g_new0 (TimeCode, 1); + memcpy (dup, self, sizeof (TimeCode)); + return dup; +} + + +void time_code_free (TimeCode* self) { + g_free (self); +} + + +GType time_code_get_type (void) { + static volatile gsize time_code_type_id__volatile = 0; + if (g_once_init_enter (&time_code_type_id__volatile)) { + GType time_code_type_id; + time_code_type_id = g_boxed_type_register_static ("TimeCode", (GBoxedCopyFunc) time_code_dup, (GBoxedFreeFunc) time_code_free); + g_once_init_leave (&time_code_type_id__volatile, time_code_type_id); + } + return time_code_type_id__volatile; +} + + +#line 128 "util.vala" +gboolean time_in_range (gint64 time, gint64 center, gint64 delta) { +#line 488 "util.c" + gboolean result = FALSE; + gint64 diff; +#line 129 "util.vala" + diff = time - center; +#line 493 "util.c" + result = llabs (diff) <= delta; +#line 130 "util.vala" + return result; +#line 497 "util.c" +} + + +#line 133 "util.vala" +char* isolate_filename (const char* path) { +#line 503 "util.c" + char* result = NULL; + char* str; + gint _tmp1__length1; + char** _tmp1_; + char** _tmp0_; + char* _tmp2_; +#line 133 "util.vala" + g_return_val_if_fail (path != NULL, NULL); +#line 134 "util.vala" + str = g_path_get_basename (path); +#line 514 "util.c" + result = (_tmp2_ = g_strdup ((_tmp1_ = _tmp0_ = g_strsplit (str, ".", 0), _tmp1__length1 = _vala_array_length (_tmp0_), _tmp1_)[0]), _tmp1_ = (_vala_array_free (_tmp1_, _tmp1__length1, (GDestroyNotify) g_free), NULL), _tmp2_); + _g_free0 (str); +#line 135 "util.vala" + return result; +#line 519 "util.c" + _g_free0 (str); +} + + +#line 138 "util.vala" +char* get_file_extension (const char* path) { +#line 526 "util.c" + char* result = NULL; + const char* dot; + const char* _tmp0_; +#line 138 "util.vala" + g_return_val_if_fail (path != NULL, NULL); +#line 139 "util.vala" + dot = g_utf8_strrchr (path, (gssize) (-1), (gunichar) '.'); +#line 534 "util.c" + _tmp0_ = NULL; +#line 140 "util.vala" + if (dot == NULL) { +#line 140 "util.vala" + _tmp0_ = ""; +#line 540 "util.c" + } else { +#line 140 "util.vala" + _tmp0_ = g_utf8_next_char (dot); +#line 544 "util.c" + } + result = g_strdup (_tmp0_); +#line 140 "util.vala" + return result; +#line 549 "util.c" +} + + +#line 143 "util.vala" +char* append_extension (const char* path, const char* extension) { +#line 555 "util.c" + char* result = NULL; + char* _tmp0_; + gboolean _tmp1_; + char* _tmp2_; + char* _tmp3_; +#line 143 "util.vala" + g_return_val_if_fail (path != NULL, NULL); +#line 143 "util.vala" + g_return_val_if_fail (extension != NULL, NULL); +#line 144 "util.vala" + if ((_tmp1_ = _vala_strcmp0 (_tmp0_ = get_file_extension (path), extension) == 0, _g_free0 (_tmp0_), _tmp1_)) { +#line 567 "util.c" + result = g_strdup (path); +#line 145 "util.vala" + return result; +#line 571 "util.c" + } + result = (_tmp3_ = g_strconcat (_tmp2_ = g_strconcat (path, ".", NULL), extension, NULL), _g_free0 (_tmp2_), _tmp3_); +#line 147 "util.vala" + return result; +#line 576 "util.c" +} + + +#line 152 "util.vala" +gboolean version_at_least (const char* v, const char* w) { +#line 582 "util.c" + gboolean result = FALSE; + char** _tmp1_; + gint _va_size_; + gint va_length1; + char** _tmp0_; + char** va; + char** _tmp3_; + gint _wa_size_; + gint wa_length1; + char** _tmp2_; + char** wa; +#line 152 "util.vala" + g_return_val_if_fail (v != NULL, FALSE); +#line 152 "util.vala" + g_return_val_if_fail (w != NULL, FALSE); +#line 598 "util.c" + va = (_tmp1_ = _tmp0_ = g_strsplit (v, ".", 0), va_length1 = _vala_array_length (_tmp0_), _va_size_ = va_length1, _tmp1_); + wa = (_tmp3_ = _tmp2_ = g_strsplit (w, ".", 0), wa_length1 = _vala_array_length (_tmp2_), _wa_size_ = wa_length1, _tmp3_); + { + gint i; +#line 155 "util.vala" + i = 0; +#line 605 "util.c" + { + gboolean _tmp4_; +#line 155 "util.vala" + _tmp4_ = TRUE; +#line 155 "util.vala" + while (TRUE) { +#line 612 "util.c" + gint vi; + gint wi; +#line 155 "util.vala" + if (!_tmp4_) { +#line 155 "util.vala" + i = i + 1; +#line 619 "util.c" + } +#line 155 "util.vala" + _tmp4_ = FALSE; +#line 155 "util.vala" + if (!(i < wa_length1)) { +#line 155 "util.vala" + break; +#line 627 "util.c" + } +#line 156 "util.vala" + if (i >= va_length1) { +#line 631 "util.c" + result = FALSE; + va = (_vala_array_free (va, va_length1, (GDestroyNotify) g_free), NULL); + wa = (_vala_array_free (wa, wa_length1, (GDestroyNotify) g_free), NULL); +#line 157 "util.vala" + return result; +#line 637 "util.c" + } +#line 158 "util.vala" + vi = atoi (va[i]); +#line 159 "util.vala" + wi = atoi (wa[i]); +#line 160 "util.vala" + if (vi > wi) { +#line 645 "util.c" + result = TRUE; + va = (_vala_array_free (va, va_length1, (GDestroyNotify) g_free), NULL); + wa = (_vala_array_free (wa, wa_length1, (GDestroyNotify) g_free), NULL); +#line 161 "util.vala" + return result; +#line 651 "util.c" + } +#line 162 "util.vala" + if (wi > vi) { +#line 655 "util.c" + result = FALSE; + va = (_vala_array_free (va, va_length1, (GDestroyNotify) g_free), NULL); + wa = (_vala_array_free (wa, wa_length1, (GDestroyNotify) g_free), NULL); +#line 163 "util.vala" + return result; +#line 661 "util.c" + } + } + } + } + result = TRUE; + va = (_vala_array_free (va, va_length1, (GDestroyNotify) g_free), NULL); + wa = (_vala_array_free (wa, wa_length1, (GDestroyNotify) g_free), NULL); +#line 165 "util.vala" + return result; +#line 671 "util.c" +} + + +#line 168 "util.vala" +gboolean get_file_md5_checksum (const char* filename, char** checksum) { +#line 677 "util.c" + gboolean result = FALSE; + GError * _inner_error_; + char* new_filename; + gsize buffer_length = 0UL; +#line 168 "util.vala" + g_return_val_if_fail (filename != NULL, FALSE); +#line 684 "util.c" + if (checksum != NULL) { + *checksum = NULL; + } + _inner_error_ = NULL; +#line 169 "util.vala" + new_filename = append_extension (filename, "md5"); +#line 691 "util.c" + { + char* _tmp1_; + char* _tmp0_ = NULL; +#line 173 "util.vala" + g_file_get_contents (new_filename, &_tmp0_, &buffer_length, &_inner_error_); +#line 173 "util.vala" + *checksum = (_tmp1_ = _tmp0_, _g_free0 (*checksum), _tmp1_); +#line 699 "util.c" + if (_inner_error_ != NULL) { + if (_inner_error_->domain == G_FILE_ERROR) { + goto __catch2_g_file_error; + } + _g_free0 (new_filename); + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return FALSE; + } + } + goto __finally2; + __catch2_g_file_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + result = FALSE; + _g_error_free0 (e); + _g_free0 (new_filename); +#line 175 "util.vala" + return result; +#line 722 "util.c" + } + } + __finally2: + if (_inner_error_ != NULL) { + _g_free0 (new_filename); + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return FALSE; + } + result = buffer_length == 32; + _g_free0 (new_filename); +#line 178 "util.vala" + return result; +#line 736 "util.c" +} + + +#line 181 "util.vala" +void save_file_md5_checksum (const char* filename, const char* checksum) { +#line 742 "util.c" + GError * _inner_error_; + char* new_filename; +#line 181 "util.vala" + g_return_if_fail (filename != NULL); +#line 181 "util.vala" + g_return_if_fail (checksum != NULL); +#line 749 "util.c" + _inner_error_ = NULL; +#line 182 "util.vala" + new_filename = append_extension (filename, "md5"); +#line 753 "util.c" + { +#line 185 "util.vala" + g_file_set_contents (new_filename, checksum, -1, &_inner_error_); +#line 757 "util.c" + if (_inner_error_ != NULL) { + if (_inner_error_->domain == G_FILE_ERROR) { + goto __catch3_g_file_error; + } + _g_free0 (new_filename); + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return; + } + } + goto __finally3; + __catch3_g_file_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { +#line 187 "util.vala" + g_error ("util.vala:187: Cannot save md5 file %s!\n", new_filename); +#line 777 "util.c" + _g_error_free0 (e); + } + } + __finally3: + if (_inner_error_ != NULL) { + _g_free0 (new_filename); + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return; + } + _g_free0 (new_filename); +} + + +#line 191 "util.vala" +gboolean md5_checksum_on_file (const char* filename, char** checksum) { +#line 794 "util.c" + gboolean result = FALSE; + GError * _inner_error_; + char* file_buffer; + gsize len = 0UL; + GChecksum* c; + char* _tmp2_; +#line 191 "util.vala" + g_return_val_if_fail (filename != NULL, FALSE); +#line 803 "util.c" + if (checksum != NULL) { + *checksum = NULL; + } + _inner_error_ = NULL; + file_buffer = NULL; + { + char* _tmp1_; + char* _tmp0_ = NULL; +#line 196 "util.vala" + g_file_get_contents (filename, &_tmp0_, &len, &_inner_error_); +#line 196 "util.vala" + file_buffer = (_tmp1_ = _tmp0_, _g_free0 (file_buffer), _tmp1_); +#line 816 "util.c" + if (_inner_error_ != NULL) { + if (_inner_error_->domain == G_FILE_ERROR) { + goto __catch4_g_file_error; + } + _g_free0 (file_buffer); + g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return FALSE; + } + } + goto __finally4; + __catch4_g_file_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + result = FALSE; + _g_error_free0 (e); + _g_free0 (file_buffer); +#line 198 "util.vala" + return result; +#line 839 "util.c" + } + } + __finally4: + if (_inner_error_ != NULL) { + _g_free0 (file_buffer); + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return FALSE; + } +#line 201 "util.vala" + c = g_checksum_new (G_CHECKSUM_MD5); +#line 202 "util.vala" + g_checksum_update (c, (guchar*) file_buffer, len); +#line 203 "util.vala" + *checksum = (_tmp2_ = g_strdup (g_checksum_get_string (c)), _g_free0 (*checksum), _tmp2_); +#line 855 "util.c" + result = TRUE; + _g_free0 (file_buffer); + _g_checksum_free0 (c); +#line 204 "util.vala" + return result; +#line 861 "util.c" +} + + +#line 239 "util.vala" +void parse_color (const char* color, GdkColor* result) { +#line 867 "util.c" + GdkColor c = {0}; +#line 239 "util.vala" + g_return_if_fail (color != NULL); +#line 241 "util.vala" + if (!gdk_color_parse (color, &c)) { +#line 242 "util.vala" + g_error ("util.vala:242: can't parse color"); +#line 875 "util.c" + } + *result = c; +#line 243 "util.vala" + return; +#line 880 "util.c" +} + + +static gpointer _g_object_ref0 (gpointer self) { + return self ? g_object_ref (self) : NULL; +} + + +#line 246 "util.vala" +GtkWidget* get_widget (GtkUIManager* manager, const char* name) { +#line 891 "util.c" + GtkWidget* result = NULL; + GtkWidget* widget; +#line 246 "util.vala" + g_return_val_if_fail (GTK_IS_UI_MANAGER (manager), NULL); +#line 246 "util.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 247 "util.vala" + widget = _g_object_ref0 (gtk_ui_manager_get_widget (manager, name)); +#line 248 "util.vala" + if (widget == NULL) { +#line 249 "util.vala" + g_error ("util.vala:249: can't find widget"); +#line 904 "util.c" + } + result = widget; +#line 250 "util.vala" + return result; +#line 909 "util.c" +} + + +#line 262 "util.vala" +void draw_rounded_rectangle (GdkWindow* window, GdkColor* color, gboolean filled, gint x0, gint y0, gint width, gint height) { +#line 915 "util.c" + gboolean _tmp0_ = FALSE; + double x1; + double y1; + cairo_t* cairo_window; +#line 262 "util.vala" + g_return_if_fail (GDK_IS_WINDOW (window)); +#line 264 "util.vala" + if (width == 0) { +#line 264 "util.vala" + _tmp0_ = TRUE; +#line 926 "util.c" + } else { +#line 264 "util.vala" + _tmp0_ = height == 0; +#line 930 "util.c" + } +#line 264 "util.vala" + if (_tmp0_) { +#line 265 "util.vala" + return; +#line 936 "util.c" + } +#line 267 "util.vala" + x1 = (double) (x0 + width); +#line 268 "util.vala" + y1 = (double) (y0 + height); +#line 270 "util.vala" + cairo_window = gdk_cairo_create (GDK_DRAWABLE (window)); +#line 271 "util.vala" + gdk_cairo_set_source_color (cairo_window, color); +#line 272 "util.vala" + cairo_set_antialias (cairo_window, ANTIALIAS); +#line 274 "util.vala" + if ((width / 2) < RADIUS) { +#line 275 "util.vala" + if ((height / 2) < RADIUS) { +#line 276 "util.vala" + cairo_move_to (cairo_window, (double) x0, (y0 + y1) / 2); +#line 277 "util.vala" + cairo_curve_to (cairo_window, (double) x0, (double) y0, (double) x0, (double) y0, (x0 + x1) / 2, (double) y0); +#line 278 "util.vala" + cairo_curve_to (cairo_window, x1, (double) y0, x1, (double) y0, x1, (y0 + y1) / 2); +#line 279 "util.vala" + cairo_curve_to (cairo_window, x1, y1, x1, y1, (x1 + x0) / 2, y1); +#line 280 "util.vala" + cairo_curve_to (cairo_window, (double) x0, y1, (double) x0, y1, (double) x0, (y0 + y1) / 2); +#line 962 "util.c" + } else { +#line 282 "util.vala" + cairo_move_to (cairo_window, (double) x0, y0 + RADIUS); +#line 283 "util.vala" + cairo_curve_to (cairo_window, (double) x0, (double) y0, (double) x0, (double) y0, (x0 + x1) / 2, (double) y0); +#line 284 "util.vala" + cairo_curve_to (cairo_window, x1, (double) y0, x1, (double) y0, x1, y0 + RADIUS); +#line 285 "util.vala" + cairo_line_to (cairo_window, x1, y1 - RADIUS); +#line 286 "util.vala" + cairo_curve_to (cairo_window, x1, y1, x1, y1, (x1 + x0) / 2, y1); +#line 287 "util.vala" + cairo_curve_to (cairo_window, (double) x0, y1, (double) x0, y1, (double) x0, y1 - RADIUS); +#line 976 "util.c" + } + } else { +#line 290 "util.vala" + if ((height / 2) < RADIUS) { +#line 291 "util.vala" + cairo_move_to (cairo_window, (double) x0, (y0 + y1) / 2); +#line 292 "util.vala" + cairo_curve_to (cairo_window, (double) x0, (double) y0, (double) x0, (double) y0, x0 + RADIUS, (double) y0); +#line 293 "util.vala" + cairo_line_to (cairo_window, x1 - RADIUS, (double) y0); +#line 294 "util.vala" + cairo_curve_to (cairo_window, x1, (double) y0, x1, (double) y0, x1, (y0 + y1) / 2); +#line 295 "util.vala" + cairo_curve_to (cairo_window, x1, y1, x1, y1, x1 - RADIUS, y1); +#line 296 "util.vala" + cairo_line_to (cairo_window, x0 + RADIUS, y1); +#line 297 "util.vala" + cairo_curve_to (cairo_window, (double) x0, y1, (double) x0, y1, (double) x0, (y0 + y1) / 2); +#line 995 "util.c" + } else { +#line 299 "util.vala" + cairo_move_to (cairo_window, (double) x0, y0 + RADIUS); +#line 300 "util.vala" + cairo_curve_to (cairo_window, (double) x0, (double) y0, (double) x0, (double) y0, x0 + RADIUS, (double) y0); +#line 301 "util.vala" + cairo_line_to (cairo_window, x1 - RADIUS, (double) y0); +#line 302 "util.vala" + cairo_curve_to (cairo_window, x1, (double) y0, x1, (double) y0, x1, y0 + RADIUS); +#line 303 "util.vala" + cairo_line_to (cairo_window, x1, y1 - RADIUS); +#line 304 "util.vala" + cairo_curve_to (cairo_window, x1, y1, x1, y1, x1 - RADIUS, y1); +#line 305 "util.vala" + cairo_line_to (cairo_window, x0 + RADIUS, y1); +#line 306 "util.vala" + cairo_curve_to (cairo_window, (double) x0, y1, (double) x0, y1, (double) x0, y1 - RADIUS); +#line 1013 "util.c" + } + } +#line 309 "util.vala" + cairo_close_path (cairo_window); +#line 311 "util.vala" + if (filled) { +#line 312 "util.vala" + cairo_fill (cairo_window); +#line 1022 "util.c" + } else { +#line 314 "util.vala" + cairo_set_line_width (cairo_window, LINE_WIDTH); +#line 315 "util.vala" + cairo_stroke (cairo_window); +#line 1028 "util.c" + } + _cairo_destroy0 (cairo_window); +} + + +#line 319 "util.vala" +void draw_right_rounded_rectangle (GdkWindow* window, GdkColor* color, gboolean filled, gint x0, gint y0, gint width, gint height) { +#line 1036 "util.c" + gboolean _tmp0_ = FALSE; + double x1; + double y1; + cairo_t* cairo_window; +#line 319 "util.vala" + g_return_if_fail (GDK_IS_WINDOW (window)); +#line 321 "util.vala" + if (width == 0) { +#line 321 "util.vala" + _tmp0_ = TRUE; +#line 1047 "util.c" + } else { +#line 321 "util.vala" + _tmp0_ = height == 0; +#line 1051 "util.c" + } +#line 321 "util.vala" + if (_tmp0_) { +#line 322 "util.vala" + return; +#line 1057 "util.c" + } +#line 324 "util.vala" + x1 = (double) (x0 + width); +#line 325 "util.vala" + y1 = (double) (y0 + height); +#line 327 "util.vala" + cairo_window = gdk_cairo_create (GDK_DRAWABLE (window)); +#line 328 "util.vala" + gdk_cairo_set_source_color (cairo_window, color); +#line 329 "util.vala" + cairo_set_antialias (cairo_window, ANTIALIAS); +#line 331 "util.vala" + if ((width / 2) < RADIUS) { +#line 332 "util.vala" + if ((height / 2) < RADIUS) { +#line 333 "util.vala" + cairo_move_to (cairo_window, (double) x0, (double) y0); +#line 334 "util.vala" + cairo_line_to (cairo_window, (x0 + x1) / 2, (double) y0); +#line 335 "util.vala" + cairo_curve_to (cairo_window, x1, (double) y0, x1, (double) y0, x1, (y0 + y1) / 2); +#line 336 "util.vala" + cairo_curve_to (cairo_window, x1, y1, x1, y1, (x1 + x0) / 2, y1); +#line 337 "util.vala" + cairo_line_to (cairo_window, (double) x0, y1); +#line 338 "util.vala" + cairo_line_to (cairo_window, (double) x0, (double) y0); +#line 1085 "util.c" + } else { +#line 340 "util.vala" + cairo_move_to (cairo_window, (double) x0, (double) y0); +#line 341 "util.vala" + cairo_line_to (cairo_window, (x0 + x1) / 2, (double) y0); +#line 342 "util.vala" + cairo_curve_to (cairo_window, x1, (double) y0, x1, (double) y0, x1, y0 + RADIUS); +#line 343 "util.vala" + cairo_line_to (cairo_window, x1, y1 - RADIUS); +#line 344 "util.vala" + cairo_curve_to (cairo_window, x1, y1, x1, y1, (x1 + x0) / 2, y1); +#line 345 "util.vala" + cairo_line_to (cairo_window, (double) x0, y1); +#line 346 "util.vala" + cairo_line_to (cairo_window, (double) x0, (double) y0); +#line 1101 "util.c" + } + } else { +#line 349 "util.vala" + if ((height / 2) < RADIUS) { +#line 350 "util.vala" + cairo_move_to (cairo_window, (double) x0, (double) y0); +#line 351 "util.vala" + cairo_line_to (cairo_window, x1 - RADIUS, (double) y0); +#line 352 "util.vala" + cairo_curve_to (cairo_window, x1, (double) y0, x1, (double) y0, x1, (y0 + y1) / 2); +#line 353 "util.vala" + cairo_curve_to (cairo_window, x1, y1, x1, y1, x1 - RADIUS, y1); +#line 354 "util.vala" + cairo_line_to (cairo_window, (double) x0, y1); +#line 355 "util.vala" + cairo_line_to (cairo_window, (double) x0, (double) y0); +#line 1118 "util.c" + } else { +#line 357 "util.vala" + cairo_move_to (cairo_window, (double) x0, (double) y0); +#line 358 "util.vala" + cairo_line_to (cairo_window, x1 - RADIUS, (double) y0); +#line 359 "util.vala" + cairo_curve_to (cairo_window, x1, (double) y0, x1, (double) y0, x1, y0 + RADIUS); +#line 360 "util.vala" + cairo_line_to (cairo_window, x1, y1 - RADIUS); +#line 361 "util.vala" + cairo_curve_to (cairo_window, x1, y1, x1, y1, x1 - RADIUS, y1); +#line 362 "util.vala" + cairo_line_to (cairo_window, (double) x0, y1); +#line 363 "util.vala" + cairo_line_to (cairo_window, (double) x0, (double) y0); +#line 1134 "util.c" + } + } +#line 366 "util.vala" + cairo_close_path (cairo_window); +#line 368 "util.vala" + if (filled) { +#line 369 "util.vala" + cairo_fill (cairo_window); +#line 1143 "util.c" + } else { +#line 371 "util.vala" + cairo_set_line_width (cairo_window, LINE_WIDTH); +#line 372 "util.vala" + cairo_stroke (cairo_window); +#line 1149 "util.c" + } + _cairo_destroy0 (cairo_window); +} + + +#line 376 "util.vala" +void draw_left_rounded_rectangle (GdkWindow* window, GdkColor* color, gboolean filled, gint x0, gint y0, gint width, gint height) { +#line 1157 "util.c" + gboolean _tmp0_ = FALSE; + double x1; + double y1; + cairo_t* cairo_window; +#line 376 "util.vala" + g_return_if_fail (GDK_IS_WINDOW (window)); +#line 378 "util.vala" + if (width == 0) { +#line 378 "util.vala" + _tmp0_ = TRUE; +#line 1168 "util.c" + } else { +#line 378 "util.vala" + _tmp0_ = height == 0; +#line 1172 "util.c" + } +#line 378 "util.vala" + if (_tmp0_) { +#line 379 "util.vala" + return; +#line 1178 "util.c" + } +#line 381 "util.vala" + x1 = (double) (x0 + width); +#line 382 "util.vala" + y1 = (double) (y0 + height); +#line 384 "util.vala" + cairo_window = gdk_cairo_create (GDK_DRAWABLE (window)); +#line 385 "util.vala" + gdk_cairo_set_source_color (cairo_window, color); +#line 386 "util.vala" + cairo_set_antialias (cairo_window, ANTIALIAS); +#line 388 "util.vala" + if ((width / 2) < RADIUS) { +#line 389 "util.vala" + if ((height / 2) < RADIUS) { +#line 390 "util.vala" + cairo_move_to (cairo_window, (double) x0, (y0 + y1) / 2); +#line 391 "util.vala" + cairo_curve_to (cairo_window, (double) x0, (double) y0, (double) x0, (double) y0, (x0 + x1) / 2, (double) y0); +#line 392 "util.vala" + cairo_line_to (cairo_window, x1, (double) y0); +#line 393 "util.vala" + cairo_line_to (cairo_window, x1, y1); +#line 394 "util.vala" + cairo_line_to (cairo_window, (x1 + x0) / 2, y1); +#line 395 "util.vala" + cairo_curve_to (cairo_window, (double) x0, y1, (double) x0, y1, (double) x0, (y0 + y1) / 2); +#line 1206 "util.c" + } else { +#line 397 "util.vala" + cairo_move_to (cairo_window, (double) x0, y0 + RADIUS); +#line 398 "util.vala" + cairo_curve_to (cairo_window, (double) x0, (double) y0, (double) x0, (double) y0, (x0 + x1) / 2, (double) y0); +#line 399 "util.vala" + cairo_line_to (cairo_window, x1, (double) y0); +#line 400 "util.vala" + cairo_line_to (cairo_window, x1, y1); +#line 401 "util.vala" + cairo_line_to (cairo_window, (x1 + x0) / 2, y1); +#line 402 "util.vala" + cairo_curve_to (cairo_window, (double) x0, y1, (double) x0, y1, (double) x0, y1 - RADIUS); +#line 1220 "util.c" + } + } else { +#line 405 "util.vala" + if ((height / 2) < RADIUS) { +#line 406 "util.vala" + cairo_move_to (cairo_window, (double) x0, (y0 + y1) / 2); +#line 407 "util.vala" + cairo_curve_to (cairo_window, (double) x0, (double) y0, (double) x0, (double) y0, x0 + RADIUS, (double) y0); +#line 408 "util.vala" + cairo_line_to (cairo_window, x1, (double) y0); +#line 409 "util.vala" + cairo_line_to (cairo_window, x1, y1); +#line 410 "util.vala" + cairo_line_to (cairo_window, x0 + RADIUS, y1); +#line 411 "util.vala" + cairo_curve_to (cairo_window, (double) x0, y1, (double) x0, y1, (double) x0, (y0 + y1) / 2); +#line 1237 "util.c" + } else { +#line 413 "util.vala" + cairo_move_to (cairo_window, (double) x0, y0 + RADIUS); +#line 414 "util.vala" + cairo_curve_to (cairo_window, (double) x0, (double) y0, (double) x0, (double) y0, x0 + RADIUS, (double) y0); +#line 415 "util.vala" + cairo_line_to (cairo_window, x1, (double) y0); +#line 416 "util.vala" + cairo_line_to (cairo_window, x1, y1); +#line 417 "util.vala" + cairo_line_to (cairo_window, x0 + RADIUS, y1); +#line 418 "util.vala" + cairo_curve_to (cairo_window, (double) x0, y1, (double) x0, y1, (double) x0, y1 - RADIUS); +#line 1251 "util.c" + } + } +#line 421 "util.vala" + cairo_close_path (cairo_window); +#line 423 "util.vala" + if (filled) { +#line 424 "util.vala" + cairo_fill (cairo_window); +#line 1260 "util.c" + } else { +#line 426 "util.vala" + cairo_set_line_width (cairo_window, LINE_WIDTH); +#line 427 "util.vala" + cairo_stroke (cairo_window); +#line 1266 "util.c" + } + _cairo_destroy0 (cairo_window); +} + + +#line 431 "util.vala" +void draw_square_rectangle (GdkWindow* window, GdkColor* color, gboolean filled, gint x, gint y, gint width, gint height) { +#line 1274 "util.c" + gboolean _tmp0_ = FALSE; + cairo_t* cairo_window; +#line 431 "util.vala" + g_return_if_fail (GDK_IS_WINDOW (window)); +#line 433 "util.vala" + if (width == 0) { +#line 433 "util.vala" + _tmp0_ = TRUE; +#line 1283 "util.c" + } else { +#line 433 "util.vala" + _tmp0_ = height == 0; +#line 1287 "util.c" + } +#line 433 "util.vala" + if (_tmp0_) { +#line 434 "util.vala" + return; +#line 1293 "util.c" + } +#line 436 "util.vala" + cairo_window = gdk_cairo_create (GDK_DRAWABLE (window)); +#line 437 "util.vala" + gdk_cairo_set_source_color (cairo_window, color); +#line 438 "util.vala" + cairo_set_antialias (cairo_window, ANTIALIAS); +#line 440 "util.vala" + cairo_rectangle (cairo_window, (double) x, (double) y, (double) width, (double) height); +#line 442 "util.vala" + if (filled) { +#line 443 "util.vala" + cairo_fill (cairo_window); +#line 1307 "util.c" + } else { +#line 445 "util.vala" + cairo_set_line_width (cairo_window, LINE_WIDTH); +#line 446 "util.vala" + cairo_stroke (cairo_window); +#line 1313 "util.c" + } + _cairo_destroy0 (cairo_window); +} + + +#line 452 "util.vala" +gboolean is_drop_frame_rate (Fraction* r) { +#line 1321 "util.c" + gboolean result = FALSE; + gboolean _tmp0_ = FALSE; + gboolean _tmp1_ = FALSE; +#line 453 "util.vala" + if ((*r).numerator == 2997) { +#line 453 "util.vala" + _tmp1_ = (*r).denominator == 100; +#line 1329 "util.c" + } else { +#line 453 "util.vala" + _tmp1_ = FALSE; +#line 1333 "util.c" + } +#line 453 "util.vala" + if (_tmp1_) { +#line 453 "util.vala" + _tmp0_ = TRUE; +#line 1339 "util.c" + } else { + gboolean _tmp2_ = FALSE; +#line 454 "util.vala" + if ((*r).numerator == 30000) { +#line 454 "util.vala" + _tmp2_ = (*r).denominator == 1001; +#line 1346 "util.c" + } else { +#line 454 "util.vala" + _tmp2_ = FALSE; +#line 1350 "util.c" + } +#line 454 "util.vala" + _tmp0_ = _tmp2_; +#line 1354 "util.c" + } + result = _tmp0_; +#line 453 "util.vala" + return result; +#line 1359 "util.c" +} + + +#line 457 "util.vala" +gint64 frame_to_time_with_rate (gint frame, Fraction* rate) { +#line 1365 "util.c" + gint64 result = 0LL; + gint64 time; +#line 458 "util.vala" + time = (gint64) gst_util_uint64_scale ((guint64) frame, (guint64) (GST_SECOND * (*rate).denominator), (guint64) (*rate).numerator); +#line 1370 "util.c" + result = time; +#line 459 "util.vala" + return result; +#line 1374 "util.c" +} + + +#line 462 "util.vala" +gint time_to_frame_with_rate (gint64 time, Fraction* rate) { +#line 1380 "util.c" + gint result = 0; + gint frame; + gint _tmp0_ = 0; +#line 463 "util.vala" + frame = (gint) gst_util_uint64_scale ((guint64) time, (guint64) (*rate).numerator, (guint64) (GST_SECOND * (*rate).denominator)); +#line 469 "util.vala" + if (time >= frame_to_time_with_rate (frame + 1, rate)) { +#line 469 "util.vala" + _tmp0_ = frame + 1; +#line 1390 "util.c" + } else { +#line 469 "util.vala" + _tmp0_ = frame; +#line 1394 "util.c" + } + result = _tmp0_; +#line 469 "util.vala" + return result; +#line 1399 "util.c" +} + + +#line 472 "util.vala" +void frame_to_time (gint frame, Fraction* rate, TimeCode* result) { +#line 1405 "util.c" + gint frame_rate; + TimeCode _tmp0_ = {0}; + TimeCode t; + gint64 secs; +#line 473 "util.vala" + frame_rate = 0; +#line 475 "util.vala" + t = (_tmp0_); +#line 477 "util.vala" + t.drop_code = FALSE; +#line 478 "util.vala" + if ((*rate).denominator == 1) { +#line 479 "util.vala" + frame_rate = (*rate).numerator; +#line 1420 "util.c" + } else { +#line 480 "util.vala" + if (is_drop_frame_rate (rate)) { +#line 1424 "util.c" + gint FRAMES_PER_MINUTE; + gint FRAMES_PER_10_MINUTES; + gint block; + gint minute_in_block; + gint minutes; +#line 481 "util.vala" + t.drop_code = TRUE; +#line 482 "util.vala" + frame_rate = 30; +#line 485 "util.vala" + FRAMES_PER_MINUTE = (30 * 60) - 2; +#line 486 "util.vala" + FRAMES_PER_10_MINUTES = (10 * FRAMES_PER_MINUTE) + 2; +#line 488 "util.vala" + block = frame / FRAMES_PER_10_MINUTES; +#line 489 "util.vala" + minute_in_block = ((frame % FRAMES_PER_10_MINUTES) - 2) / FRAMES_PER_MINUTE; +#line 490 "util.vala" + minutes = (10 * block) + minute_in_block; +#line 491 "util.vala" + frame = frame + ((2 * minutes) - (2 * block)); +#line 1446 "util.c" + } else { +#line 495 "util.vala" + frame_rate = (*rate).numerator / (*rate).denominator; +#line 1450 "util.c" + } + } +#line 498 "util.vala" + t.frame = frame % frame_rate; +#line 500 "util.vala" + secs = (gint64) (frame / frame_rate); +#line 501 "util.vala" + t.hour = ((gint) secs) / 3600; +#line 502 "util.vala" + t.minute = (((gint) secs) % 3600) / 60; +#line 503 "util.vala" + t.second = (((gint) secs) % 3600) % 60; +#line 1463 "util.c" + *result = t; +#line 505 "util.vala" + return; +#line 1467 "util.c" +} + + +#line 508 "util.vala" +char* frame_to_string (gint frame, Fraction* rate) { +#line 1473 "util.c" + char* result = NULL; + TimeCode _tmp1_; + TimeCode _tmp0_ = {0}; + result = time_code_to_string ((_tmp1_ = (frame_to_time (frame, rate, &_tmp0_), _tmp0_), &_tmp1_)); +#line 509 "util.vala" + return result; +#line 1480 "util.c" +} + + +#line 512 "util.vala" +void breakup_time (gint64 time, gint* hours, gint* minutes, double* seconds) { +#line 1486 "util.c" + gint64 the_time; + gint64 minute; + gint64 hour; +#line 513 "util.vala" + the_time = time; +#line 514 "util.vala" + minute = (gint64) (GST_SECOND * 60); +#line 515 "util.vala" + hour = minute * 60; +#line 516 "util.vala" + *hours = (gint) (the_time / hour); +#line 517 "util.vala" + the_time = the_time % hour; +#line 518 "util.vala" + *minutes = (gint) (the_time / minute); +#line 519 "util.vala" + the_time = the_time % minute; +#line 520 "util.vala" + *seconds = ((double) the_time) / GST_SECOND; +#line 1506 "util.c" +} + + +#line 523 "util.vala" +char* time_to_HHMMSS (gint64 time) { +#line 1512 "util.c" + char* result = NULL; + gint hours = 0; + gint minutes = 0; + double seconds = 0.0; +#line 528 "util.vala" + breakup_time (time, &hours, &minutes, &seconds); +#line 1519 "util.c" + result = g_strdup_printf ("%02d:%02d:%05.2lf", hours, minutes, seconds); +#line 529 "util.vala" + return result; +#line 1523 "util.c" +} + + +#line 532 "util.vala" +char* time_to_string (gint64 time) { +#line 1529 "util.c" + char* result = NULL; + gint hours = 0; + gint minutes = 0; + double seconds = 0.0; + char* return_value; + gboolean _tmp0_ = FALSE; +#line 537 "util.vala" + breakup_time (time, &hours, &minutes, &seconds); +#line 538 "util.vala" + return_value = g_strdup_printf ("%1.2lfs", seconds); +#line 539 "util.vala" + if (hours > 0) { +#line 539 "util.vala" + _tmp0_ = TRUE; +#line 1544 "util.c" + } else { +#line 539 "util.vala" + _tmp0_ = minutes > 0; +#line 1548 "util.c" + } +#line 539 "util.vala" + if (_tmp0_) { +#line 1552 "util.c" + char* _tmp2_; + char* _tmp1_; +#line 540 "util.vala" + return_value = (_tmp2_ = g_strconcat (_tmp1_ = g_strdup_printf ("%dm ", minutes), return_value, NULL), _g_free0 (return_value), _tmp2_); +#line 1557 "util.c" + _g_free0 (_tmp1_); + } +#line 543 "util.vala" + if (hours > 0) { +#line 1562 "util.c" + char* _tmp4_; + char* _tmp3_; +#line 544 "util.vala" + return_value = (_tmp4_ = g_strconcat (_tmp3_ = g_strdup_printf ("%dh ", hours), return_value, NULL), _g_free0 (return_value), _tmp4_); +#line 1567 "util.c" + _g_free0 (_tmp3_); + } + result = return_value; +#line 547 "util.vala" + return result; +#line 1573 "util.c" +} + + +#line 550 "util.vala" +GstElement* make_element_with_name (const char* element_name, const char* display_name, GError** error) { +#line 1579 "util.c" + GstElement* result = NULL; + GError * _inner_error_; + GstElement* e; +#line 550 "util.vala" + g_return_val_if_fail (element_name != NULL, NULL); +#line 1585 "util.c" + _inner_error_ = NULL; +#line 552 "util.vala" + e = gst_element_factory_make (element_name, display_name); +#line 553 "util.vala" + if (e == NULL) { +#line 1591 "util.c" + char* _tmp0_; + GError* _tmp1_; + _inner_error_ = (_tmp1_ = g_error_new_literal (MEDIA_ERROR, MEDIA_ERROR_MISSING_PLUGIN, _tmp0_ = g_strdup_printf ("Could not create element %s(%s)", element_name, display_name)), _g_free0 (_tmp0_), _tmp1_); + { + g_propagate_error (error, _inner_error_); + _gst_object_unref0 (e); + return NULL; + } + } + result = e; +#line 557 "util.vala" + return result; +#line 1604 "util.c" +} + + +#line 560 "util.vala" +GstElement* make_element (const char* name, GError** error) { +#line 1610 "util.c" + GstElement* result = NULL; + GError * _inner_error_; + GstElement* _tmp0_; +#line 560 "util.vala" + g_return_val_if_fail (name != NULL, NULL); +#line 1616 "util.c" + _inner_error_ = NULL; +#line 561 "util.vala" + _tmp0_ = make_element_with_name (name, NULL, &_inner_error_); +#line 1620 "util.c" + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); + return NULL; + } + result = _tmp0_; +#line 561 "util.vala" + return result; +#line 1628 "util.c" +} + + +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { + if ((array != NULL) && (destroy_func != NULL)) { + int i; + for (i = 0; i < array_length; i = i + 1) { + if (((gpointer*) array)[i] != NULL) { + destroy_func (((gpointer*) array)[i]); + } + } + } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); + g_free (array); +} + + +static gint _vala_array_length (gpointer array) { + int length; + length = 0; + if (array) { + while (((gpointer*) array)[length]) { + length++; + } + } + return length; +} + + +static int _vala_strcmp0 (const char * str1, const char * str2) { + if (str1 == NULL) { + return -(str1 != str2); + } + if (str2 == NULL) { + return str1 != str2; + } + return strcmp (str1, str2); +} + + + +