remove debug
[sgc.git] / singleword / cairo.c
blob769aab3db3985fb7066d8b0ab49ce2c132ca75df
1 #include "singleword.h"
3 void drawPitchTier(cairo_t *cr, gchar *filename, gint width, gint height, gdouble top) {
4 gchar *contents;
5 gsize length;
6 if (g_file_get_contents(filename, &contents, &length, NULL) != TRUE) {
7 } else {
8 gdouble scalex = 0, scaley = 0;
9 gdouble fromx = 0;
10 gdouble middlex = 0;
11 gdouble endx = 0;
12 gdouble fromy = 0;
13 gdouble middley = 0;
14 gsize i = 0;
15 gsize j = 0;
16 gsize m = 0;
17 int pointloc = 0;
18 while (i < length) {
19 if (contents[i] == '\n') {
20 gchar * this = g_strndup(&contents[m], i-m);
21 switch ( j ) {
22 case 0:
23 case 1:
24 case 2:
25 case 3:
26 fromx = g_strtod(this, NULL);
27 j++;
28 break;
29 case 4:
30 endx = g_strtod(this, NULL);
31 scalex = width / endx;
32 scaley = height / top;
33 cairo_move_to(cr, fromx*scalex, 0);
34 case 5:
35 j++;
36 break;
37 default:
38 if (pointloc == 0) {
39 middlex = g_strtod(this, NULL);
41 pointloc = 1;
42 } else {
43 gdouble to;
44 middley = g_strtod(this, NULL);
45 pointloc = 0;
46 to = height - (middley*scaley);
48 if ((middlex - fromx) < 0.015 && fromy != -1 && middley != -1) {
49 cairo_line_to(cr, middlex*scalex, to);
50 } else {
51 cairo_move_to(cr, middlex*scalex, to);
53 fromx = middlex;
54 fromy = middley;
58 g_free(this);
59 m = i+1;
61 i++;
63 cairo_stroke (cr);