projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Installer now handles i18n of the Desktop folder. Running the installer or uninstalle...
[ardour.git]
/
gtk2_ardour
/
canvas-waveview.c
diff --git
a/gtk2_ardour/canvas-waveview.c
b/gtk2_ardour/canvas-waveview.c
index f3a3117622528551b51875959b28ea9562f64b3d..1e28a2733090f00863c221fa8173349125e3a30f 100644
(file)
--- a/
gtk2_ardour/canvas-waveview.c
+++ b/
gtk2_ardour/canvas-waveview.c
@@
-24,6
+24,7
@@
#include <cairo.h>
#include <string.h>
#include <limits.h>
#include <cairo.h>
#include <string.h>
#include <limits.h>
+#include <unistd.h>
#include "ardour/dB.h"
#include "ardour/dB.h"
@@
-31,6
+32,12
@@
#include "canvas-waveview.h"
#include "rgb_macros.h"
#include "canvas-waveview.h"
#include "rgb_macros.h"
+/* POSIX guarantees casting between void* and function pointers, ISO C doesn't
+ * We can work around warnings by going one step deeper in our casts
+ */
+#ifdef _POSIX_VERSION
+#define POSIX_FUNC_PTR_CAST(type, object) *((type*) &(object))
+#endif // _POSIX_VERSION
extern void c_stacktrace();
extern void c_stacktrace();
@@
-751,6
+758,7
@@
gnome_canvas_waveview_set_property (GObject *object,
item = GNOME_CANVAS_ITEM (object);
waveview = GNOME_CANVAS_WAVEVIEW (object);
item = GNOME_CANVAS_ITEM (object);
waveview = GNOME_CANVAS_WAVEVIEW (object);
+ void * ptr;
switch (prop_id) {
case PROP_DATA_SRC:
gnome_canvas_waveview_set_data_src (waveview, g_value_get_pointer(value));
switch (prop_id) {
case PROP_DATA_SRC:
gnome_canvas_waveview_set_data_src (waveview, g_value_get_pointer(value));
@@
-763,26
+771,26
@@
gnome_canvas_waveview_set_property (GObject *object,
break;
case PROP_LENGTH_FUNCTION:
break;
case PROP_LENGTH_FUNCTION:
- waveview->length_function = (gulong (*)(void*)) g_value_get_pointer(value);
+ ptr = g_value_get_pointer(value);
+ waveview->length_function = POSIX_FUNC_PTR_CAST(waveview_length_function_t, ptr);
redraw = TRUE;
break;
case PROP_SOURCEFILE_LENGTH_FUNCTION:
redraw = TRUE;
break;
case PROP_SOURCEFILE_LENGTH_FUNCTION:
- waveview->sourcefile_length_function = (gulong (*)(void*,double)) g_value_get_pointer(value);
+ ptr = g_value_get_pointer(value);
+ waveview->sourcefile_length_function = POSIX_FUNC_PTR_CAST(waveview_sourcefile_length_function_t, ptr);
redraw = TRUE;
break;
case PROP_PEAK_FUNCTION:
redraw = TRUE;
break;
case PROP_PEAK_FUNCTION:
- waveview->peak_function =
- (void (*)(void*,gulong,gulong,gulong,gpointer,guint32,double))
- g_value_get_pointer(value);
+ ptr = g_value_get_pointer(value);
+ waveview->peak_function = POSIX_FUNC_PTR_CAST(waveview_peak_function_t, ptr);
redraw = TRUE;
break;
case PROP_GAIN_FUNCTION:
redraw = TRUE;
break;
case PROP_GAIN_FUNCTION:
- waveview->gain_curve_function =
- (void (*)(void *arg, double start, double end, float* vector, gint64 veclen))
- g_value_get_pointer(value);
+ ptr = g_value_get_pointer(value);
+ waveview->gain_curve_function = POSIX_FUNC_PTR_CAST(waveview_gain_curve_function_t, ptr);
redraw = TRUE;
break;
redraw = TRUE;
break;
@@
-950,19
+958,19
@@
gnome_canvas_waveview_get_property (
break;
case PROP_LENGTH_FUNCTION:
break;
case PROP_LENGTH_FUNCTION:
- g_value_set_pointer(value,
(void*) waveview->length_function
);
+ g_value_set_pointer(value,
POSIX_FUNC_PTR_CAST(void*, waveview->length_function)
);
break;
case PROP_SOURCEFILE_LENGTH_FUNCTION:
break;
case PROP_SOURCEFILE_LENGTH_FUNCTION:
- g_value_set_pointer(value,
(void*) waveview->sourcefile_length_function
);
+ g_value_set_pointer(value,
POSIX_FUNC_PTR_CAST(void*, waveview->sourcefile_length_function)
);
break;
case PROP_PEAK_FUNCTION:
break;
case PROP_PEAK_FUNCTION:
- g_value_set_pointer(value,
(void*) waveview->peak_function
);
+ g_value_set_pointer(value,
POSIX_FUNC_PTR_CAST(void*, waveview->peak_function)
);
break;
case PROP_GAIN_FUNCTION:
break;
case PROP_GAIN_FUNCTION:
- g_value_set_pointer(value,
(void*) waveview->gain_curve_function
);
+ g_value_set_pointer(value,
POSIX_FUNC_PTR_CAST(void*, waveview->gain_curve_function)
);
break;
case PROP_GAIN_SRC:
break;
case PROP_GAIN_SRC:
@@
-1610,12
+1618,11
@@
gnome_canvas_waveview_render (GnomeCanvasItem *item,
}
}
}
}
- if (!waveview->rectified && waveview->zero_line) {
+ if (!waveview->rectified && waveview->zero_line
&& waveview->height >= 100
) {
// Paint zeroline.
// Paint zeroline.
- //PAINT_HORIZA(buf, waveview->zero_r, waveview->zero_g, waveview->zero_b, waveview->zero_a, begin, endi-1, origin );
unsigned char zero_r, zero_g, zero_b, zero_a;
unsigned char zero_r, zero_g, zero_b, zero_a;
- UINT_TO_RGBA( waveview->zero_color, &zero_r, &zero_g, &zero_b, &zero_a
);
+ UINT_TO_RGBA( waveview->zero_color, &zero_r, &zero_g, &zero_b, &zero_a);
int zeroline_y = (int) rint ((item->y1 + origin) * item->canvas->pixels_per_unit);
PAINT_HORIZA(buf, zero_r, zero_g, zero_b, zero_a, zbegin, zend, zeroline_y);
}
int zeroline_y = (int) rint ((item->y1 + origin) * item->canvas->pixels_per_unit);
PAINT_HORIZA(buf, zero_r, zero_g, zero_b, zero_a, zbegin, zend, zeroline_y);
}