+ for (i = 0; i < IMAGE_OSD_COUNT; i++)
+ {
+ if (osd_icons[i].reset)
+ {
+ osd->icon_time[i] = 0;
+ }
+ }
+}
+
+static void image_osd_icons_update(OverlayStateData *osd)
+{
+ gint i;
+
+ for (i = 0; i < IMAGE_OSD_COUNT; i++)
+ {
+ if (osd->icon_time[i] > 0)
+ {
+ image_osd_icon_show(osd, i);
+ }
+ else
+ {
+ image_osd_icon_hide(osd, i);
+ }
+ }
+}
+
+static void image_osd_icons_hide(OverlayStateData *osd)
+{
+ gint i;
+
+ for (i = 0; i < IMAGE_OSD_COUNT; i++)
+ {
+ image_osd_icon_hide(osd, i);
+ }
+}
+
+static void image_osd_info_show(OverlayStateData *osd, GdkPixbuf *pixbuf)
+{
+ if (osd->ovl_info == 0)
+ {
+ osd->ovl_info = image_overlay_add(osd->imd, pixbuf, osd->x, osd->y, OVL_RELATIVE);
+ }
+ else
+ {
+ image_overlay_set(osd->imd, osd->ovl_info, pixbuf, osd->x, osd->y);
+ }
+}
+
+static void image_osd_info_hide(OverlayStateData *osd)
+{
+ if (osd->ovl_info == 0) return;
+
+ image_overlay_remove(osd->imd, osd->ovl_info);
+ osd->ovl_info = 0;
+}
+
+static gboolean image_osd_update_cb(gpointer data)
+{
+ OverlayStateData *osd = data;