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

Revision 864, 3.3 kB (checked in by ppalmers, 15 years ago)

update license to GPLv2 or GPLv3 instead of GPLv2 or any later version. Update copyrights to reflect the new year

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 /*
2  * Copyright (C) 2005-2008 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 2 of the License, or
12  * (at your option) version 3 of the License.
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::Cmd::IOSSerialize& se );
50     virtual bool deserialize( Util::Cmd::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::Cmd::IOSSerialize& se );
100     virtual bool deserialize( Util::Cmd::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.