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