motu: the 4pre channel layout within packets is now believed to be correct. Thanks...
[ffado.git] / libffado / src / metrichalo / mh_avdevice.h
blob217ec71e8721828cca4f74556133f8eed3b13165
1 /*
2 * Copyright (C) 2005-2008 by Pieter Palmers
4 * This file is part of FFADO
5 * FFADO = Free Firewire (pro-)audio drivers for linux
7 * FFADO is based upon FreeBoB.
9 * This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation, either version 2 of the License, or
12 * (at your option) version 3 of the License.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #ifndef MHDEVICE_H
25 #define MHDEVICE_H
27 #include "ffadodevice.h"
29 #include "debugmodule/debugmodule.h"
30 #include "libavc/avc_definitions.h"
31 #include "libutil/Configuration.h"
33 // #include "libstreaming/mh/MHStreamProcessor.h"
35 class ConfigRom;
36 class Ieee1394Service;
38 namespace MetricHalo {
40 class Device : public FFADODevice {
41 public:
42 Device( DeviceManager& d,
43 std::auto_ptr<ConfigRom>( configRom ));
44 virtual ~Device();
46 static bool probe( Util::Configuration& c, ConfigRom& configRom, bool generic = false );
47 static FFADODevice * createDevice( DeviceManager& d,
48 std::auto_ptr<ConfigRom>( configRom ));
49 static int getConfigurationId();
50 virtual bool discover();
52 virtual void showDevice();
54 virtual bool setSamplingFrequency( int );
55 virtual int getSamplingFrequency( );
56 virtual std::vector<int> getSupportedSamplingFrequencies();
58 virtual ClockSourceVector getSupportedClockSources();
59 virtual bool setActiveClockSource(ClockSource);
60 virtual ClockSource getActiveClockSource();
62 virtual int getStreamCount();
63 virtual Streaming::StreamProcessor *getStreamProcessorByIndex(int i);
65 virtual bool prepare();
66 virtual bool lock();
67 virtual bool unlock();
69 virtual bool startStreamByIndex(int i);
70 virtual bool stopStreamByIndex(int i);
72 signed int getIsoRecvChannel(void);
73 signed int getIsoSendChannel(void);
79 #endif