Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuil...
[pandora-kernel.git] / drivers / staging / line6 / control.h
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