root/trunk/libffado/src/libieee1394/configrom.h

Revision 445, 3.9 kB (checked in by pieterpalmers, 17 years ago)

* name change from FreeBoB to FFADO
* replaced tabs by 4 spaces
* got rid of end-of-line spaces
* made all license and copyrights conform

library becomes LGPL, apps become GPL
explicitly state LGPL v2.1 and GPL v2 (don't like v3 draft)

copyrights are 2005-2007 Daniel & Pieter
except for the MotU stuff (C) Jonathan, Pieter

  • 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  * Copyright (C) 2005-2007 by Jonathan Woithe
4  * Copyright (C) 2005-2007 by Pieter Palmers
5  *
6  * This file is part of FFADO
7  * FFADO = Free Firewire (pro-)audio drivers for linux
8  *
9  * FFADO is based upon FreeBoB
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public
13  * License version 2.1, as published by the Free Software Foundation;
14  *
15  * This library is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  * Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public
21  * License along with this library; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
23  * MA 02110-1301 USA
24  */
25
26 #ifndef CONFIGROM_H
27 #define CONFIGROM_H
28
29 #include "fbtypes.h"
30 #include "csr1212.h"
31
32 #include "libutil/serialize.h"
33 #include "debugmodule/debugmodule.h"
34
35 #include "libosc/OscNode.h"
36
37 #include <string>
38
39 class Ieee1394Service;
40
41 class ConfigRom
42     : public OSC::OscNode
43 {
44  public:
45     ConfigRom( Ieee1394Service& ieee1394service, fb_nodeid_t nodeId );
46     virtual ~ConfigRom();
47
48     bool initialize();
49
50     bool operator == ( const ConfigRom& rhs );
51
52     const fb_nodeid_t getNodeId() const;
53     const fb_octlet_t getGuid() const;
54     const Glib::ustring getModelName() const;
55     const Glib::ustring getVendorName() const;
56
57     const unsigned int getModelId() const;
58     const unsigned int getVendorId() const;
59     const unsigned int getUnitSpecifierId() const;
60     const unsigned int getUnitVersion() const;
61
62     bool isIsoResourseManager() const
63     { return m_isIsoResourceManager; }
64     bool isCycleMasterCapable() const
65         { return m_isCycleMasterCapable; }
66     bool isSupportsIsoOperations() const
67         { return m_isSupportIsoOperations; }
68     bool isBusManagerCapable() const
69         { return m_isBusManagerCapable; }
70     fb_byte_t getCycleClockAccurancy() const
71         { return m_cycleClkAcc; }
72     fb_byte_t getMaxRec() const
73         { return m_maxRec; }
74     unsigned short getAsyMaxPayload() const;
75
76     fb_quadlet_t getNodeVendorId() const
77     { return m_nodeVendorId; }
78
79     bool updatedNodeId();
80     bool setNodeId( fb_nodeid_t nodeId );
81
82     void printConfigRom() const;
83
84     bool serialize( Glib::ustring path, Util::IOSerialize& ser );
85     static ConfigRom* deserialize( Glib::ustring path,
86                    Util::IODeserialize& deser,
87                    Ieee1394Service& ieee1394Service );
88
89  protected:
90     void processUnitDirectory( struct csr1212_csr*    csr,
91                                struct csr1212_keyval* ud_kv,
92                                unsigned int*          id );
93
94     void processRootDirectory( struct csr1212_csr* csr );
95
96     Ieee1394Service* m_1394Service;
97     fb_nodeid_t      m_nodeId;
98     bool             m_avcDevice;
99     fb_octlet_t      m_guid;
100     Glib::ustring    m_vendorName;
101     Glib::ustring    m_modelName;
102     unsigned int     m_vendorId;
103     unsigned int     m_modelId;
104     unsigned int     m_unit_specifier_id;
105     unsigned int     m_unit_version;
106     bool             m_isIsoResourceManager;
107     bool             m_isCycleMasterCapable;
108     bool             m_isSupportIsoOperations;
109     bool             m_isBusManagerCapable;
110     fb_byte_t        m_cycleClkAcc;
111     fb_byte_t        m_maxRec;
112     fb_quadlet_t     m_nodeVendorId;
113     fb_byte_t        m_chipIdHi;
114     fb_quadlet_t     m_chipIdLow;
115
116     /* only used during parsing */
117     struct csr1212_keyval* m_vendorNameKv;
118     struct csr1212_keyval* m_modelNameKv;
119     struct csr1212_csr*    m_csr;
120
121 protected: // OSC handling
122     OSC::OscResponse processOscMessage(OSC::OscMessage *m);
123
124 private:
125     ConfigRom( const ConfigRom& ); // do not allow copy ctor
126     ConfigRom();                   // ctor for deserialition
127
128     DECLARE_DEBUG_MODULE;
129 };
130
131 #endif /* CONFIGROM_H */
Note: See TracBrowser for help on using the browser.