root/trunk/libffado/src/dice/focusrite/saffire_pro24.h

Revision 1734, 1.9 kB (checked in by arnonym, 14 years ago)

Controlling the dim-level works now. Controlling the DAC-level works too, but switching the dac-level to control channels is still missing.

Line 
1 /*
2  * Copyright (C) 2009 by Pieter Palmers
3  * Copyright (C) 2009 by Arnold Krille
4  *
5  * This file is part of FFADO
6  * FFADO = Free Firewire (pro-)audio drivers for linux
7  *
8  * FFADO is based upon FreeBoB.
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation, either version 2 of the License, or
13  * (at your option) version 3 of the License.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
22  *
23  */
24
25 #ifndef DICE_FOCUSRITE_SAFFIRE_PRO24_H
26 #define DICE_FOCUSRITE_SAFFIRE_PRO24_H
27
28 #include "dice/dice_avdevice.h"
29
30 #include "libieee1394/configrom.h"
31
32 #include "focusrite_eap.h"
33
34 namespace Dice {
35 namespace Focusrite {
36
37 class SaffirePro24 : public Dice::Device {
38 public:
39     SaffirePro24( DeviceManager& d,
40                   std::auto_ptr<ConfigRom>( configRom ));
41     ~SaffirePro24();
42
43     bool discover();
44
45     void showDevice();
46
47     bool canChangeNickname() { return true; }
48     bool setNickName( std::string name );
49     std::string getNickName();
50
51 private:
52
53     class SaffirePro24EAP : public FocusriteEAP
54     {
55     public:
56         SaffirePro24EAP(Dice::Device& dev) : FocusriteEAP(dev) {
57         }
58
59         int commandToFix(unsigned offset);
60
61         Poti* getMonitorPoti(std::string);
62         Poti* getDimPoti(std::string);
63     };
64     Dice::Device::EAP* createEAP();
65
66     class LineInstSwitch;
67     LineInstSwitch *m_ch1, *m_ch2;
68     class LevelSwitch;
69     LevelSwitch *m_ch3, *m_ch4;
70     Dice::Focusrite::FocusriteEAP::MonitorSection *m_monitor;
71 };
72
73 }
74 }
75
76 #endif
77 // vim: et
Note: See TracBrowser for help on using the browser.