Move the sources to trunk
[opencv] / interfaces / ch / c / handmade / highgui / cvCreateTrackbar_chdl.c
1 #include <cv.h>
2 #include <highgui.h>
3 #include <ch.h>
4
5 ////////////////////// create trackbar /////////////////////
6 static ChInterp_t interp;
7 static void* cvCreateTrackbar_chdl_callback_ptr[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
8
9 static void cvCreateTrackbar_chdl_callback0(int arg) {
10   Ch_CallFuncByAddr(interp,cvCreateTrackbar_chdl_callback_ptr[0],NULL,arg);
11 }
12
13 static void cvCreateTrackbar_chdl_callback1(int arg) {
14   Ch_CallFuncByAddr(interp,cvCreateTrackbar_chdl_callback_ptr[1],NULL,arg);
15 }
16
17 static void cvCreateTrackbar_chdl_callback2(int arg) {
18   Ch_CallFuncByAddr(interp,cvCreateTrackbar_chdl_callback_ptr[2],NULL,arg);
19 }
20
21 static void cvCreateTrackbar_chdl_callback3(int arg) {
22   Ch_CallFuncByAddr(interp,cvCreateTrackbar_chdl_callback_ptr[3],NULL,arg);
23 }
24
25 static void cvCreateTrackbar_chdl_callback4(int arg) {
26   Ch_CallFuncByAddr(interp,cvCreateTrackbar_chdl_callback_ptr[4],NULL,arg);
27 }
28
29 static void cvCreateTrackbar_chdl_callback5(int arg) {
30   Ch_CallFuncByAddr(interp,cvCreateTrackbar_chdl_callback_ptr[5],NULL,arg);
31 }
32
33 static void cvCreateTrackbar_chdl_callback6(int arg) {
34   Ch_CallFuncByAddr(interp,cvCreateTrackbar_chdl_callback_ptr[6],NULL,arg);
35 }
36
37 static void cvCreateTrackbar_chdl_callback7(int arg) {
38   Ch_CallFuncByAddr(interp,cvCreateTrackbar_chdl_callback_ptr[7],NULL,arg);
39 }
40
41
42 EXPORTCH int cvCreateTrackbar_chdl(void *varg) {
43     static int idx = 0;
44     va_list ap;
45     const char* name;
46     const char* window_name;
47     int* value;
48     int count;
49     CvTrackbarCallback on_notify_ch = NULL, on_notify_c = NULL;
50     int retval;
51
52     Ch_VaStart(interp, ap, varg);
53     name = Ch_VaArg(interp, ap, const char*);
54     window_name = Ch_VaArg(interp, ap, const char*);
55     value = Ch_VaArg(interp, ap, int*);
56     count = Ch_VaArg(interp, ap, int);
57     on_notify_ch = Ch_VaArg(interp, ap, CvTrackbarCallback);
58     if (on_notify_ch != NULL)  {
59         switch( idx )
60         {
61         case 0: on_notify_c = cvCreateTrackbar_chdl_callback0; break;
62         case 1: on_notify_c = cvCreateTrackbar_chdl_callback1; break;
63         case 2: on_notify_c = cvCreateTrackbar_chdl_callback2; break;
64         case 3: on_notify_c = cvCreateTrackbar_chdl_callback3; break;
65         case 4: on_notify_c = cvCreateTrackbar_chdl_callback4; break;
66         case 5: on_notify_c = cvCreateTrackbar_chdl_callback5; break;
67         case 6: on_notify_c = cvCreateTrackbar_chdl_callback6; break;
68         case 7: on_notify_c = cvCreateTrackbar_chdl_callback7; break;
69         }
70         cvCreateTrackbar_chdl_callback_ptr[idx] = (void*)on_notify_ch;
71         idx = (idx + 1) % 8;
72     }
73     retval = cvCreateTrackbar(name, window_name, value, count, on_notify_c);
74     Ch_VaEnd(interp, ap);
75     return retval;
76 }