/** * gst_video_time_code_init: * @tc: a #GstVideoTimeCode * @fps_n: Numerator of the frame rate * @fps_d: Denominator of the frame rate * @latest_daily_jam: The latest daily jam of the #GstVideoTimeCode * @flags: #GstVideoTimeCodeFlags * @hours: the hours field of #GstVideoTimeCode * @minutes: the minutes field of #GstVideoTimeCode * @seconds: the seconds field of #GstVideoTimeCode * @frames: the frames field of #GstVideoTimeCode * @field_count: Interlaced video field count * * @field_count is 0 for progressive, 1 or 2 for interlaced. * @latest_daiy_jam reference is stolen from caller. * * Initializes @tc with the given values. * * Since: 1.10 */ void gst_video_time_code_init (GstVideoTimeCode * tc, guint fps_n, guint fps_d, GDateTime * latest_daily_jam, GstVideoTimeCodeFlags flags, guint hours, guint minutes, guint seconds, guint frames, guint field_count) { tc->hours = hours; tc->minutes = minutes; tc->seconds = seconds; tc->frames = frames; tc->field_count = field_count; tc->config.fps_n = fps_n; tc->config.fps_d = fps_d; if (latest_daily_jam != NULL) tc->config.latest_daily_jam = g_date_time_ref (latest_daily_jam); else tc->config.latest_daily_jam = NULL; tc->config.flags = flags; g_return_if_fail (gst_video_time_code_is_valid (tc)); }
void buffer_append(ProfBuff buffer, const char show_char, int pad_indent, GDateTime *time, int flags, theme_item_t theme_item, const char *const from, const char *const message, DeliveryReceipt *receipt) { ProfBuffEntry *e = malloc(sizeof(struct prof_buff_entry_t)); e->show_char = show_char; e->pad_indent = pad_indent; e->flags = flags; e->theme_item = theme_item; e->time = g_date_time_ref(time); e->from = from ? strdup(from) : NULL; e->message = strdup(message); e->receipt = receipt; if (g_slist_length(buffer->entries) == BUFF_SIZE) { _free_entry(buffer->entries->data); buffer->entries = g_slist_delete_link(buffer->entries, buffer->entries); } buffer->entries = g_slist_append(buffer->entries, e); }
void um_history_dialog_show (UmHistoryDialog *um, GtkWindow *parent) { GDateTime *temp, *local; /* Set the first day of this week */ local = g_date_time_new_now_local (); temp = g_date_time_new_local (g_date_time_get_year (local), g_date_time_get_month (local), g_date_time_get_day_of_month (local), 0, 0, 0); um->week = g_date_time_add_days (temp, 1 - g_date_time_get_day_of_week (temp)); um->current_week = g_date_time_ref (um->week); g_date_time_unref (local); g_date_time_unref (temp); show_week (um); gtk_window_set_transient_for (GTK_WINDOW (um->dialog), parent); gtk_window_present (GTK_WINDOW (um->dialog)); }
/** * gcal_event_widget_set_date_start: * @self: a #GcalEventWidget * @date_end: the start date of this widget * * Sets the visible start date of this widget. This * may differ from the event's start date, but cannot * be before it. */ void gcal_event_widget_set_date_start (GcalEventWidget *self, GDateTime *date_start) { g_return_if_fail (GCAL_IS_EVENT_WIDGET (self)); if (self->dt_start != date_start && (!self->dt_start || !date_start || (self->dt_start && date_start && !g_date_time_equal (self->dt_start, date_start)))) { /* The start date should never be before the event's start date */ if (date_start && g_date_time_compare (date_start, gcal_event_get_date_start (self->event)) < 0) return; g_clear_pointer (&self->dt_start, g_date_time_unref); self->dt_start = g_date_time_ref (date_start); gcal_event_widget_update_style (self); g_object_notify (G_OBJECT (self), "date-start"); } }
/** * gcal_event_widget_set_date_end: * @self: a #GcalEventWidget * @date_end: the end date of this widget * * Sets the visible end date of this widget. This * may differ from the event's end date, but cannot * be after it. */ void gcal_event_widget_set_date_end (GcalEventWidget *self, GDateTime *date_end) { g_return_if_fail (GCAL_IS_EVENT_WIDGET (self)); if (self->dt_end != date_end && (!self->dt_end || !date_end || (self->dt_end && date_end && !g_date_time_equal (self->dt_end, date_end)))) { /* The end date should never be after the event's end date */ if (date_end && g_date_time_compare (date_end, gcal_event_get_date_end (self->event)) > 0) return; g_clear_pointer (&self->dt_end, g_date_time_unref); self->dt_end = g_date_time_ref (date_end); gcal_event_widget_update_style (self); g_object_notify (G_OBJECT (self), "date-end"); } }
static DeleteData * delete_data_new (GFile *file, GCancellable *cancellable, GDateTime *old, gboolean dry_run, gboolean trash, gint depth) { DeleteData *data; data = g_new (DeleteData, 1); data->ref_count = 1; data->file = g_object_ref (file); data->cancellable = cancellable ? g_object_ref (cancellable) : NULL; data->old = g_date_time_ref (old); data->dry_run = dry_run; data->trash = trash; data->depth = depth; data->name = g_file_get_parse_name (data->file); return data; }
static gpointer _g_date_time_ref0 (gpointer self) { return self ? g_date_time_ref (self) : NULL; }
/** * CacheEntryUpdateTime: * @time_ptr: (inout): #GDateTime instance to set to @now. If the pointer was * non-NULL, g_date_time_unref() is called on it first. * @now: New value for *@time_ptr. */ static void CacheEntryUpdateTime(GDateTime **time_ptr, GDateTime *now) { if (*time_ptr) g_date_time_unref(*time_ptr); *time_ptr = now; g_date_time_ref(now); }
static EosUpdateInfo * get_latest_update (GArray *sources, GHashTable *source_to_update) { g_autoptr(GHashTable) latest = g_hash_table_new (NULL, NULL); GHashTableIter iter; gpointer name_ptr; gpointer update_ptr; g_autoptr(GDateTime) latest_timestamp = NULL; gsize idx; g_debug ("%s: source_to_update mapping:", G_STRFUNC); g_hash_table_iter_init (&iter, source_to_update); while (g_hash_table_iter_next (&iter, &name_ptr, &update_ptr)) { EosUpdateInfo *update = update_ptr; g_autofree gchar *update_string = eos_update_info_to_string (update); gint compare_value = 1; g_autoptr(GDateTime) update_timestamp = NULL; g_debug ("%s: - %s: %s", G_STRFUNC, (const gchar *) name_ptr, update_string); update_timestamp = eos_update_info_get_commit_timestamp (update); if (latest_timestamp != NULL) compare_value = g_date_time_compare (update_timestamp, latest_timestamp); if (compare_value > 0) { g_clear_pointer (&latest_timestamp, g_date_time_unref); latest_timestamp = g_date_time_ref (update_timestamp); g_hash_table_remove_all (latest); compare_value = 0; } if (compare_value == 0) g_hash_table_insert (latest, name_ptr, update_ptr); } g_debug ("%s: sources list:", G_STRFUNC); for (idx = 0; idx < sources->len; ++idx) { EosUpdaterDownloadSource source = g_array_index (sources, EosUpdaterDownloadSource, idx); const gchar *name = download_source_to_string (source); EosUpdateInfo *update = g_hash_table_lookup (latest, name); if (update != NULL) { g_debug ("%s: - %s (matched)", G_STRFUNC, name); return update; } else { g_debug ("%s: - %s", G_STRFUNC, name); } } return NULL; }
static void test_parser (GMimeParser *parser, GMimeStream *mbox, GMimeStream *summary) { gint64 message_begin, message_end, headers_begin, headers_end; GMimeFormatOptions *format = g_mime_format_options_get_default (); InternetAddressList *list; GMimeMessage *message; char *marker, *buf; const char *subject; GMimeObject *body; GDateTime *date; int nmsg = 0; while (!g_mime_parser_eos (parser)) { message_begin = g_mime_parser_tell (parser); if (!(message = g_mime_parser_construct_message (parser, NULL))) throw (exception_new ("failed to parse message #%d", nmsg)); message_end = g_mime_parser_tell (parser); headers_begin = g_mime_parser_get_headers_begin (parser); headers_end = g_mime_parser_get_headers_end (parser); g_mime_stream_printf (summary, "message offsets: %" G_GINT64_FORMAT ", %" G_GINT64_FORMAT "\n", message_begin, message_end); g_mime_stream_printf (summary, "header offsets: %" G_GINT64_FORMAT ", %" G_GINT64_FORMAT "\n", headers_begin, headers_end); marker = g_mime_parser_get_mbox_marker (parser); g_mime_stream_printf (summary, "%s\n", marker); if ((list = g_mime_message_get_from (message)) != NULL && internet_address_list_length (list) > 0) { buf = internet_address_list_to_string (list, format, FALSE); g_mime_stream_printf (summary, "From: %s\n", buf); g_free (buf); } if ((list = g_mime_message_get_addresses (message, GMIME_ADDRESS_TYPE_TO)) != NULL && internet_address_list_length (list) > 0) { buf = internet_address_list_to_string (list, format, FALSE); g_mime_stream_printf (summary, "To: %s\n", buf); g_free (buf); } if (!(subject = g_mime_message_get_subject (message))) subject = ""; g_mime_stream_printf (summary, "Subject: %s\n", subject); if (!(date = g_mime_message_get_date (message))) { date = g_date_time_new_from_unix_utc (0); } else { g_date_time_ref (date); } buf = g_mime_utils_header_format_date (date); g_mime_stream_printf (summary, "Date: %s\n", buf); g_date_time_unref (date); g_free (buf); body = g_mime_message_get_mime_part (message); print_mime_struct (summary, body, 0); g_mime_stream_write (summary, "\n", 1); if (mbox) { if (nmsg > 0) g_mime_stream_write (mbox, "\n", 1); g_mime_stream_printf (mbox, "%s\n", marker); g_mime_object_write_to_stream ((GMimeObject *) message, format, mbox); } g_object_unref (message); g_free (marker); nmsg++; } }
static void gcal_event_widget_set_event_tooltip (GcalEventWidget *self, GcalEvent *event) { g_autoptr (GDateTime) tooltip_start, tooltip_end; g_autofree gchar *start, *end, *escaped_summary; GString *tooltip_mesg; gboolean allday, multiday, is_ltr; guint description_len; tooltip_mesg = g_string_new (NULL); escaped_summary = g_markup_escape_text (gcal_event_get_summary (event), -1); g_string_append_printf (tooltip_mesg, "<b>%s</b>", escaped_summary); allday = gcal_event_get_all_day (event); multiday = gcal_event_is_multiday (event); is_ltr = gtk_widget_get_direction (GTK_WIDGET (self)) != GTK_TEXT_DIR_RTL; if (allday) { /* All day events span from [ start, end - 1 day ] */ tooltip_start = g_date_time_ref (gcal_event_get_date_start (event)); tooltip_end = g_date_time_add_days (gcal_event_get_date_end (event), -1); if (multiday) { start = g_date_time_format (tooltip_start, "%x"); end = g_date_time_format (tooltip_end, "%x"); } else { start = g_date_time_format (tooltip_start, "%x"); end = NULL; } } else { tooltip_start = g_date_time_to_local (gcal_event_get_date_start (event)); tooltip_end = g_date_time_to_local (gcal_event_get_date_end (event)); if (multiday) { if (self->clock_format_24h) { if (is_ltr) { start = g_date_time_format (tooltip_start, "%x %R"); end = g_date_time_format (tooltip_end, "%x %R"); } else { start = g_date_time_format (tooltip_start, "%R %x"); end = g_date_time_format (tooltip_end, "%R %x"); } } else { if (is_ltr) { start = g_date_time_format (tooltip_start, "%x %I:%M %P"); end = g_date_time_format (tooltip_end, "%x %I:%M %P"); } else { start = g_date_time_format (tooltip_start, "%P %M:%I %x"); end = g_date_time_format (tooltip_end, "%P %M:%I %x"); } } } else { if (self->clock_format_24h) { if (is_ltr) { start = g_date_time_format (tooltip_start, "%x, %R"); end = g_date_time_format (tooltip_end, "%R"); } else { start = g_date_time_format (tooltip_start, "%R ,%x"); end = g_date_time_format (tooltip_end, "%R"); } } else { if (is_ltr) { start = g_date_time_format (tooltip_start, "%x, %I:%M %P"); end = g_date_time_format (tooltip_end, "%I:%M %P"); } else { start = g_date_time_format (tooltip_start, "%P %M:%I ,%x"); end = g_date_time_format (tooltip_end, "%P %M:%I"); } } } } if (allday && !multiday) { g_string_append_printf (tooltip_mesg, "\n%s", start); } else { g_string_append_printf (tooltip_mesg, "\n%s - %s", is_ltr ? start : end, is_ltr ? end : start); } /* Append event location */ if (g_utf8_strlen (gcal_event_get_location (event), -1) > 0) { g_autofree gchar *escaped_location; escaped_location = g_markup_escape_text (gcal_event_get_location (event), -1); g_string_append (tooltip_mesg, "\n\n"); /* Translators: %s is the location of the event (e.g. "Downtown, 3rd Avenue") */ g_string_append_printf (tooltip_mesg, _("At %s"), escaped_location); } description_len = g_utf8_strlen (gcal_event_get_description (event), -1); /* Truncate long descriptions at a white space and ellipsize */ if (description_len > 0) { g_autofree gchar *escaped_description; GString *tooltip_desc; tooltip_desc = g_string_new (gcal_event_get_description (event)); /* If the description is larger than DESC_MAX_CHAR, ellipsize it */ if (description_len > DESC_MAX_CHAR) { g_string_truncate (tooltip_desc, DESC_MAX_CHAR - 1); g_string_append (tooltip_desc, "…"); } escaped_description = g_markup_escape_text (tooltip_desc->str, -1); g_string_append_printf (tooltip_mesg, "\n\n%s", escaped_description); g_string_free (tooltip_desc, TRUE); } gtk_widget_set_tooltip_markup (GTK_WIDGET (self), tooltip_mesg->str); g_string_free (tooltip_mesg, TRUE); }
static void set_property(GObject* obj, guint prop, const GValue* val, GParamSpec* pspec) { GtChannel* self = GT_CHANNEL(obj); GtChannelPrivate* priv = gt_channel_get_instance_private(self); switch (prop) { case PROP_ID: priv->id = g_value_get_int64(val); break; case PROP_STATUS: g_free(priv->status); priv->status = g_value_dup_string(val); break; case PROP_NAME: g_free(priv->name); priv->name = g_value_dup_string(val); break; case PROP_DISPLAY_NAME: g_free(priv->display_name); priv->display_name = g_value_dup_string(val); break; case PROP_GAME: g_free(priv->game); priv->game = utils_value_dup_string_allow_null(val); break; case PROP_PREVIEW_URL: g_free(priv->preview_url); priv->preview_url = g_value_dup_string(val); break; case PROP_VIDEO_BANNER_URL: g_free(priv->video_banner_url); priv->video_banner_url = g_value_dup_string(val); break; case PROP_VIEWERS: priv->viewers = g_value_get_int64(val); break; case PROP_STREAM_STARTED_TIME: if (priv->stream_started_time) g_date_time_unref(priv->stream_started_time); priv->stream_started_time = g_value_get_pointer(val); if (priv->stream_started_time) g_date_time_ref(priv->stream_started_time); break; case PROP_FAVOURITED: priv->favourited = g_value_get_boolean(val); break; case PROP_ONLINE: priv->online = g_value_get_boolean(val); break; case PROP_AUTO_UPDATE: priv->auto_update = g_value_get_boolean(val); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, prop, pspec); } }