LiVES  3.0.2
omc-learn.h
Go to the documentation of this file.
1 // omc-learn.h
2 // LiVES (lives-exe)
3 // (c) G. Finch 2003 - 2018
4 // Released under the GPL 3 or later
5 // see file ../COPYING for licensing details
6 
7 #ifndef HAS_LIVES_OMC_LEARN_H
8 #define HAS_LIVES_OMC_LEARN_H
9 
11 #define N_OMC_MACROS 64
12 
14 #define OMC_FP_FIX 4
15 
16 // OMC device interfaces
17 #if HAVE_LINUX_JOYSTICK_H
18 #define OMC_JS_IMPL
19 #endif
20 
21 #define OMC_MIDI_IMPL
22 
23 #ifdef OMC_JS_IMPL
24 char *js_mangle(void);
25 boolean js_open(void);
26 void js_close(void);
27 const char *get_js_filename(void);
28 #endif
29 
30 #ifdef OMC_MIDI_IMPL
31 char *midi_mangle(void);
32 const char *get_midi_filename(void);
33 boolean midi_open(void);
34 void midi_close(void);
35 #endif
36 
37 /* macros */
38 #define UNMATCHED -1
39 #define START_PLAYBACK 0
40 #define STOP_PLAYBACK 1
41 #define CLIP_SELECT 2
42 #define PLAY_FORWARDS 3
43 #define PLAY_BACKWARDS 4
44 #define REVERSE_PLAYBACK 5
45 #define PLAY_FASTER 6
46 #define PLAY_SLOWER 7
47 #define TOGGLE_FREEZE 8
48 #define SET_FRAMERATE 9
49 #define START_RECORDING 10
50 #define STOP_RECORDING 11
51 #define TOGGLE_RECORDING 12
52 #define SWAP_FOREGROUND_BACKGROUND 13
53 #define RESET_EFFECT_KEYS 14
54 #define ENABLE_EFFECT_KEY 15
55 #define DISABLE_EFFECT_KEY 16
56 #define TOGGLE_EFFECT_KEY 17
57 #define SET_PARAMETER_VALUE 18
58 #define NEXT_CLIP_SELECT 19
59 #define PREV_CLIP_SELECT 20
60 #define SET_FPS_RATIO 21
61 #define RETRIGGER_CLIP 22
62 #define NEXT_MODE_CYCLE 23
63 #define PREV_MODE_CYCLE 24
64 #define SET_VPP_PARAMETER_VALUE 25
65 #define OSC_NOTIFY 26
66 
67 /* parameter types */
68 #define OMC_PARAM_INT 1
69 #define OMC_PARAM_DOUBLE 2
70 #define OMC_PARAM_SPECIAL 128
71 
72 typedef struct {
73  char *msg;
74  char *macro_text;
75  char *info_text;
76  char *stype_tags;
77 
78  int nparams;
79 
80  char **pname;
81 
82  int *ptypes;
83 
84  int *mini;
85  int *maxi;
86  int *vali;
87 
88  double *mind;
89  double *maxd;
90  double *vald;
92 
93 typedef struct {
94  char *srch;
95  int macro;
96 
97  int nvars;
98  int *offs0;
99  double *scale;
100  int *offs1;
101 
102  int *min;
103  int *max;
104 
105  boolean *matchp;
106  int *matchi;
107 
108  // enumerated by number of params in target macro
109  int *map;
110  int *fvali;
111  double *fvald;
112 
114 
115  LiVESWidget *treev1;
116  LiVESWidget *treev2;
117 
118  LiVESTreeStore *gtkstore;
119  LiVESTreeStore *gtkstore2;
120 
121  int *tmpvals;
123 
124 typedef struct {
125  LiVESWidget *dialog;
126  LiVESWidget *clear_button;
127  LiVESWidget *del_all_button;
128 
129  int tbl_rows;
131  LiVESWidget *table;
132  LiVESWidget *top_vbox;
133 } omclearn_w;
134 
135 enum {
144 };
145 
146 enum {
151 };
152 
153 #define OMC_INTERNAL 0
154 
155 #define OMC_JS 1
156 #define OMC_JS_AXIS 2
157 #define OMC_JS_BUTTON 3
158 
159 #define OMC_MIDI 128
160 #define OMC_MIDI_NOTE 129
161 #define OMC_MIDI_NOTE_OFF 130
162 #define OMC_MIDI_CONTROLLER 131
163 #define OMC_MIDI_PITCH_BEND 132
164 #define OMC_MIDI_PGM_CHANGE 133
165 
166 // get a macro
167 const lives_omc_macro_t *get_omc_macro(int idx);
168 
170 void on_midi_learn_activate(LiVESMenuItem *, livespointer);
171 
174 boolean omc_process_string(int supertype, const char *string, boolean learn, omclearn_w *omclw);
175 
176 #define OMC_FILE_VSTRING "LiVES OMC map version 1.1"
177 #define OMC_FILE_VSTRING_1_0 "LiVES OMC map version 1.0"
178 
179 #define LIVES_DEVICEMAPS_DIR "devicemaps"
180 
181 boolean has_devicemap(int has_this_macro);
182 void create_devicemap_directory(void);
183 void on_devicemap_save_activate(LiVESMenuItem *, livespointer);
184 void on_devicemap_load_activate(LiVESMenuItem *, livespointer);
185 
186 #include "osc.h"
187 
188 #define OSC_BUF_SIZE 1024
189 #define OSC_MAX_TYPETAGS 64
190 
192 OSCbuf *omc_learner_decode(int type, int index, const char *string);
193 
194 #endif // HAS_LIVES_OMC_LEARN_H
int * offs1
offs to add to params after scale (post bias)
Definition: omc-learn.h:100
char * midi_mangle(void)
Definition: omc-learn.h:72
OSCbuf * omc_learner_decode(int type, int index, const char *string)
decode learnt behaviours
Definition: omc-learn.h:142
Definition: omc-learn.h:137
LiVESWidget * table
Definition: omc-learn.h:131
int * max
max values of input params
Definition: omc-learn.h:103
char * srch
string to match
Definition: omc-learn.h:94
int * map
mapping macro parameters to variables in the input (whether we use a default or a variable) (reverse ...
Definition: omc-learn.h:109
int * matchi
match value
Definition: omc-learn.h:106
Definition: omc-learn.h:147
boolean has_devicemap(int has_this_macro)
double * maxd
Definition: omc-learn.h:89
double * scale
scale for params (unbiased scale)
Definition: omc-learn.h:99
int tbl_rows
Definition: omc-learn.h:129
void on_devicemap_save_activate(LiVESMenuItem *, livespointer)
LiVESWidget * treev2
Definition: omc-learn.h:116
void create_devicemap_directory(void)
int * fvali
defaults, mapping to fixed ints
Definition: omc-learn.h:110
int * min
min values of input params
Definition: omc-learn.h:102
Definition: omc-learn.h:139
int * ptypes
Definition: omc-learn.h:82
LiVESWidget * del_all_button
Definition: omc-learn.h:127
char * stype_tags
setter type tags
Definition: omc-learn.h:76
const char * get_midi_filename(void)
double * mind
Definition: omc-learn.h:88
LiVESWidget * treev1
Definition: omc-learn.h:115
void on_midi_learn_activate(LiVESMenuItem *, livespointer)
start learning MIDI inputs
Definition: omc-learn.h:136
Definition: omc-learn.h:148
Definition: omc-learn.h:140
LiVESWidget * dialog
Definition: omc-learn.h:125
int nvars
number of input params
Definition: omc-learn.h:97
Definition: omc-learn.h:138
boolean midi_open(void)
Definition: omc-learn.h:141
int * vali
Definition: omc-learn.h:86
boolean * matchp
do we additionally need to match this param val in the input ?
Definition: omc-learn.h:105
int * maxi
Definition: omc-learn.h:85
char * info_text
descriptive text
Definition: omc-learn.h:75
LiVESWidget * top_vbox
Definition: omc-learn.h:132
int nparams
Definition: omc-learn.h:78
LiVESTreeStore * gtkstore
Definition: omc-learn.h:118
Definition: omc-learn.h:150
const lives_omc_macro_t * get_omc_macro(int idx)
void on_devicemap_load_activate(LiVESMenuItem *, livespointer)
LiVESTreeStore * gtkstore2
Definition: omc-learn.h:119
int * tmpvals
Definition: omc-learn.h:121
LiVESWidget * clear_button
Definition: omc-learn.h:126
char * macro_text
macro text
Definition: omc-learn.h:74
Definition: omc-learn.h:93
Definition: omc-learn.h:149
char ** pname
Definition: omc-learn.h:80
void midi_close(void)
char * msg
OSC message.
Definition: omc-learn.h:73
int tbl_currow
Definition: omc-learn.h:130
int * mini
Definition: omc-learn.h:84
double * vald
Definition: omc-learn.h:90
Definition: omc-learn.h:124
int * offs0
offs to add to params before scale (pre-bias)
Definition: omc-learn.h:98
double * fvald
defaults, mapping to fixed doubles
Definition: omc-learn.h:111
int macro
macro number this is linked to (or -1)
Definition: omc-learn.h:95
boolean omc_process_string(int supertype, const char *string, boolean learn, omclearn_w *omclw)
Definition: omc-learn.h:143