Changeset 371
- Timestamp:
- 01/06/07 04:45:31 (17 years ago)
- Files:
-
- trunk/libfreebob/src/bebob/bebob_avdevice.cpp (modified) (2 diffs)
- trunk/libfreebob/src/bebob/bebob_avdevice.h (modified) (1 diff)
- trunk/libfreebob/src/bebob/bebob_avplug.cpp (modified) (2 diffs)
- trunk/libfreebob/src/bebob/bebob_avplug.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libfreebob/src/bebob/bebob_avdevice.cpp
r370 r371 1229 1229 } 1230 1230 1231 1232 template <typename T> bool serializeVector( Glib::ustring path, 1233 Util::IOSerialize& ser, 1234 T& vec ) 1235 { 1236 bool result = true; // if vec.size() == 0 1237 int i = 0; 1238 for ( typename T::iterator it = vec.begin(); it != vec.end(); ++it ) { 1239 std::ostringstream strstrm; 1240 strstrm << path << i; 1241 result &= ( *it )->serialize( strstrm.str() + "/", ser ); 1242 i++; 1243 } 1244 return result; 1245 } 1246 1247 template <typename T, typename VT> bool deserializeVector( Glib::ustring path, 1248 Util::IODeserialize& deser, 1249 Ieee1394Service& ieee1394Service, 1250 ConfigRom& configRom, 1251 AvPlugManager& plugManager, 1252 VT& vec ) 1253 { 1254 int i = 0; 1255 bool bFinished = false; 1256 do { 1257 std::ostringstream strstrm; 1258 strstrm << path << i; 1259 T* ptr = T::deserialize( strstrm.str() + "/", 1260 deser, 1261 ieee1394Service, 1262 configRom, 1263 plugManager ); 1264 if ( ptr ) { 1265 vec.push_back( ptr ); 1266 i++; 1267 } else { 1268 bFinished = true; 1269 } 1270 } while ( !bFinished ); 1271 1272 return true; 1273 } 1274 1231 1275 bool 1232 1276 AvDevice::serialize( Glib::ustring basePath, Util::IOSerialize& ser ) 1233 1277 { 1234 1278 bool result; 1235 result = m_pConfigRom->serialize( basePath + "m_pConfigRom/", ser ); 1279 result = m_pConfigRom->serialize( basePath + "m_pConfigRom/", ser ); 1280 result &= ser.write( basePath + "m_verboseLevel", m_verboseLevel ); 1281 1282 result &= serializeVector( basePath + "PCRPlug", ser, m_pcrPlugs ); 1283 result &= serializeVector( basePath + "ExternelPlug", ser, m_externalPlugs ); 1284 1285 // XXX ... 1236 1286 1237 1287 return result; 1238 1288 } 1289 1239 1290 1240 1291 AvDevice* … … 1255 1306 1256 1307 pDev->m_1394Service = &ieee1394Service; 1257 1308 bool result; 1309 result = deser.read( basePath + "m_verboseLevel", pDev->m_verboseLevel ); 1310 1311 result &= deserializeVector<AvPlug>( basePath + "PCRPlug", deser, ieee1394Service, *pDev->m_pConfigRom.get(), pDev->m_plugManager, pDev->m_pcrPlugs ); 1312 result &= deserializeVector<AvPlug>( basePath + "ExternalPlug", deser, ieee1394Service, *pDev->m_pConfigRom.get(), pDev->m_plugManager, pDev->m_externalPlugs ); 1313 1314 // XXX ... 1258 1315 } 1259 1316 trunk/libfreebob/src/bebob/bebob_avdevice.h
r370 r371 1 1 /* bebob_avdevice.h 2 * Copyright (C) 2005,06 by Daniel Wagner2 * Copyright (C) 2005,06,07 by Daniel Wagner 3 3 * 4 4 * This file is part of FreeBoB. trunk/libfreebob/src/bebob/bebob_avplug.cpp
r370 r371 95 95 setDebugLevel( DEBUG_LEVEL_VERBOSE ); 96 96 } 97 } 98 99 AvPlug::AvPlug() 100 : m_1394Service( 0 ) 101 , m_pConfigRom( 0 ) 102 , m_subunitType( AVCCommand::eST_Reserved ) // a good value for unknown/undefined? 103 , m_subunitId( 0 ) 104 , m_functionBlockType( 0 ) 105 , m_functionBlockId( 0 ) 106 , m_addressType( eAPA_Undefined ) 107 , m_direction( eAPD_Unknown ) 108 , m_id( 0 ) 109 , m_infoPlugType( eAPT_Unknown ) 110 , m_nrOfChannels( 0 ) 111 , m_plugManager( 0 ) 112 , m_verboseLevel( 0 ) 113 , m_globalId( 0 ) 114 { 97 115 } 98 116 … … 1413 1431 } 1414 1432 1433 bool 1434 AvPlug::serialize( Glib::ustring basePath, Util::IOSerialize& ser ) 1435 { 1436 bool result; 1437 result = ser.write( basePath + "m_subunitType", m_subunitType ); 1438 result &= ser.write( basePath + "m_subunitId", m_subunitId ); 1439 /// XXX ... 1440 1441 return result; 1442 } 1443 1444 AvPlug* 1445 AvPlug::deserialize( Glib::ustring basePath, 1446 Util::IODeserialize& deser, 1447 Ieee1394Service& ieee1394Service, 1448 ConfigRom& configRom, 1449 AvPlugManager& plugManager ) 1450 { 1451 AvPlug* pPlug = new AvPlug; 1452 if ( !pPlug ) { 1453 return 0; 1454 } 1455 1456 pPlug->m_1394Service = &ieee1394Service; 1457 pPlug->m_pConfigRom = &configRom; 1458 pPlug->m_plugManager = &plugManager; 1459 bool result; 1460 result = deser.read( basePath + "m_subunitType", pPlug->m_subunitType ); 1461 result &= deser.read( basePath + "m_subunitId", pPlug->m_subunitId ); 1462 // XXX ... 1463 1464 if ( !result ) { 1465 delete pPlug; 1466 return 0; 1467 } 1468 1469 return pPlug; 1470 } 1471 1415 1472 ///////////////////////////////////////// 1416 1473 ///////////////////////////////////////// trunk/libfreebob/src/bebob/bebob_avplug.h
r370 r371 30 30 #include "libfreebob/xmlparser.h" 31 31 32 #include "libutil/serialize.h" 33 32 34 #include "debugmodule/debugmodule.h" 35 36 #include <glibmm/ustring.h> 33 37 34 38 class Ieee1394Service; … … 155 159 { return m_clusterInfos; } 156 160 161 bool serialize( Glib::ustring basePath, Util::IOSerialize& ser ); 162 static AvPlug* deserialize( Glib::ustring basePath, 163 Util::IODeserialize& deser, 164 Ieee1394Service& ieee1394Service, 165 ConfigRom& configRom, 166 AvPlugManager& plugManager ); 157 167 protected: 158 168 bool discoverPlugType(); … … 195 205 196 206 EAvPlugDirection toggleDirection( EAvPlugDirection direction ) const; 207 208 private: 209 AvPlug(); 197 210 198 211 private: