LiVES 1.4.9

src/omc-learn.h

Go to the documentation of this file.
00001 // omc-learn.h
00002 // LiVES (lives-exe)
00003 // (c) G. Finch 2003 - 2009
00004 // Released under the GPL 3 or later
00005 // see file ../COPYING for licensing details
00006 
00007 #ifndef _HAS_OMC_LEARN_H
00008 #define _HAS_OMC_LEARN_H
00009 
00011 #define N_OMC_MACROS 32
00012 
00014 #define OMC_FP_FIX 4
00015 
00016 // OMC device interfaces
00017 #if HAVE_LINUX_JOYSTICK_H
00018 #define OMC_JS_IMPL
00019 #endif
00020 
00021 #define OMC_MIDI_IMPL
00022 
00023 
00024 #ifdef OMC_JS_IMPL
00025 gchar *js_mangle(void);
00026 gboolean js_open(void);
00027 void js_close(void);
00028 const gchar *get_js_filename(void);
00029 #endif
00030 
00031 #ifdef OMC_MIDI_IMPL
00032 gchar *midi_mangle(void);
00033 const gchar *get_midi_filename(void);
00034 gboolean midi_open(void);
00035 void midi_close(void);
00036 #endif
00037 
00038 /* parameter types */
00039 #define OMC_PARAM_INT 1
00040 #define OMC_PARAM_DOUBLE 2
00041 #define OMC_PARAM_SPECIAL 128 ///< can be int or double, depending on effect type
00042 
00043 typedef struct {
00044   gchar *msg;   
00045   gchar *macro_text;  
00046   gchar *info_text;  
00047   gchar *stype_tags;   
00048 
00049   gint nparams;
00050 
00051   gchar **pname;
00052 
00053   gint *ptypes;
00054 
00055   gint *mini;
00056   gint *maxi;
00057   gint *vali;
00058 
00059   gdouble *mind;
00060   gdouble *maxd;
00061   gdouble *vald;
00062 
00063 
00064 } lives_omc_macro_t;
00065 
00066 
00067 
00068 
00069 typedef struct {
00070   gchar *srch; 
00071   gint macro; 
00072 
00073   gint nvars; 
00074   gint *offs0; 
00075   gdouble *scale; 
00076   gint *offs1; 
00077 
00078   gint *min; 
00079   gint *max; 
00080 
00081   gboolean *matchp; 
00082   gint *matchi; 
00083 
00084   // enumerated by number of params in target macro
00085   gint *map; 
00086   gint *fvali; 
00087   gdouble *fvald; 
00088 
00089 
00091 
00092   GtkWidget *treev1;
00093   GtkWidget *treev2;
00094 
00095   GtkTreeStore *gtkstore;
00096   GtkTreeStore *gtkstore2;
00097 
00098   int *tmpvals;
00099 
00100 } lives_omc_match_node_t;
00101 
00102 
00103 
00104 typedef struct {
00105   GtkWidget *dialog;
00106   GtkWidget *clear_button;
00107   GtkWidget *del_all_button;
00108 
00109   gint tbl_rows;
00110   gint tbl_currow;
00111   GtkWidget *table;
00112   GtkWidget *top_vbox;
00113 } omclearn_w;
00114 
00115 
00116 
00117 enum {
00118   TITLE_COLUMN,
00119   VALUE_COLUMN,
00120   FILTER_COLUMN,
00121   RANGE_COLUMN,
00122   OFFS1_COLUMN,
00123   SCALE_COLUMN,
00124   OFFS2_COLUMN,
00125   NUM_COLUMNS
00126 };
00127  
00128 
00129 enum {
00130   TITLE2_COLUMN,
00131   VALUE2_COLUMN,
00132   NUM2_COLUMNS
00133 };
00134 
00135 
00136 #define OMC_JS 1
00137 #define OMC_JS_AXIS 2
00138 #define OMC_JS_BUTTON 3
00139 
00140 
00141 #define OMC_MIDI 128
00142 #define OMC_MIDI_NOTE 129
00143 #define OMC_MIDI_NOTE_OFF 130
00144 #define OMC_MIDI_CONTROLLER 131
00145 #define OMC_MIDI_PITCH_BEND 132
00146 #define OMC_MIDI_PGM_CHANGE 133
00147 
00149 void on_midi_learn_activate (GtkMenuItem *, gpointer);
00150 
00153 gboolean omc_process_string(gint supertype, const gchar *string, gboolean learn, omclearn_w *omclw);
00154 
00155 
00156 
00157 #define OMC_FILE_VSTRING "LiVES OMC map version 1.0"
00158 
00159 void on_midi_save_activate (GtkMenuItem *, gpointer);
00160 void on_midi_load_activate (GtkMenuItem *, gpointer);
00161 
00162 
00163 #include "osc.h"
00164 
00165 #define OSC_BUF_SIZE 1024
00166 #define OSC_MAX_TYPETAGS 64 
00167 
00169 OSCbuf *omc_learner_decode(gint type, gint index, const gchar *string);
00170 
00171 
00172 #endif // _HAS_OMC_LEARN_H
00173 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines