Changeset 554 for trunk/libffado/src/libavc
- Timestamp:
- 08/22/07 10:15:34 (17 years ago)
- Files:
-
- trunk/libffado/src/libavc/audiosubunit (copied) (copied from branches/echoaudio/src/libavc/audiosubunit)
- trunk/libffado/src/libavc/avc_connect.cpp (deleted)
- trunk/libffado/src/libavc/avc_connect.h (deleted)
- trunk/libffado/src/libavc/avc_definitions.cpp (modified) (2 diffs)
- trunk/libffado/src/libavc/avc_definitions.h (modified) (3 diffs)
- trunk/libffado/src/libavc/avc_extended_cmd_generic.cpp (deleted)
- trunk/libffado/src/libavc/avc_extended_cmd_generic.h (deleted)
- trunk/libffado/src/libavc/avc_extended_plug_info.cpp (deleted)
- trunk/libffado/src/libavc/avc_extended_plug_info.h (deleted)
- trunk/libffado/src/libavc/avc_extended_stream_format.cpp (deleted)
- trunk/libffado/src/libavc/avc_extended_stream_format.h (deleted)
- trunk/libffado/src/libavc/avc_extended_subunit_info.cpp (deleted)
- trunk/libffado/src/libavc/avc_extended_subunit_info.h (deleted)
- trunk/libffado/src/libavc/avc_function_block.cpp (deleted)
- trunk/libffado/src/libavc/avc_function_block.h (deleted)
- trunk/libffado/src/libavc/avc_generic.cpp (deleted)
- trunk/libffado/src/libavc/avc_generic.h (deleted)
- trunk/libffado/src/libavc/avc_plug_info.cpp (deleted)
- trunk/libffado/src/libavc/avc_plug_info.h (deleted)
- trunk/libffado/src/libavc/avc_serialize.cpp (deleted)
- trunk/libffado/src/libavc/avc_serialize.h (deleted)
- trunk/libffado/src/libavc/avc_signal_source.cpp (deleted)
- trunk/libffado/src/libavc/avc_signal_source.h (deleted)
- trunk/libffado/src/libavc/avc_subunit_info.cpp (deleted)
- trunk/libffado/src/libavc/avc_subunit_info.h (deleted)
- trunk/libffado/src/libavc/avc_unit_info.cpp (deleted)
- trunk/libffado/src/libavc/avc_unit_info.h (deleted)
- trunk/libffado/src/libavc/ccm (copied) (copied from branches/echoaudio/src/libavc/ccm)
- trunk/libffado/src/libavc/descriptors (copied) (copied from branches/echoaudio/src/libavc/descriptors)
- trunk/libffado/src/libavc/general (copied) (copied from branches/echoaudio/src/libavc/general)
- trunk/libffado/src/libavc/general/avc_plug.cpp (modified) (2 diffs)
- trunk/libffado/src/libavc/general/avc_subunit.cpp (modified) (1 diff)
- trunk/libffado/src/libavc/general/avc_unit.cpp (modified) (9 diffs)
- trunk/libffado/src/libavc/general/avc_unit.h (modified) (2 diffs)
- trunk/libffado/src/libavc/musicsubunit (copied) (copied from branches/echoaudio/src/libavc/musicsubunit)
- trunk/libffado/src/libavc/streamformat (copied) (copied from branches/echoaudio/src/libavc/streamformat)
- trunk/libffado/src/libavc/util (copied) (copied from branches/echoaudio/src/libavc/util)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/libavc/avc_definitions.cpp
r445 r554 23 23 24 24 #include "avc_definitions.h" 25 25 #include <libiec61883/iec61883.h> 26 27 namespace AVC { 26 28 27 29 int … … 151 153 return stream << str; 152 154 }; 155 156 enum ESubunitType byteToSubunitType(byte_t s) { 157 switch (s) { 158 case eST_Monitor: 159 return eST_Monitor; 160 case eST_Audio: 161 return eST_Audio; 162 case eST_Printer: 163 return eST_Printer; 164 case eST_Disc: 165 return eST_Disc; 166 case eST_VCR: 167 return eST_VCR; 168 case eST_Tuner: 169 return eST_Tuner; 170 case eST_CA: 171 return eST_CA; 172 case eST_Camera: 173 return eST_Camera; 174 case eST_Panel: 175 return eST_Panel; 176 case eST_BulltinBoard: 177 return eST_BulltinBoard; 178 case eST_CameraStorage: 179 return eST_CameraStorage; 180 case eST_Music: 181 return eST_Music; 182 case eST_VendorUnique: 183 return eST_VendorUnique; 184 case eST_Reserved: 185 return eST_Reserved; 186 case eST_Extended: 187 return eST_Extended; 188 default: 189 case eST_Unit: 190 return eST_Unit; 191 } 192 } 193 194 unsigned int fdfSfcToSampleRate(byte_t fdf) { 195 switch(fdf & 0x07) { 196 default: return 0; 197 case IEC61883_FDF_SFC_32KHZ: return 32000; 198 case IEC61883_FDF_SFC_44K1HZ: return 44100; 199 case IEC61883_FDF_SFC_48KHZ: return 48000; 200 case IEC61883_FDF_SFC_88K2HZ: return 88200; 201 case IEC61883_FDF_SFC_96KHZ: return 96000; 202 case IEC61883_FDF_SFC_176K4HZ: return 176400; 203 case IEC61883_FDF_SFC_192KHZ: return 192000; 204 } 205 } 206 207 byte_t sampleRateToFdfSfc(unsigned int rate) { 208 switch(rate) { 209 default: return 0x07; 210 case 32000: return IEC61883_FDF_SFC_32KHZ; 211 case 44100: return IEC61883_FDF_SFC_44K1HZ; 212 case 48000: return IEC61883_FDF_SFC_48KHZ; 213 case 88200: return IEC61883_FDF_SFC_88K2HZ; 214 case 96000: return IEC61883_FDF_SFC_96KHZ; 215 case 176400: return IEC61883_FDF_SFC_176K4HZ; 216 case 192000: return IEC61883_FDF_SFC_192KHZ; 217 } 218 } 219 220 } trunk/libffado/src/libavc/avc_definitions.h
r445 r554 22 22 */ 23 23 24 #ifndef AV DDEFINITIONS_H25 #define AV DDEFINITIONS_H24 #ifndef AVCDEFINITIONS_H 25 #define AVCDEFINITIONS_H 26 26 27 27 #include <libavc1394/avc1394.h> 28 28 #include <ostream> 29 30 31 namespace AVC { 29 32 30 33 typedef byte_t ctype_t; … … 83 86 typedef quadlet_t company_id_t; 84 87 88 #define AVC1394_SUBUNIT_AUDIO 1 89 #define AVC1394_SUBUNIT_PRINTER 2 90 #define AVC1394_SUBUNIT_CA 6 91 #define AVC1394_SUBUNIT_PANEL 9 92 #define AVC1394_SUBUNIT_BULLETIN_BOARD 0xA 93 #define AVC1394_SUBUNIT_CAMERA_STORAGE 0xB 94 #define AVC1394_SUBUNIT_MUSIC 0xC 95 #define AVC1394_SUBUNIT_RESERVED 0x1D 96 97 #define AVC1394_SUBUNIT_ID_RESERVED 0x06 98 99 enum ESubunitType { 100 eST_Monitor = AVC1394_SUBUNIT_VIDEO_MONITOR, 101 eST_Audio = AVC1394_SUBUNIT_AUDIO, 102 eST_Printer = AVC1394_SUBUNIT_PRINTER, 103 eST_Disc = AVC1394_SUBUNIT_DISC_RECORDER, 104 eST_VCR = AVC1394_SUBUNIT_VCR, 105 eST_Tuner = AVC1394_SUBUNIT_TUNER, 106 eST_CA = AVC1394_SUBUNIT_CA, 107 eST_Camera = AVC1394_SUBUNIT_VIDEO_CAMERA, 108 eST_Panel = AVC1394_SUBUNIT_PANEL, 109 eST_BulltinBoard = AVC1394_SUBUNIT_BULLETIN_BOARD, 110 eST_CameraStorage = AVC1394_SUBUNIT_CAMERA_STORAGE, 111 eST_Music = AVC1394_SUBUNIT_MUSIC, 112 eST_VendorUnique = AVC1394_SUBUNIT_VENDOR_UNIQUE, 113 eST_Reserved = AVC1394_SUBUNIT_RESERVED, 114 eST_Extended = AVC1394_SUBUNIT_EXTENDED, 115 eST_Unit = AVC1394_SUBUNIT_UNIT, 116 }; 117 118 enum ESubunitType byteToSubunitType(byte_t s); 119 85 120 /** 86 121 * \brief the possible sampling frequencies … … 118 153 std::ostream& operator<<( std::ostream& stream, ESamplingFrequency samplingFrequency ); 119 154 120 #define AVC1394_SUBUNIT_AUDIO 1 121 #define AVC1394_SUBUNIT_PRINTER 2 122 #define AVC1394_SUBUNIT_CA 6 123 #define AVC1394_SUBUNIT_PANEL 9 124 #define AVC1394_SUBUNIT_BULLETIN_BOARD 0xA 125 #define AVC1394_SUBUNIT_CAMERA_STORAGE 0xB 126 #define AVC1394_SUBUNIT_MUSIC 0xC 127 #define AVC1394_SUBUNIT_RESERVED 0x1D 155 /** 156 * \brief Convert from a FDF SFC field value to an integer sample rate 157 * @param fdf fdf sfc field value 158 * @return sample rate 159 */ 160 unsigned int fdfSfcToSampleRate(byte_t fdf); 128 161 129 #define AVC1394_SUBUNIT_ID_RESERVED 0x06 162 /** 163 * \brief Convert from an integer sample rate to a78 FDF SFC field value 164 * @param rate integer sample rate 165 * @return fdf sfc field value 166 */ 167 byte_t sampleRateToFdfSfc(unsigned int rate); 130 168 131 #endif // AVDDEFINITIONS_H 169 } 170 171 #endif // AVCDEFINITIONS_H trunk/libffado/src/libavc/general/avc_plug.cpp
r548 r554 1663 1663 // FIXME: The derived class should be creating these, such that discover() can become pure virtual 1664 1664 1665 if ( !deser.isExisting( basePath + "m_subunitType" ) ) { 1666 return 0; 1667 } 1665 1668 Plug* pPlug = new Plug; 1666 1669 if ( !pPlug ) { … … 2221 2224 Unit& unit ) 2222 2225 { 2226 if ( !deser.isExisting( basePath + "m_srcPlug" ) ) { 2227 return 0; 2228 } 2223 2229 PlugConnection* pConnection = new PlugConnection; 2224 2230 if ( !pConnection ) { trunk/libffado/src/libavc/general/avc_subunit.cpp
r524 r554 242 242 bool result; 243 243 ESubunitType sbType; 244 245 if ( !deser.isExisting( basePath + "m_sbType" ) ) { 246 return 0; 247 } 248 244 249 result = deser.read( basePath + "m_sbType", sbType ); 245 250 trunk/libffado/src/libavc/general/avc_unit.cpp
r548 r554 603 603 } 604 604 605 PlugVector digital PCRInputPlugs = getPlugsByType( m_externalPlugs,605 PlugVector digitalExternalInputPlugs = getPlugsByType( m_externalPlugs, 606 606 Plug::eAPD_Input, 607 607 Plug::eAPT_Digital ); 608 if ( !digitalExternalInputPlugs.size() ) { 609 debugOutput( DEBUG_LEVEL_VERBOSE, "No external digital input plugs found\n" ); 610 611 } 612 613 PlugVector syncExternalInputPlugs = getPlugsByType( m_externalPlugs, 614 Plug::eAPD_Input, 615 Plug::eAPT_Sync ); 616 if ( !syncExternalInputPlugs.size() ) { 617 debugOutput( DEBUG_LEVEL_VERBOSE, "No external sync input plugs found\n" ); 618 619 } 608 620 609 621 PlugVector syncMSUInputPlugs = m_pPlugManager->getPlugsByType( … … 639 651 debugOutput( DEBUG_LEVEL_VERBOSE, "PCR Iso Output Plugs:\n" ); 640 652 showPlugs( isoPCROutputPlugs ); 641 debugOutput( DEBUG_LEVEL_VERBOSE, "PCR digital Input Plugs:\n" ); 642 showPlugs( digitalPCRInputPlugs ); 653 debugOutput( DEBUG_LEVEL_VERBOSE, "External digital Input Plugs:\n" ); 654 showPlugs( digitalExternalInputPlugs ); 655 debugOutput( DEBUG_LEVEL_VERBOSE, "External sync Input Plugs:\n" ); 656 showPlugs( syncExternalInputPlugs ); 643 657 debugOutput( DEBUG_LEVEL_VERBOSE, "MSU Sync Input Plugs:\n" ); 644 658 showPlugs( syncMSUInputPlugs ); … … 670 684 "Internal (CSP)" ); 671 685 672 // Check all external PCRdigital input to MSU input connections686 // Check all external digital input to MSU input connections 673 687 // -> SPDIF/ADAT sync 674 checkSyncConnectionsAndAddToList( digitalPCRInputPlugs, 688 checkSyncConnectionsAndAddToList( digitalExternalInputPlugs, 689 syncMSUInputPlugs, 690 "Digital Input Sync" ); 691 692 // Check all external sync input to MSU input connections 693 // -> SPDIF/ADAT sync 694 checkSyncConnectionsAndAddToList( syncExternalInputPlugs, 675 695 syncMSUInputPlugs, 676 696 "Digital Input Sync" ); … … 835 855 Unit::deserializeSyncInfoVector( Glib::ustring basePath, 836 856 Util::IODeserialize& deser, 837 Unit& unit,838 857 SyncInfoVector& vec ) 839 858 { … … 849 868 Glib::ustring description; 850 869 851 result = deser.read( strstrm.str() + "m_source", sourceId ); 852 result &= deser.read( strstrm.str() + "m_destination", destinationId ); 853 result &= deser.read( strstrm.str() + "m_description", description ); 870 if ( deser.isExisting( strstrm.str() + "m_source" ) ) { 871 result = deser.read( strstrm.str() + "m_source", sourceId ); 872 result &= deser.read( strstrm.str() + "m_destination", destinationId ); 873 result &= deser.read( strstrm.str() + "m_description", description ); 874 } else { 875 result = false; 876 } 854 877 855 878 if ( result ) { 856 879 SyncInfo syncInfo; 857 syncInfo.m_source = unit.getPlugManager().getPlug( sourceId );858 syncInfo.m_destination = unit.getPlugManager().getPlug( destinationId );880 syncInfo.m_source = m_pPlugManager->getPlug( sourceId ); 881 syncInfo.m_destination = m_pPlugManager->getPlug( destinationId ); 859 882 syncInfo.m_description = description; 860 883 … … 895 918 result &= serializeVector( basePath + "PlugConnection", ser, m_plugConnections ); 896 919 result &= serializeVector( basePath + "Subunit", ser, m_subunits ); 897 result &= serializeSyncInfoVector( basePath + "SyncInfo", ser, m_syncInfos ); 920 #warning this fails after the echoaudio merge 921 // result &= serializeSyncInfoVector( basePath + "SyncInfo", ser, m_syncInfos ); 898 922 899 923 int i = 0; … … 915 939 bool 916 940 Unit::deserialize( Glib::ustring basePath, 917 Unit* pDev,918 941 Util::IODeserialize& deser, 919 942 Ieee1394Service& ieee1394Service ) … … 925 948 setDebugLevel( verboseLevel ); 926 949 927 if ( pDev->m_pPlugManager) delete pDev->m_pPlugManager;928 pDev->m_pPlugManager = PlugManager::deserialize( basePath + "Plug", deser, *pDev);929 if ( ! pDev->m_pPlugManager ) {950 if (m_pPlugManager) delete m_pPlugManager; 951 m_pPlugManager = PlugManager::deserialize( basePath + "Plug", deser, *this ); 952 if ( !m_pPlugManager ) { 930 953 return false; 931 954 } 932 955 933 result &= deserializePlugUpdateConnections( basePath + "Plug", deser, pDev->m_pcrPlugs ); 934 result &= deserializePlugUpdateConnections( basePath + "Plug", deser, pDev->m_externalPlugs ); 935 result &= deserializeVector<PlugConnection>( basePath + "PlugConnnection", deser, *pDev, pDev->m_plugConnections ); 936 result &= deserializeVector<Subunit>( basePath + "Subunit", deser, *pDev, pDev->m_subunits ); 937 result &= deserializeSyncInfoVector( basePath + "SyncInfo", deser, *pDev, pDev->m_syncInfos ); 956 result &= deserializePlugUpdateConnections( basePath + "Plug", deser, m_pcrPlugs ); 957 result &= deserializePlugUpdateConnections( basePath + "Plug", deser, m_externalPlugs ); 958 result &= deserializeVector<PlugConnection>( basePath + "PlugConnnection", deser, *this, m_plugConnections ); 959 result &= deserializeVector<Subunit>( basePath + "Subunit", deser, *this, m_subunits ); 960 result &= deserializeSyncInfoVector( basePath + "SyncInfo", deser, m_syncInfos ); 961 938 962 939 963 unsigned int i; … … 941 965 942 966 if ( result ) { 943 if ( i < pDev->m_syncInfos.size() ) {944 pDev->m_activeSyncInfo = &pDev->m_syncInfos[i];967 if ( i < m_syncInfos.size() ) { 968 m_activeSyncInfo = &m_syncInfos[i]; 945 969 } 946 970 } trunk/libffado/src/libavc/general/avc_unit.h
r548 r554 94 94 95 95 bool serialize( Glib::ustring basePath, Util::IOSerialize& ser ) const; 96 static bool deserialize( Glib::ustring basePath, Unit*,96 bool deserialize( Glib::ustring basePath, 97 97 Util::IODeserialize& deser, 98 98 Ieee1394Service& ieee1394Service ); … … 151 151 152 152 153 staticbool serializeSyncInfoVector( Glib::ustring basePath,153 bool serializeSyncInfoVector( Glib::ustring basePath, 154 154 Util::IOSerialize& ser, 155 155 const SyncInfoVector& vec ); 156 staticbool deserializeSyncInfoVector( Glib::ustring basePath,156 bool deserializeSyncInfoVector( Glib::ustring basePath, 157 157 Util::IODeserialize& deser, 158 Unit& avDevice,159 158 SyncInfoVector& vec ); 160 159 protected: