root/trunk/libffado/src/libavc/general/avc_extended_subunit_info.h

Revision 742, 3.3 kB (checked in by ppalmers, 16 years ago)

- Remove some obsolete support files and dirs

- Clean up the license statements in the source files. Everything is

GPL version 3 now.

- Add license and copyright notices to scons scripts

- Clean up some other text files

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 /*
2  * Copyright (C) 2005-2007 by Daniel Wagner
3  *
4  * This file is part of FFADO
5  * FFADO = Free Firewire (pro-)audio drivers for linux
6  *
7  * FFADO is based upon FreeBoB
8  *
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 3 of the License, or
12  * (at your option) any later version.
13  *
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.
18  *
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/>.
21  *
22  */
23
24 #ifndef AVCEXTENDEDSUBUNITINFO_H
25 #define AVCEXTENDEDSUBUNITINFO_H
26
27 #include "avc_generic.h"
28
29 #include <libavc1394/avc1394.h>
30
31 #include <string>
32 #include <vector>
33
34 namespace AVC {
35
36
37 class ExtendedSubunitInfoPageData: public IBusData
38 {
39  public:
40     enum ESpecialPurpose {
41         eSP_InputGain       = 0x00,
42         eSP_OutputVolume    = 0x01,
43         eSP_NoSpecialPupose = 0xff,
44     };
45
46     ExtendedSubunitInfoPageData();
47     virtual ~ExtendedSubunitInfoPageData();
48
49     virtual bool serialize( Util::IOSSerialize& se );
50     virtual bool deserialize( Util::IISDeserialize& de );
51     virtual ExtendedSubunitInfoPageData* clone() const;
52
53     function_block_type_t            m_functionBlockType;
54     function_block_id_t              m_functionBlockId;
55     function_block_special_purpose_t m_functionBlockSpecialPupose;
56     no_of_input_plugs_t              m_noOfInputPlugs;
57     no_of_output_plugs_t             m_noOfOutputPlugs;
58 };
59
60 typedef std::vector<ExtendedSubunitInfoPageData*> ExtendedSubunitInfoPageDataVector;
61
62 class ExtendedSubunitInfoCmd: public AVCCommand
63 {
64 public:
65     enum EFunctionBlockType {
66         eFBT_AllFunctinBlockType    = 0xff,
67         eFBT_AudioSubunitSelector   = 0x80,
68         eFBT_AudioSubunitFeature    = 0x81,
69         eFBT_AudioSubunitProcessing = 0x82,
70         eFBT_AudioSubunitCodec      = 0x83,
71     };
72
73     enum EProcessingType {
74     ePT_Unknown                 = 0x00,
75         ePT_Mixer                   = 0x01,
76         ePT_Generic                 = 0x02,
77         ePT_UpDown                  = 0x03,
78         ePT_DolbyProLogic           = 0x04,
79         ePT_3DStereoExtender        = 0x05,
80         ePT_Reverberation           = 0x06,
81         ePT_Chorus                  = 0x07,
82         ePT_DynamicRangeCompression = 0x08,
83         ePT_EnhancedMixer           = 0x82,
84         ePT_Reserved                = 0xff,
85     };
86
87     enum ECodecType {
88         eCT_AC3Decoder  = 0x01,
89         eCT_MPEGDecoder = 0x02,
90         eCT_DTSDecoder  = 0x03,
91         eCT_Reserved    = 0xff,
92
93     };
94
95     ExtendedSubunitInfoCmd( Ieee1394Service& ieee1394service );
96     ExtendedSubunitInfoCmd( const ExtendedSubunitInfoCmd& rhs );
97     virtual ~ExtendedSubunitInfoCmd();
98
99     virtual bool serialize( Util::IOSSerialize& se );
100     virtual bool deserialize( Util::IISDeserialize& de );
101
102     virtual const char* getCmdName() const
103     { return "ExtendedSubunitInfoCmd"; }
104
105     page_t                m_page;
106     function_block_type_t m_fbType;
107     ExtendedSubunitInfoPageDataVector m_infoPageDatas;
108 };
109
110 }
111
112 #endif
Note: See TracBrowser for help on using the browser.