1 /*
2  * Line6 Linux USB driver - 0.9.1beta
3  *
4  * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
5  *
6  *	This program is free software; you can redistribute it and/or
7  *	modify it under the terms of the GNU General Public License as
8  *	published by the Free Software Foundation, version 2.
9  *
10  */
11 
12 #ifndef LINE6_CONTROL_H
13 #define LINE6_CONTROL_H
14 
15 /**
16    List of PODxt Pro controls.
17    See Appendix C of the "PODxt (Pro) Pilot's Handbook" by Line6.
18    Comments after the number refer to the PODxt Pro firmware version required
19    for this feature.
20 
21    Please *don't* reformat this file since "control.c" is created automatically
22    from "control.h", and this process depends on the exact formatting of the
23    code and the comments below!
24 */
25 
26 /* *INDENT-OFF* */
27 
28 enum {
29 	POD_tweak                          =   1,
30 	POD_wah_position                   =   4,
31 	POD_compression_gain               =   5,  /* device: LINE6_BITS_PODXTALL */
32 	POD_vol_pedal_position             =   7,
33 	POD_compression_threshold          =   9,
34 	POD_pan                            =  10,
35 	POD_amp_model_setup                =  11,
36 	POD_amp_model                      =  12,  /* firmware: 2.0 */
37 	POD_drive                          =  13,
38 	POD_bass                           =  14,
39 	POD_mid                            =  15,  /* device: LINE6_BITS_PODXTALL */
40 	POD_lowmid                         =  15,  /* device: LINE6_BITS_BASSPODXTALL */
41 	POD_treble                         =  16,  /* device: LINE6_BITS_PODXTALL */
42 	POD_highmid                        =  16,  /* device: LINE6_BITS_BASSPODXTALL */
43 	POD_chan_vol                       =  17,
44 	POD_reverb_mix                     =  18,  /* device: LINE6_BITS_PODXTALL */
45 	POD_effect_setup                   =  19,
46 	POD_band_1_frequency               =  20,  /* firmware: 2.0 */
47 	POD_presence                       =  21,  /* device: LINE6_BITS_PODXTALL */
48 	POD_treble__bass                   =  21,  /* device: LINE6_BITS_BASSPODXTALL */
49 	POD_noise_gate_enable              =  22,
50 	POD_gate_threshold                 =  23,
51 	POD_gate_decay_time                =  24,
52 	POD_stomp_enable                   =  25,
53 	POD_comp_enable                    =  26,
54 	POD_stomp_time                     =  27,
55 	POD_delay_enable                   =  28,
56 	POD_mod_param_1                    =  29,
57 	POD_delay_param_1                  =  30,
58 	POD_delay_param_1_note_value       =  31,
59 	POD_band_2_frequency__bass         =  32,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
60 	POD_delay_param_2                  =  33,
61 	POD_delay_volume_mix               =  34,
62 	POD_delay_param_3                  =  35,
63 	POD_reverb_enable                  =  36,  /* device: LINE6_BITS_PODXTALL */
64 	POD_reverb_type                    =  37,  /* device: LINE6_BITS_PODXTALL */
65 	POD_reverb_decay                   =  38,  /* device: LINE6_BITS_PODXTALL */
66 	POD_reverb_tone                    =  39,  /* device: LINE6_BITS_PODXTALL */
67 	POD_reverb_pre_delay               =  40,  /* device: LINE6_BITS_PODXTALL */
68 	POD_reverb_pre_post                =  41,  /* device: LINE6_BITS_PODXTALL */
69 	POD_band_2_frequency               =  42,  /* device: LINE6_BITS_PODXTALL */     /* firmware: 2.0 */
70 	POD_band_3_frequency__bass         =  42,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
71 	POD_wah_enable                     =  43,
72 	POD_modulation_lo_cut              =  44,  /* device: LINE6_BITS_BASSPODXTALL */
73 	POD_delay_reverb_lo_cut            =  45,  /* device: LINE6_BITS_BASSPODXTALL */
74 	POD_volume_pedal_minimum           =  46,  /* device: LINE6_BITS_PODXTALL */     /* firmware: 2.0 */
75 	POD_eq_pre_post                    =  46,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
76 	POD_volume_pre_post                =  47,
77 	POD_di_model                       =  48,  /* device: LINE6_BITS_BASSPODXTALL */
78 	POD_di_delay                       =  49,  /* device: LINE6_BITS_BASSPODXTALL */
79 	POD_mod_enable                     =  50,
80 	POD_mod_param_1_note_value         =  51,
81 	POD_mod_param_2                    =  52,
82 	POD_mod_param_3                    =  53,
83 	POD_mod_param_4                    =  54,
84 	POD_mod_param_5                    =  55,  /* device: LINE6_BITS_BASSPODXTALL */
85 	POD_mod_volume_mix                 =  56,
86 	POD_mod_pre_post                   =  57,
87 	POD_modulation_model               =  58,
88 	POD_band_3_frequency               =  60,  /* device: LINE6_BITS_PODXTALL */     /* firmware: 2.0 */
89 	POD_band_4_frequency__bass         =  60,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
90 	POD_mod_param_1_double_precision   =  61,
91 	POD_delay_param_1_double_precision =  62,
92 	POD_eq_enable                      =  63,  /* firmware: 2.0 */
93 	POD_tap                            =  64,
94 	POD_volume_tweak_pedal_assign      =  65,
95 	POD_band_5_frequency               =  68,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
96 	POD_tuner                          =  69,
97 	POD_mic_selection                  =  70,
98 	POD_cabinet_model                  =  71,
99 	POD_stomp_model                    =  75,
100 	POD_roomlevel                      =  76,
101 	POD_band_4_frequency               =  77,  /* device: LINE6_BITS_PODXTALL */     /* firmware: 2.0 */
102 	POD_band_6_frequency               =  77,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
103 	POD_stomp_param_1_note_value       =  78,
104 	POD_stomp_param_2                  =  79,
105 	POD_stomp_param_3                  =  80,
106 	POD_stomp_param_4                  =  81,
107 	POD_stomp_param_5                  =  82,
108 	POD_stomp_param_6                  =  83,
109 	POD_amp_switch_select              =  84,  /* device: LINE6_BITS_LIVE */
110 	POD_delay_param_4                  =  85,
111 	POD_delay_param_5                  =  86,
112 	POD_delay_pre_post                 =  87,
113 	POD_delay_model                    =  88,  /* device: LINE6_BITS_PODXTALL */
114 	POD_delay_verb_model               =  88,  /* device: LINE6_BITS_BASSPODXTALL */
115 	POD_tempo_msb                      =  89,
116 	POD_tempo_lsb                      =  90,
117 	POD_wah_model                      =  91,  /* firmware: 3.0 */
118 	POD_bypass_volume                  = 105,  /* firmware: 2.14 */
119 	POD_fx_loop_on_off                 = 107,  /* device: LINE6_BITS_PRO */
120 	POD_tweak_param_select             = 108,
121 	POD_amp1_engage                    = 111,
122 	POD_band_1_gain                    = 114,  /* firmware: 2.0 */
123 	POD_band_2_gain__bass              = 115,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
124 	POD_band_2_gain                    = 116,  /* device: LINE6_BITS_PODXTALL */     /* firmware: 2.0 */
125 	POD_band_3_gain__bass              = 116,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
126 	POD_band_3_gain                    = 117,  /* device: LINE6_BITS_PODXTALL */     /* firmware: 2.0 */
127 	POD_band_4_gain__bass              = 117,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
128 	POD_band_5_gain__bass              = 118,  /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
129 	POD_band_4_gain                    = 119,  /* device: LINE6_BITS_PODXTALL */     /* firmware: 2.0 */
130 	POD_band_6_gain__bass              = 119   /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
131 };
132 
133 /**
134    List of Variax workbench controls (dump).
135 */
136 enum {
137 	VARIAX_body                        =   3,
138 	VARIAX_pickup1_enable              =   4,  /* 0: enabled, 1: disabled */
139 	VARIAX_pickup1_type                =   8,
140 	VARIAX_pickup1_position            =   9,  /* type: 24 bit float */
141 	VARIAX_pickup1_angle               =  12,  /* type: 24 bit float */
142 	VARIAX_pickup1_level               =  15,  /* type: 24 bit float */
143 	VARIAX_pickup2_enable              =  18,  /* 0: enabled, 1: disabled */
144 	VARIAX_pickup2_type                =  22,
145 	VARIAX_pickup2_position            =  23,  /* type: 24 bit float */
146 	VARIAX_pickup2_angle               =  26,  /* type: 24 bit float */
147 	VARIAX_pickup2_level               =  29,  /* type: 24 bit float */
148 	VARIAX_pickup_phase                =  32,  /* 0: in phase, 1: out of phase */
149 	VARIAX_capacitance                 =  33,  /* type: 24 bit float */
150 	VARIAX_tone_resistance             =  36,  /* type: 24 bit float */
151 	VARIAX_volume_resistance           =  39,  /* type: 24 bit float */
152 	VARIAX_taper                       =  42,  /* 0: Linear, 1: Audio */
153 	VARIAX_tone_dump                   =  43,  /* type: 24 bit float */
154 	VARIAX_save_tone                   =  46,
155 	VARIAX_volume_dump                 =  47,  /* type: 24 bit float */
156 	VARIAX_tuning_enable               =  50,
157 	VARIAX_tuning6                     =  51,
158 	VARIAX_tuning5                     =  52,
159 	VARIAX_tuning4                     =  53,
160 	VARIAX_tuning3                     =  54,
161 	VARIAX_tuning2                     =  55,
162 	VARIAX_tuning1                     =  56,
163 	VARIAX_detune6                     =  57,  /* type: 24 bit float */
164 	VARIAX_detune5                     =  60,  /* type: 24 bit float */
165 	VARIAX_detune4                     =  63,  /* type: 24 bit float */
166 	VARIAX_detune3                     =  66,  /* type: 24 bit float */
167 	VARIAX_detune2                     =  69,  /* type: 24 bit float */
168 	VARIAX_detune1                     =  72,  /* type: 24 bit float */
169 	VARIAX_mix6                        =  75,  /* type: 24 bit float */
170 	VARIAX_mix5                        =  78,  /* type: 24 bit float */
171 	VARIAX_mix4                        =  81,  /* type: 24 bit float */
172 	VARIAX_mix3                        =  84,  /* type: 24 bit float */
173 	VARIAX_mix2                        =  87,  /* type: 24 bit float */
174 	VARIAX_mix1                        =  90,  /* type: 24 bit float */
175 	VARIAX_pickup_wiring               =  96   /* 0: parallel, 1: series */
176 };
177 
178 /**
179    List of Variax workbench controls (MIDI).
180 */
181 enum {
182 	VARIAXMIDI_volume                  =   7,
183 	VARIAXMIDI_tone                    =  79,
184 };
185 
186 /* *INDENT-ON* */
187 
188 extern int line6_pod_create_files(int firmware, int type, struct device *dev);
189 extern void line6_pod_remove_files(int firmware, int type, struct device *dev);
190 extern int line6_variax_create_files(int firmware, int type,
191 				     struct device *dev);
192 extern void line6_variax_remove_files(int firmware, int type,
193 				      struct device *dev);
194 
195 #endif
196