root/trunk/libfreebob/src/libfreebobavc/avc_extended_subunit_info.h

Revision 375, 3.2 kB (checked in by wagi, 17 years ago)

AVCCommand: All AVC commants take a reference instead a pointer to 1394 service
BeBoB::AvDevice?: PreSonus? FIREBOX id added

De/Serialize all AvPlugs? through AvPlugManager?
AvPlugManager? can't be a member because of serialization

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 /* avc_extended_subunit_info.h
2  * Copyright (C) 2006 by Daniel Wagner
3  *
4  * This file is part of FreeBoB.
5  *
6  * FreeBoB is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  * FreeBoB is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with FreeBoB; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18  * MA 02111-1307 USA.
19  */
20
21 #ifndef AVCEXTENDEDSUBUNITINFO_H
22 #define AVCEXTENDEDSUBUNITINFO_H
23
24 #include "avc_generic.h"
25
26 #include <libavc1394/avc1394.h>
27
28 #include <string>
29 #include <vector>
30
31 class ExtendedSubunitInfoPageData: public IBusData
32 {
33  public:
34     enum ESpecialPurpose {
35         eSP_InputGain       = 0x00,
36         eSP_OutputVolume    = 0x01,
37         eSP_NoSpecialPupose = 0xff,
38     };
39
40     ExtendedSubunitInfoPageData();
41     virtual ~ExtendedSubunitInfoPageData();
42
43     virtual bool serialize( IOSSerialize& se );
44     virtual bool deserialize( IISDeserialize& de );
45     virtual ExtendedSubunitInfoPageData* clone() const;
46
47     function_block_type_t            m_functionBlockType;
48     function_block_id_t              m_functionBlockId;
49     function_block_special_purpose_t m_functionBlockSpecialPupose;
50     no_of_input_plugs_t              m_noOfInputPlugs;
51     no_of_output_plugs_t             m_noOfOutputPlugs;
52 };
53
54 typedef std::vector<ExtendedSubunitInfoPageData*> ExtendedSubunitInfoPageDataVector;
55
56 class ExtendedSubunitInfoCmd: public AVCCommand
57 {
58 public:
59     enum EFunctionBlockType {
60         eFBT_AllFunctinBlockType    = 0xff,
61         eFBT_AudioSubunitSelector   = 0x80,
62         eFBT_AudioSubunitFeature    = 0x81,
63         eFBT_AudioSubunitProcessing = 0x82,
64         eFBT_AudioSubunitCodec      = 0x83,
65     };
66
67     enum EProcessingType {
68         ePT_Mixer                   = 0x01,
69         ePT_Generic                 = 0x02,
70         ePT_UpDown                  = 0x03,
71         ePT_DolbyProLogic           = 0x04,
72         ePT_3DStereoExtender        = 0x05,
73         ePT_Reverberation           = 0x06,
74         ePT_Chorus                  = 0x07,
75         ePT_DynamicRangeCompression = 0x08,
76         ePT_EnhancedMixer           = 0x82,
77         ePT_Reserved                = 0xff,
78     };
79
80     enum ECodecType {
81         eCT_AC3Decoder  = 0x01,
82         eCT_MPEGDecoder = 0x02,
83         eCT_DTSDecoder  = 0x03,
84         eCT_Reserved    = 0xff,
85
86     };
87
88     ExtendedSubunitInfoCmd( Ieee1394Service& ieee1394service );
89     ExtendedSubunitInfoCmd( const ExtendedSubunitInfoCmd& rhs );
90     virtual ~ExtendedSubunitInfoCmd();
91
92     virtual bool serialize( IOSSerialize& se );
93     virtual bool deserialize( IISDeserialize& de );
94
95     virtual const char* getCmdName() const
96         { return "ExtendedSubunitInfoCmd"; }
97
98     page_t                m_page;
99     function_block_type_t m_fbType;
100     ExtendedSubunitInfoPageDataVector m_infoPageDatas;
101 };
102
103 #endif
Note: See TracBrowser for help on using the browser.