annotate src/crossfade/monitor.c @ 3059:2e241e90494a

Import work in progress xmms-crossfade rewrite.
author William Pitcock <nenolod@atheme.org>
date Fri, 24 Apr 2009 05:57:35 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3059
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
1 /*
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
2 * XMMS Crossfade Plugin
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
3 * Copyright (C) 2000-2007 Peter Eisenlohr <peter@eisenlohr.org>
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
4 *
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
5 * based on the original OSS Output Plugin
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
6 * Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
7 *
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
11 * (at your option) any later version.
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
12 *
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
16 * GNU General Public License for more details.
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
17 *
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
21 * USA.
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
22 */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
23
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
24 #ifdef HAVE_CONFIG_H
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
25 # include "config.h"
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
26 #endif
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
27
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
28 #include <string.h>
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
29 #include <gtk/gtk.h>
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
30
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
31 #include "monitor.h"
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
32 #include "configure.h"
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
33 #include "cfgutil.h"
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
34 #include "crossfade.h"
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
35
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
36 #include "interface-2.0.h"
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
37 #include "support-2.0.h"
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
38
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
39 extern MUTEX buffer_mutex;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
40
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
41 GtkWidget *monitor_win = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
42 GtkWidget *monitor_display_drawingarea;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
43 GtkEntry *monitor_output_entry;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
44 GtkProgress *monitor_output_progress;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
45
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
46 static GtkLabel *monitor_position_label;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
47 static GtkLabel *monitor_total_label;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
48 static GtkLabel *monitor_left_label;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
49 static GtkLabel *monitor_output_time_label;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
50 static GtkLabel *monitor_output_time_sep;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
51 static GtkLabel *monitor_written_time_label;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
52
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
53 static gchar *default_position_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
54 static gchar *default_total_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
55 static gchar *default_left_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
56 static gchar *default_output_time_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
57 static gchar *default_written_time_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
58
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
59 static gboolean monitor_active = FALSE;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
60 static guint monitor_tag;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
61 static gint monitor_output_max;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
62 static gint monitor_closing;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
63
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
64 #define RUNNING 0
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
65 #define CLOSING 1
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
66 #define CLOSED 2
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
67
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
68 #define SMOD(x,n) (((x)<0)?((n)-(x))%(n):((x)%(n)))
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
69
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
70
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
71 static void
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
72 draw_wrapped(GtkWidget * widget, gint pos, gint width, GdkGC * gc)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
73 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
74 GdkDrawable *win = widget->window;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
75
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
76 gint ww = widget->allocation.width;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
77 gint wh = widget->allocation.height;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
78
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
79 if (width <= 0)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
80 return;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
81
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
82 if (width < ww)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
83 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
84 gint x = SMOD(pos, ww);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
85 if ((x + width) >= ww)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
86 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
87 gdk_draw_rectangle(win, gc, TRUE, x, 0, ww - x, wh);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
88 gdk_draw_rectangle(win, gc, TRUE, 0, 0, width - (ww - x), wh);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
89 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
90 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
91 gdk_draw_rectangle(win, gc, TRUE, x, 0, width, wh);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
92 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
93 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
94 gdk_draw_rectangle(win, gc, TRUE, 0, 0, ww, wh);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
95 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
96
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
97 gboolean
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
98 on_monitor_display_drawingarea_expose_event(GtkWidget * widget, GdkEventExpose * event, gpointer user_data)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
99 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
100 if (buffer && buffer->size && output_opened)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
101 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
102 gint ww = widget->allocation.width;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
103
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
104 gint x1 = 0;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
105 gint x2 = buffer->used;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
106 gint x3 = buffer->used + buffer->mix;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
107 gint x4 = buffer->size;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
108
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
109 x1 = (gint64) (x1 + buffer->rd_index) * ww / buffer->size;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
110 x2 = (gint64) (x2 + buffer->rd_index) * ww / buffer->size;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
111 x3 = (gint64) (x3 + buffer->rd_index) * ww / buffer->size;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
112 x4 = (gint64) (x4 + buffer->rd_index) * ww / buffer->size;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
113
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
114 draw_wrapped(widget, x1, x2 - x1, widget->style->fg_gc[GTK_STATE_NORMAL]);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
115 draw_wrapped(widget, x2, x3 - x2, widget->style->white_gc);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
116 draw_wrapped(widget, x3, x4 - x3, widget->style->bg_gc[GTK_STATE_NORMAL]);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
117 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
118 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
119 gdk_window_clear_area(widget->window, event->area.x, event->area.y, event->area.width, event->area.height);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
120
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
121 return TRUE;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
122 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
123
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
124 gboolean
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
125 on_monitor_win_delete_event(GtkWidget * widget, GdkEvent * event, gpointer user_data)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
126 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
127 /* V0.1.1 20000618: removed, didn't make much sense since it wasn't saved */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
128 /* if (config) config->enable_monitor = FALSE; */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
129 if (default_position_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
130 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
131 g_free(default_position_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
132 default_position_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
133 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
134 if (default_total_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
135 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
136 g_free(default_total_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
137 default_total_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
138 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
139 if (default_left_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
140 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
141 g_free(default_left_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
142 default_left_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
143 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
144 if (default_output_time_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
145 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
146 g_free(default_output_time_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
147 default_output_time_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
148 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
149 if (default_written_time_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
150 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
151 g_free(default_written_time_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
152 default_written_time_str = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
153 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
154 return (FALSE); /* FALSE: destroy window */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
155 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
156
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
157 void
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
158 xfade_check_monitor_win()
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
159 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
160 gchar *str;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
161
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
162 if (config->enable_monitor)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
163 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
164 if (!monitor_win && !(monitor_win = create_monitor_win()))
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
165 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
166 DEBUG(("[crossfade] check_monitor_win: error creating window!\n"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
167 return;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
168 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
169 #if 0
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
170 if (!GDK_IS_WINDOW(monitor_win))
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
171 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
172 DEBUG(("[crossfade] check_monitor_win: GDK_IS_WINDOW(monitor_win) failed!\n"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
173 DEBUG(("[crossfade] check_monitor_win: probably running in headless mode!\n"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
174 monitor_win = NULL;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
175 return;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
176 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
177 #endif
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
178 /* automatically set monitor_win to NULL when window is destroyed */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
179 gtk_signal_connect(GTK_OBJECT(monitor_win), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &monitor_win);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
180
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
181 /* show window */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
182 gtk_widget_hide(GTK_WIDGET(lookup_widget(monitor_win, "monitor_seekeof_button")));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
183 gtk_widget_show(monitor_win);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
184
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
185 /* get pointers to widgets (used by crossfade.c to update the monitor) */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
186 monitor_display_drawingarea = lookup_widget(monitor_win, "monitor_display_drawingarea");
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
187 monitor_output_progress = GTK_PROGRESS(lookup_widget(monitor_win, "monitor_output_progress"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
188 monitor_position_label = GTK_LABEL (lookup_widget(monitor_win, "monpos_position_label"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
189 monitor_total_label = GTK_LABEL (lookup_widget(monitor_win, "monpos_total_label"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
190 monitor_left_label = GTK_LABEL (lookup_widget(monitor_win, "monpos_left_label"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
191 monitor_output_time_label = GTK_LABEL (lookup_widget(monitor_win, "monpos_output_time_label"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
192 monitor_output_time_sep = GTK_LABEL (lookup_widget(monitor_win, "monpos_output_time_separator_label"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
193 monitor_written_time_label = GTK_LABEL (lookup_widget(monitor_win, "monpos_written_time_label"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
194
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
195 /* get default strings (displayed when monitor is stopped) */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
196 if (!default_position_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
197 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
198 gtk_label_get(monitor_position_label, &str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
199 default_position_str = g_strdup(str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
200 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
201 if (!default_total_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
202 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
203 gtk_label_get(monitor_total_label, &str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
204 default_total_str = g_strdup(str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
205 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
206 if (!default_left_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
207 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
208 gtk_label_get(monitor_left_label, &str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
209 default_left_str = g_strdup(str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
210 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
211 if (!default_output_time_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
212 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
213 gtk_label_get(monitor_output_time_label, &str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
214 default_output_time_str = g_strdup(str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
215 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
216 if (!default_written_time_str)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
217 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
218 gtk_label_get(monitor_written_time_label, &str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
219 default_written_time_str = g_strdup(str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
220 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
221
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
222 /* force gtk_progress_configure */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
223 monitor_output_max = 0;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
224 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
225 else if (monitor_win)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
226 gtk_widget_destroy(monitor_win);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
227 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
228
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
229 void
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
230 label_set_text(GtkLabel * label, gchar * text)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
231 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
232 gchar *old_text;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
233 gtk_label_get(label, &old_text);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
234 if (strcmp(old_text, text) == 0)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
235 return;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
236 gtk_label_set_text(label, text);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
237 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
238
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
239 gint
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
240 xfade_update_monitor(gpointer userdata)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
241 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
242 GdkRectangle update_rect;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
243
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
244 /* HACK: (see xfade_stop_monitor() below) */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
245 if (monitor_closing == CLOSED)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
246 return TRUE;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
247
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
248 if (monitor_closing == CLOSING)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
249 monitor_closing = CLOSED;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
250
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
251 if (!monitor_win)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
252 return TRUE;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
253
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
254 /* lock buffer (only if we need to) */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
255 if (monitor_closing != CLOSED)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
256 MUTEX_LOCK(&buffer_mutex);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
257
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
258 gint output_time = the_op->output_time();
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
259 gint written_time = the_op->written_time();
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
260 gint output_used = written_time - output_time;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
261
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
262 /*** Mixing Buffer ***/
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
263 update_rect.x = 0;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
264 update_rect.y = 0;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
265 update_rect.width = monitor_display_drawingarea->allocation.width;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
266 update_rect.height = monitor_display_drawingarea->allocation.height;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
267
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
268 if (monitor_closing == CLOSED)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
269 gdk_window_clear_area(monitor_display_drawingarea->window,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
270 update_rect.x, update_rect.y,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
271 update_rect.width, update_rect.height);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
272 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
273 gtk_widget_draw(monitor_display_drawingarea, &update_rect);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
274
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
275 /*** Output Buffer ***/
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
276 if (monitor_closing == CLOSED)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
277 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
278 gtk_progress_configure(monitor_output_progress, 0, 0, 0);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
279 gtk_progress_bar_set_text(GTK_PROGRESS_BAR(monitor_output_progress), " ");
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
280 monitor_output_max = 0;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
281 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
282 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
283 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
284 if (output_opened && the_op->buffer_playing())
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
285 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
286 if (output_used < 0)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
287 output_used = 0;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
288
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
289 if (output_used > monitor_output_max)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
290 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
291 monitor_output_max = output_used;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
292 gtk_progress_configure(monitor_output_progress,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
293 output_used, 0, monitor_output_max);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
294 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
295 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
296 gtk_progress_set_value(monitor_output_progress, output_used);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
297
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
298 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
299 gchar temp[32];
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
300 g_snprintf(temp, sizeof(temp), "%d", output_used);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
301 gtk_progress_bar_set_text(GTK_PROGRESS_BAR(monitor_output_progress), temp);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
302 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
303 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
304 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
305 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
306 gtk_progress_configure(monitor_output_progress, 0, 0, 0);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
307 gtk_progress_bar_set_text(GTK_PROGRESS_BAR(monitor_output_progress), " ");
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
308 monitor_output_max = 0;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
309 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
310 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
311
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
312 /*** Position ***/
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
313 if (!xfplayer_input_playing() || (monitor_closing == CLOSED))
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
314 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
315 gtk_label_set_text(monitor_position_label, default_position_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
316 gtk_label_set_text(monitor_total_label, default_total_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
317 gtk_label_set_text(monitor_left_label, default_left_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
318 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
319 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
320 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
321 gchar buffer[32];
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
322 gint position = output_time - output_offset;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
323 gint total = xfplaylist_current_length();
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
324 gint left = total - position;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
325
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
326 /* position */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
327 g_snprintf(buffer, sizeof(buffer),
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
328 position < 0 ? "-%d:%02d.%01d" : "%d:%02d.%01d",
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
329 ABS(position) / 60000,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
330 ABS(position) / 1000 % 60,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
331 ABS(position) / 100 % 10);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
332 gtk_label_set_text(monitor_position_label, buffer);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
333
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
334 /* total */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
335 if (total > 0)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
336 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
337 g_snprintf(buffer, sizeof(buffer),
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
338 "%d:%02d",
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
339 total / 60000,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
340 total / 1000 % 60);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
341 gtk_label_set_text(monitor_total_label, buffer);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
342 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
343 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
344 label_set_text(monitor_total_label, default_total_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
345
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
346 /* left */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
347 if (total > 0)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
348 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
349 g_snprintf(buffer, sizeof(buffer),
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
350 left < 0 ? "-%d:%02d" : "%d:%02d",
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
351 ABS(left) / 60000,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
352 ABS(left) / 1000 % 60);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
353 gtk_label_set_text(monitor_left_label, buffer);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
354 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
355 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
356 label_set_text(monitor_left_label, default_left_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
357 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
358
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
359
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
360 /* Output Plugin position */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
361 if (monitor_closing == CLOSED)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
362 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
363 gtk_widget_hide(GTK_WIDGET(monitor_output_time_label));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
364 gtk_widget_hide(GTK_WIDGET(monitor_output_time_sep));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
365 gtk_label_set_text(monitor_written_time_label, default_written_time_str);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
366 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
367 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
368 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
369 gchar buffer[32];
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
370
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
371 /* check for output plugin bug -- diff should always be 0 */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
372 gint diff = written_time - (gint) (output_streampos * 1000 / OUTPUT_BPS);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
373 if (diff)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
374 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
375 gtk_widget_show(GTK_WIDGET(monitor_output_time_label));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
376 gtk_widget_show(GTK_WIDGET(monitor_output_time_sep));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
377 g_snprintf(buffer, sizeof(buffer),
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
378 output_time < 0 ? "-%d:%02d.%03d" : "%d:%02d.%03d",
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
379 ABS(diff) / 60000,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
380 ABS(diff) / 1000 % 60,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
381 ABS(diff) % 1000);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
382 gtk_label_set_text(monitor_output_time_label, buffer);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
383 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
384 else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
385 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
386 gtk_widget_hide(GTK_WIDGET(monitor_output_time_label));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
387 gtk_widget_hide(GTK_WIDGET(monitor_output_time_sep));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
388 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
389
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
390 /* written_time */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
391 g_snprintf(buffer, sizeof(buffer),
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
392 written_time < 0 ? "-%d:%02d:%02d.%01d" : "%d:%02d:%02d.%01d",
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
393 ABS(written_time) / 3600000,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
394 ABS(written_time) / 60000 % 60,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
395 ABS(written_time) / 1000 % 60,
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
396 ABS(written_time) / 100 % 10);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
397 gtk_label_set_text(monitor_written_time_label, buffer);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
398 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
399
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
400 /* unlock buffer */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
401 if (monitor_closing != CLOSED)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
402 MUTEX_UNLOCK(&buffer_mutex);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
403
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
404 return TRUE; /* continue calling this function */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
405 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
406
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
407 void
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
408 xfade_start_monitor()
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
409 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
410 if (monitor_active)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
411 return;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
412
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
413 monitor_output_max = 0;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
414 monitor_closing = RUNNING;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
415 monitor_active = TRUE;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
416 monitor_tag = gtk_timeout_add(UPDATE_INTERVAL, xfade_update_monitor, NULL);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
417 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
418
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
419 void
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
420 xfade_stop_monitor()
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
421 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
422 gint max_wait = UPDATE_INTERVAL / 10 + 1 + 1; /* round up / add safety */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
423
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
424 if (!monitor_active)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
425 return;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
426
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
427 /* HACK, ugly HACK: force a final call of xfade_update_monitor */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
428 monitor_closing = CLOSING;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
429 while ((monitor_closing == CLOSING) && (max_wait-- > 0))
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
430 xfade_usleep(10000);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
431
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
432 if (max_wait <= 0)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
433 DEBUG(("[crossfade] stop_monitor: timeout!\n"));
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
434
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
435 /* stop calling xfade_update_monitor() */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
436 gtk_timeout_remove(monitor_tag);
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
437 monitor_active = FALSE;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
438 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
439
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
440 #if defined(HAVE_INPUT_SEEK)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
441 void input_seek(int time); /* XMMS */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
442 void
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
443 on_monitor_seekeof_button_clicked(GtkButton *button, gpointer user_data)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
444 {
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
445 gint total = xfplaylist_current_length();
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
446 gint offset = xfade_cfg_offset(&config->fc[FADE_CONFIG_XFADE])
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
447 - config->songchange_timeout;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
448 gint position = total + offset - 2500;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
449
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
450 if (position < 0)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
451 return;
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
452
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
453 DEBUG(("[crossfade] monitor_seek_eof: total=%d offset=%d position=%d\n", total, offset, position))
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
454
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
455 input_seek(position/1000); /* XMMS */
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
456 }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
457 #else
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
458 void on_monitor_seekeof_button_clicked(GtkButton *button, gpointer user_data)
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
459 { }
2e241e90494a Import work in progress xmms-crossfade rewrite.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
460 #endif