[prev in list] [next in list] [prev in thread] [next in thread]
List: freebob-cvs
Subject: [Freebob-cvs] libfreebob/src avplug.h,1.12,1.13 avplug.cpp,1.13,1.14 avdevicesubunit.cpp,1.8,1.9
From: Daniel Wagner <wagi () users ! sourceforge ! net>
Date: 2006-03-14 23:12:10
Message-ID: E1FJIgX-0004Qj-Bb () mail ! sourceforge ! net
[Download RAW message or body]
Update of /cvsroot/freebob/libfreebob/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23725/src
Modified Files:
avplug.h avplug.cpp avdevicesubunit.cpp
Log Message:
2006-03-15 Daniel Wagner <wagi@monom.org>
* configure.ac: Version bump to 0.5.1
* src/libfreebobavc/avc_extended_plug_info.cpp (fire):
Handle NOT_IMPLEMENTED.
* src/avplug.h: Input and output plug discovering part
fixed. Now connection are correctly handled.
* src/avplug.cpp: Likewise.
* src/avdevicesubunit.cpp: Likewise.
Index: avplug.cpp
===================================================================
RCS file: /cvsroot/freebob/libfreebob/src/avplug.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** avplug.cpp 9 Mar 2006 23:39:33 -0000 1.13
--- avplug.cpp 14 Mar 2006 23:12:07 -0000 1.14
***************
*** 24,27 ****
--- 24,29 ----
#include "libfreebobavc/serialize.h"
+ int AvPlug::m_globalIdCounter = 0;
+
IMPL_DEBUG_MODULE( AvPlug, AvPlug, DEBUG_LEVEL_NORMAL );
***************
*** 52,55 ****
--- 54,58 ----
, m_plugManager( &plugManager )
, m_verbose( verbose )
+ , m_globalId( m_globalIdCounter++ )
{
if ( m_verbose ) {
***************
*** 229,266 ****
}
! ExtendedPlugInfoInfoType* infoType = extPlugInfoCmd.getInfoType();
! if ( infoType
! && infoType->m_plugType )
! {
! plug_type_t plugType = infoType->m_plugType->m_plugType;
! debugOutput( DEBUG_LEVEL_VERBOSE,
! "plug %d is of type %d (%s)\n",
! m_id,
! plugType,
! extendedPlugInfoPlugTypeToString( plugType ) );
! switch ( plugType ) {
! case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_IsoStream:
! m_infoPlugType = eAPT_IsoStream;
! break;
! case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_AsyncStream:
! m_infoPlugType = eAPT_AsyncStream;
! break;
! case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_Midi:
! m_infoPlugType = eAPT_Midi;
! break;
! case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_Sync:
! m_infoPlugType = eAPT_Sync;
! break;
! case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_Analog:
! m_infoPlugType = eAPT_Analog;
! break;
! case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_Digital:
! m_infoPlugType = eAPT_Digital;
! break;
! default:
! m_infoPlugType = eAPT_Unknown;
}
}
--- 232,277 ----
}
! m_infoPlugType = eAPT_Unknown;
! if ( extPlugInfoCmd.getResponse() == AVCCommand::eR_Implemented ) {
+ ExtendedPlugInfoInfoType* infoType = extPlugInfoCmd.getInfoType();
+ if ( infoType
+ && infoType->m_plugType )
+ {
+ plug_type_t plugType = infoType->m_plugType->m_plugType;
+
+ debugOutput( DEBUG_LEVEL_VERBOSE,
+ "plug %d is of type %d (%s)\n",
+ m_id,
+ plugType,
+ extendedPlugInfoPlugTypeToString( plugType ) );
+ switch ( plugType ) {
+ case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_IsoStream:
+ m_infoPlugType = eAPT_IsoStream;
+ break;
+ case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_AsyncStream:
+ m_infoPlugType = eAPT_AsyncStream;
+ break;
+ case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_Midi:
+ m_infoPlugType = eAPT_Midi;
+ break;
+ case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_Sync:
+ m_infoPlugType = eAPT_Sync;
+ break;
+ case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_Analog:
+ m_infoPlugType = eAPT_Analog;
+ break;
+ case ExtendedPlugInfoPlugTypeSpecificData::eEPIPT_Digital:
+ m_infoPlugType = eAPT_Digital;
+ break;
+ default:
+ m_infoPlugType = eAPT_Unknown;
+
+ }
}
+ } else {
+ debugWarning( "Plug does implement extended plug info plug "
+ "type info command\n" );
}
***************
*** 811,820 ****
if ( plug ) {
debugOutput( DEBUG_LEVEL_NORMAL,
! "'%s' has a connection to '%s'\n",
getName(),
plug->getName() );
addPlugConnection( connections, *plug );
} else {
! debugError( "no corresponding plug found for '%s'\n",
getName() );
return false;
--- 822,834 ----
if ( plug ) {
debugOutput( DEBUG_LEVEL_NORMAL,
! "'(%d) %s' has a connection to '(%d) %s'\n",
! getGlobalId(),
getName(),
+ plug->getGlobalId(),
plug->getName() );
addPlugConnection( connections, *plug );
} else {
! debugError( "no corresponding plug found for '(%d) %s'\n",
! getGlobalId(),
getName() );
return false;
***************
*** 872,876 ****
m_id );
extPlugInfoCmd.setPlugAddress(
! PlugAddress( convertPlugDirection(),
PlugAddress::ePAM_Unit,
unitPlugAddress ) );
--- 886,890 ----
m_id );
extPlugInfoCmd.setPlugAddress(
! PlugAddress( convertPlugDirection( getPlugDirection() ),
PlugAddress::ePAM_Unit,
unitPlugAddress ) );
***************
*** 885,891 ****
SubunitPlugAddress subunitPlugAddress( m_id );
extPlugInfoCmd.setPlugAddress(
! PlugAddress( convertPlugDirection(),
! PlugAddress::ePAM_Subunit,
! subunitPlugAddress ) );
}
break;
--- 899,906 ----
SubunitPlugAddress subunitPlugAddress( m_id );
extPlugInfoCmd.setPlugAddress(
! PlugAddress(
! convertPlugDirection( getPlugDirection() ),
! PlugAddress::ePAM_Subunit,
! subunitPlugAddress ) );
}
break;
***************
*** 898,902 ****
extPlugInfoCmd.setPlugAddress(
PlugAddress(
! convertPlugDirection(),
PlugAddress::ePAM_FunctionBlock,
functionBlockPlugAddress ) );
--- 913,917 ----
extPlugInfoCmd.setPlugAddress(
PlugAddress(
! convertPlugDirection( getPlugDirection() ),
PlugAddress::ePAM_FunctionBlock,
functionBlockPlugAddress ) );
***************
*** 948,952 ****
m_id );
extStreamFormatInfoCmd.setPlugAddress(
! PlugAddress( convertPlugDirection(),
PlugAddress::ePAM_Unit,
unitPlugAddress ) );
--- 963,967 ----
m_id );
extStreamFormatInfoCmd.setPlugAddress(
! PlugAddress( convertPlugDirection( getPlugDirection() ),
PlugAddress::ePAM_Unit,
unitPlugAddress ) );
***************
*** 961,965 ****
SubunitPlugAddress subunitPlugAddress( m_id );
extStreamFormatInfoCmd.setPlugAddress(
! PlugAddress( convertPlugDirection(),
PlugAddress::ePAM_Subunit,
subunitPlugAddress ) );
--- 976,980 ----
SubunitPlugAddress subunitPlugAddress( m_id );
extStreamFormatInfoCmd.setPlugAddress(
! PlugAddress( convertPlugDirection( getPlugDirection() ),
PlugAddress::ePAM_Subunit,
subunitPlugAddress ) );
***************
*** 973,977 ****
m_id );
extStreamFormatInfoCmd.setPlugAddress(
! PlugAddress( convertPlugDirection(),
PlugAddress::ePAM_FunctionBlock,
functionBlockPlugAddress ) );
--- 988,992 ----
m_id );
extStreamFormatInfoCmd.setPlugAddress(
! PlugAddress( convertPlugDirection( getPlugDirection() ),
PlugAddress::ePAM_FunctionBlock,
functionBlockPlugAddress ) );
***************
*** 1152,1159 ****
PlugAddress::EPlugDirection
! AvPlug::convertPlugDirection() const
{
PlugAddress::EPlugDirection dir;
! switch ( m_direction ) {
case AvPlug::eAPD_Input:
dir = PlugAddress::ePD_Input;
--- 1167,1174 ----
PlugAddress::EPlugDirection
! AvPlug::convertPlugDirection( EAvPlugDirection direction ) const
{
PlugAddress::EPlugDirection dir;
! switch ( direction ) {
case AvPlug::eAPD_Input:
dir = PlugAddress::ePD_Input;
***************
*** 1229,1234 ****
break;
}
! direction = getDirection();
plugId = pUnitPlugAddress->m_plugId;
}
--- 1244,1265 ----
break;
}
! // unit plug have only connections to subunits
! if ( getPlugAddressType() == eAPA_SubunitPlug ) {
! direction = getDirection();
! } else {
! debugError( "Function block has connection from/to unknown "
! "plug type\n" );
! direction = eAPD_Unknown;
! }
plugId = pUnitPlugAddress->m_plugId;
+
+ debugOutput( DEBUG_LEVEL_NORMAL,
+ "'(%d) %s': Remote plug is a unit plug "
+ "(%s, %s, %d)\n",
+ getGlobalId(),
+ getName(),
+ avPlugAddressTypeToString( addressType ),
+ avPlugDirectionToString( direction ),
+ plugId );
}
***************
*** 1238,1258 ****
addressType = eAPA_SubunitPlug;
! if ( getPlugAddressType() == eAPA_SubunitPlug ) {
! switch ( getDirection() ) {
! case eAPD_Output:
! direction = eAPD_Input;
! break;
! case eAPD_Input:
! direction = eAPD_Output;
! break;
! default:
! debugError( "Unhandled direction\n" );
! return 0;
! }
} else {
direction = getDirection();
}
plugId = pSubunitPlugAddress->m_plugId;
}
--- 1269,1291 ----
addressType = eAPA_SubunitPlug;
! if ( getPlugAddressType() == eAPA_FunctionBlockPlug ) {
! direction = getDirection();
! } else if ( getPlugAddressType() == eAPA_SubunitPlug ) {
! direction = toggleDirection( getDirection() );
} else {
+ // unit
direction = getDirection();
}
plugId = pSubunitPlugAddress->m_plugId;
+ debugOutput( DEBUG_LEVEL_VERBOSE,
+ "'(%d) %s': Remote plug is a subunit plug "
+ "(%d, %d, %s, %d)\n",
+ getGlobalId(),
+ getName(),
+ subunitType,
+ subunitId,
+ avPlugDirectionToString( direction ),
+ plugId );
}
***************
*** 1264,1286 ****
addressType = eAPA_FunctionBlockPlug;
! /*
! if ( getPlugAddressType() != eAPA_FunctionBlockPlug ) {
! */
! switch ( getDirection() ) {
! case eAPD_Output:
! direction = eAPD_Input;
! break;
! case eAPD_Input:
! direction = eAPD_Output;
! break;
! default:
! debugError( "Unhandled direction\n" );
! return 0;
! }
! /*
}
- */
plugId = pFunctionBlockPlugAddress->m_plugId;
}
--- 1297,1323 ----
addressType = eAPA_FunctionBlockPlug;
! if ( getPlugAddressType() == eAPA_FunctionBlockPlug ) {
! direction = toggleDirection( getDirection() );
! } else if ( getPlugAddressType() == eAPA_SubunitPlug ){
! direction = getDirection();
! } else {
! debugError( "Function block has connection from/to unknown "
! "plug type\n" );
! direction = eAPD_Unknown;
}
plugId = pFunctionBlockPlugAddress->m_plugId;
+
+ debugOutput( DEBUG_LEVEL_VERBOSE,
+ "'(%d) %s': Remote plug is a functionblock plug "
+ "(%d, %d, %d, %d, %s, %d)\n",
+ getGlobalId(),
+ getName(),
+ subunitType,
+ subunitId,
+ functionBlockType,
+ functionBlockId,
+ avPlugDirectionToString( direction ),
+ plugId );
}
***************
*** 1298,1301 ****
--- 1335,1356 ----
}
+ AvPlug::EAvPlugDirection
+ AvPlug::toggleDirection( EAvPlugDirection direction ) const
+ {
+ EAvPlugDirection newDirection;
+ switch ( direction ) {
+ case eAPD_Output:
+ newDirection = eAPD_Input;
+ break;
+ case eAPD_Input:
+ newDirection = eAPD_Output;
+ break;
+ default:
+ newDirection = direction;
+ }
+
+ return newDirection;
+ }
+
/////////////////////////////////////////
/////////////////////////////////////////
***************
*** 1436,1448 ****
printf( "---+-----------------+-----------+-------------+-----------+-------------------+-----------------+------+--------------+------\n" \
);
- int i = 0;
for ( AvPlugVector::const_iterator it = m_plugs.begin();
it != m_plugs.end();
! ++it, ++i )
{
AvPlug* plug = *it;
printf( "%2d | %15s | %9s | %11s | 0x%02x | 0x%02x | \
0x%02x | 0x%02x | %12s | %s\n",
! i,
avPlugAddressTypeToString( plug->getPlugAddressType() ),
avPlugDirectionToString( plug->getDirection() ),
--- 1491,1502 ----
printf( "---+-----------------+-----------+-------------+-----------+-------------------+-----------------+------+--------------+------\n" \
);
for ( AvPlugVector::const_iterator it = m_plugs.begin();
it != m_plugs.end();
! ++it )
{
AvPlug* plug = *it;
printf( "%2d | %15s | %9s | %11s | 0x%02x | 0x%02x | \
0x%02x | 0x%02x | %12s | %s\n",
! plug->getGlobalId(),
avPlugAddressTypeToString( plug->getPlugAddressType() ),
avPlugDirectionToString( plug->getDirection() ),
***************
*** 1481,1484 ****
--- 1535,1539 ----
}
}
+
printf( "digraph avcconnections {\n" );
for ( AvPlugConnectionOwnerVector::iterator it = connections.begin();
***************
*** 1487,1520 ****
{
AvPlugConnection& con = *it;
- /*
- printf( "\t\"%s\" -> \"%s\"\n",
- con.getSrcPlug().getName(),
- con.getDestPlug().getName() );
- */
-
- int srcIdx = getIndexForPlug(
- con.getSrcPlug().getSubunitType(),
- con.getSrcPlug().getSubunitId(),
- con.getSrcPlug().getFunctionBlockType(),
- con.getSrcPlug().getFunctionBlockId(),
- con.getSrcPlug().getPlugAddressType(),
- con.getSrcPlug().getDirection(),
- con.getSrcPlug().getPlugId() );
-
- int destIdx = getIndexForPlug(
- con.getDestPlug().getSubunitType(),
- con.getDestPlug().getSubunitId(),
- con.getDestPlug().getFunctionBlockType(),
- con.getDestPlug().getFunctionBlockId(),
- con.getDestPlug().getPlugAddressType(),
- con.getDestPlug().getDirection(),
- con.getDestPlug().getPlugId() );
-
printf( "\t\"(%d) %s\" -> \"(%d) %s\"\n",
! srcIdx,
con.getSrcPlug().getName(),
! destIdx,
con.getDestPlug().getName() );
}
const char* colorStrings[] = {
"coral",
--- 1542,1573 ----
{
AvPlugConnection& con = *it;
printf( "\t\"(%d) %s\" -> \"(%d) %s\"\n",
! con.getSrcPlug().getGlobalId(),
con.getSrcPlug().getName(),
! con.getDestPlug().getGlobalId(),
con.getDestPlug().getName() );
}
+ for ( AvPlugVector::const_iterator it = m_plugs.begin();
+ it != m_plugs.end();
+ ++it )
+ {
+ AvPlug* plug = *it;
+ if ( plug->getFunctionBlockType() != 0xff ) {
+ if ( plug->getPlugDirection() == AvPlug::eAPD_Input ) {
+ printf( "\t\"(%d) %s\" -> \"(0x%02x,%d)\"\n",
+ plug->getGlobalId(),
+ plug->getName(),
+ plug->getFunctionBlockType(),
+ plug->getFunctionBlockId() );
+ } else {
+ printf( "\t\"(0x%02x,%d)\" -> \t\"(%d) %s\"\n",
+ plug->getFunctionBlockType(),
+ plug->getFunctionBlockId(),
+ plug->getGlobalId(),
+ plug->getName() );
+ }
+ }
+ }
+
const char* colorStrings[] = {
"coral",
***************
*** 1526,1541 ****
};
- i = 0;
for ( AvPlugVector::const_iterator it = m_plugs.begin();
it != m_plugs.end();
! ++it, ++i)
{
AvPlug* plug = *it;
printf( "\t\"(%d) %s\" [color=%s,style=filled];\n",
! i, plug->getName(),
colorStrings[plug->getPlugAddressType() ] );
}
! printf( "}\n" );
printf( "Use \"dot -Tps FILENAME.dot -o FILENAME.ps\" "
"to generate graph\n");
--- 1579,1593 ----
};
for ( AvPlugVector::const_iterator it = m_plugs.begin();
it != m_plugs.end();
! ++it )
{
AvPlug* plug = *it;
printf( "\t\"(%d) %s\" [color=%s,style=filled];\n",
! plug->getGlobalId(), plug->getName(),
colorStrings[plug->getPlugAddressType() ] );
}
! printf("}\n" );
printf( "Use \"dot -Tps FILENAME.dot -o FILENAME.ps\" "
"to generate graph\n");
***************
*** 1543,1553 ****
debugOutput( DEBUG_LEVEL_VERBOSE, "Plug details\n" );
debugOutput( DEBUG_LEVEL_VERBOSE, "------------\n" );
- i = 0;
for ( AvPlugVector::const_iterator it = m_plugs.begin();
it != m_plugs.end();
! ++it, ++i )
{
AvPlug* plug = *it;
! debugOutput( DEBUG_LEVEL_VERBOSE, "Plug %d:\n", i );
plug->showPlug();
--- 1595,1604 ----
debugOutput( DEBUG_LEVEL_VERBOSE, "Plug details\n" );
debugOutput( DEBUG_LEVEL_VERBOSE, "------------\n" );
for ( AvPlugVector::const_iterator it = m_plugs.begin();
it != m_plugs.end();
! ++it )
{
AvPlug* plug = *it;
! debugOutput( DEBUG_LEVEL_VERBOSE, "Plug %d:\n", plug->getGlobalId() );
plug->showPlug();
***************
*** 1636,1672 ****
}
- int
- AvPlugManager::getIndexForPlug( AVCCommand::ESubunitType subunitType,
- subunit_id_t subunitId,
- function_block_type_t functionBlockType,
- function_block_id_t functionBlockId,
- AvPlug::EAvPlugAddressType plugAddressType,
- AvPlug::EAvPlugDirection plugDirection,
- plug_id_t plugId ) const
- {
- int i = 0;
- for ( AvPlugVector::const_iterator it = m_plugs.begin();
- it != m_plugs.end();
- ++it, ++i )
- {
- AvPlug* plug = *it;
-
- if ( ( subunitType == plug->getSubunitType() )
- && ( subunitId == plug->getSubunitId() )
- && ( functionBlockType == plug->getFunctionBlockType() )
- && ( functionBlockId == plug->getFunctionBlockId() )
- && ( plugAddressType == plug->getPlugAddressType() )
- && ( plugDirection == plug->getPlugDirection() )
- && ( plugId == plug->getPlugId() ) )
- {
- return i;
- }
- }
-
- return -1;
- }
-
-
-
////////////////////////////////////
--- 1687,1690 ----
Index: avdevicesubunit.cpp
===================================================================
RCS file: /cvsroot/freebob/libfreebob/src/avdevicesubunit.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** avdevicesubunit.cpp 9 Mar 2006 23:39:33 -0000 1.8
--- avdevicesubunit.cpp 14 Mar 2006 23:12:07 -0000 1.9
***************
*** 87,92 ****
"plugs = %d\n", plugInfoCmd.m_destinationPlugs );
! if ( !discoverPlugs( AvPlug::eAPD_Input,
! plugInfoCmd.m_destinationPlugs ) )
{
debugError( "destination plug discovering failed\n" );
--- 87,92 ----
"plugs = %d\n", plugInfoCmd.m_destinationPlugs );
! if ( !discoverPlugs( AvPlug::eAPD_Input,
! plugInfoCmd.m_destinationPlugs ) )
{
debugError( "destination plug discovering failed\n" );
Index: avplug.h
===================================================================
RCS file: /cvsroot/freebob/libfreebob/src/avplug.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** avplug.h 9 Mar 2006 23:39:33 -0000 1.12
--- avplug.h 14 Mar 2006 23:12:07 -0000 1.13
***************
*** 87,97 ****
bool inquireConnnection( AvPlug& plug );
! plug_id_t getPlugId() const
{ return m_id; }
AVCCommand::ESubunitType getSubunitType() const
{ return m_subunitType; }
! subunit_id_t getSubunitId() const
{ return m_subunitId; }
! const char* getName() const
{ return m_name.c_str(); }
EAvPlugDirection getPlugDirection() const
--- 87,99 ----
bool inquireConnnection( AvPlug& plug );
! int getGlobalId() const
! { return m_globalId; }
! plug_id_t getPlugId() const
{ return m_id; }
AVCCommand::ESubunitType getSubunitType() const
{ return m_subunitType; }
! subunit_id_t getSubunitId() const
{ return m_subunitId; }
! const char* getName() const
{ return m_name.c_str(); }
EAvPlugDirection getPlugDirection() const
***************
*** 123,127 ****
bool addXmlDescriptionStreamFormats( xmlNodePtr streamFormats );
! PlugAddress::EPlugDirection convertPlugDirection() const;
void showPlug() const;
--- 125,130 ----
bool addXmlDescriptionStreamFormats( xmlNodePtr streamFormats );
! PlugAddress::EPlugDirection convertPlugDirection(
! EAvPlugDirection direction) const;
void showPlug() const;
***************
*** 140,146 ****
ExtendedPlugInfoCmd setPlugAddrToPlugInfoCmd();
! ExtendedStreamFormatCmd \
setPlugAddrToStreamFormatCmd(ExtendedStreamFormatCmd::ESubFunction subFunction); \
SignalSourceCmd setSrcPlugAddrToSignalCmd();
! void setDestPlugAddrToSignalCmd( SignalSourceCmd& signalSourceCmd, AvPlug& plug \
);
void debugOutputClusterInfos( int debugLevel );
--- 143,154 ----
ExtendedPlugInfoCmd setPlugAddrToPlugInfoCmd();
!
! ExtendedStreamFormatCmd setPlugAddrToStreamFormatCmd(
! ExtendedStreamFormatCmd::ESubFunction subFunction);
!
SignalSourceCmd setSrcPlugAddrToSignalCmd();
!
! void setDestPlugAddrToSignalCmd(
! SignalSourceCmd& signalSourceCmd, AvPlug& plug );
void debugOutputClusterInfos( int debugLevel );
***************
*** 160,163 ****
--- 168,174 ----
SubunitPlugSpecificDataPlugAddress* pSubunitPlugAddress,
FunctionBlockPlugSpecificDataPlugAddress* pFunctionBlockPlugAddress );
+
+ EAvPlugDirection toggleDirection( EAvPlugDirection direction ) const;
+
private:
Ieee1394Service* m_1394Service;
***************
*** 232,235 ****
--- 243,250 ----
bool m_verbose;
+ int m_globalId;
+
+ static int m_globalIdCounter;
+
DECLARE_DEBUG_MODULE;
};
***************
*** 265,275 ****
AvPlug::EAvPlugDirection plugDirection,
AvPlug::EAvPlugType type) const;
- int getIndexForPlug( AVCCommand::ESubunitType subunitType,
- subunit_id_t subunitId,
- function_block_type_t functionBlockType,
- function_block_id_t functionBlockId,
- AvPlug::EAvPlugAddressType plugAddressType,
- AvPlug::EAvPlugDirection plugDirection,
- plug_id_t plugId ) const;
private:
--- 280,283 ----
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Freebob-cvs mailing list
Freebob-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freebob-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic