root/branches/streaming-rework/src/libstreaming/MotuPort.h

Revision 312, 2.5 kB (checked in by jwoithe, 17 years ago)

MOTU: fix xrun recovery glitches inadvertantly introduced in r309.
MOTU: preliminary MIDI port support. Rate control still needs to be added so it probably won't work in its current form yet. MIDI has not yet been tested.
MOTU: tweaks to receive/transmit missed cycle detection.
jack driver: during driver shutdown don't try to free NULL ports created for non-audio ports during initialisation to preserve device port index locations.

Line 
1 /* $Id$ */
2
3 /*
4  *   FreeBob Streaming API
5  *   FreeBob = Firewire (pro-)audio for linux
6  *
7  *   http://freebob.sf.net
8  *
9  *   Copyright (C) 2005,2006 Pieter Palmers <pieterpalmers@users.sourceforge.net>
10  *
11  *   This program is free software {} you can redistribute it and/or modify
12  *   it under the terms of the GNU General Public License as published by
13  *   the Free Software Foundation {} either version 2 of the License, or
14  *   (at your option) any later version.
15  *
16  *   This program is distributed in the hope that it will be useful,
17  *   but WITHOUT ANY WARRANTY {} without even the implied warranty of
18  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  *   GNU General Public License for more details.
20  *
21  *   You should have received a copy of the GNU General Public License
22  *   along with this program {} if not, write to the Free Software
23  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24  *
25  *
26  *
27  */
28 #ifndef __FREEBOB_MOTUPORT__
29 #define __FREEBOB_MOTUPORT__
30
31 /**
32  * This file implements the ports used in Motu devices
33  */
34
35 #include "../debugmodule/debugmodule.h"
36 #include "Port.h"
37 #include "MotuPortInfo.h"
38
39 namespace FreebobStreaming {
40
41 /*!
42 \brief The Base Class for Motu Audio Port
43
44
45 */
46 class MotuAudioPort
47         : public AudioPort, public MotuPortInfo
48 {
49
50 public:
51
52         MotuAudioPort(std::string name,
53                            enum E_Direction direction,
54                            int position,
55                            int size)
56         : AudioPort(name, direction),
57           MotuPortInfo(name, position, size) // TODO: add more port information parameters here if nescessary
58         {};
59
60         virtual ~MotuAudioPort() {};
61  
62 protected:
63
64 };
65
66 /*!
67 \brief The Base Class for an Motu Midi Port
68
69
70 */
71 class MotuMidiPort
72         : public MidiPort, public MotuPortInfo
73 {
74
75 public:
76
77         MotuMidiPort(std::string name,
78                            enum E_Direction direction,
79                            int position)
80                 : MidiPort(name, direction),
81                   MotuPortInfo(name, position, 0)  // TODO: add more port information parameters here if nescessary
82         {};
83
84
85         virtual ~MotuMidiPort() {};
86
87 protected:
88        
89 };
90
91 /*!
92 \brief The Base Class for an Motu Control Port
93
94
95 */
96 class MotuControlPort
97         : public ControlPort, public MotuPortInfo
98 {
99
100 public:
101
102         MotuControlPort(std::string name,
103                            enum E_Direction direction,
104                            int position)
105                 : ControlPort(name, direction),
106                   MotuPortInfo(name, position, 2) // TODO: add more port information parameters here if nescessary
107         {};
108
109
110         virtual ~MotuControlPort() {};
111
112 protected:
113        
114 };
115
116 } // end of namespace FreebobStreaming
117
118 #endif /* __FREEBOB_MOTUPORT__ */
119
120
Note: See TracBrowser for help on using the browser.