[libfreebob] - Re-include the accidentally removed BR: autoconf - Trim the irrelevant part of the gcc4.7 patch
Orcan Ogetbil
oget at fedoraproject.org
Thu Jan 12 02:03:46 UTC 2012
commit 0c4ea6b47e8baea1b922b4ff3220b9d0617ec598
Author: Orcan Ogetbil <oget.fedora at gmail.com>
Date: Wed Jan 11 21:02:37 2012 -0500
- Re-include the accidentally removed BR: autoconf
- Trim the irrelevant part of the gcc4.7 patch
libfreebob-gcc47.patch | 860 ------------------------------------------------
libfreebob.spec | 1 +
2 files changed, 1 insertions(+), 860 deletions(-)
---
diff --git a/libfreebob-gcc47.patch b/libfreebob-gcc47.patch
index 1327495..5810004 100644
--- a/libfreebob-gcc47.patch
+++ b/libfreebob-gcc47.patch
@@ -84,866 +84,6 @@ diff -rupN libfreebob-1.0.11.old/src/libfreebobavc/avc_extended_plug_info.cpp li
ExtendedPlugInfoClusterInfoSpecificData::clone() const
{
return new ExtendedPlugInfoClusterInfoSpecificData( *this );
-diff -rupN libfreebob-1.0.11.old/src/libfreebobavc/avc_extended_plug_info.cpp.orig libfreebob-1.0.11/src/libfreebobavc/avc_extended_plug_info.cpp.orig
---- libfreebob-1.0.11.old/src/libfreebobavc/avc_extended_plug_info.cpp.orig 1969-12-31 19:00:00.000000000 -0500
-+++ libfreebob-1.0.11/src/libfreebobavc/avc_extended_plug_info.cpp.orig 2012-01-11 20:27:22.622943305 -0500
-@@ -0,0 +1,856 @@
-+/* avc_extended_plug_info.cpp
-+ * Copyright (C) 2005 by Daniel Wagner
-+ *
-+ * This file is part of FreeBoB.
-+ *
-+ * FreeBoB is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ * FreeBoB is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with FreeBoB; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA.
-+ */
-+
-+#include "avc_extended_plug_info.h"
-+#include "serialize.h"
-+#include "ieee1394service.h"
-+
-+#include <cstdlib>
-+#include <cstdio>
-+#include <cstring>
-+#include <netinet/in.h>
-+#include <iostream>
-+
-+using namespace std;
-+
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+
-+ExtendedPlugInfoPlugTypeSpecificData::ExtendedPlugInfoPlugTypeSpecificData( EExtendedPlugInfoPlugType ePlugType )
-+ : IBusData()
-+ , m_plugType( ePlugType )
-+{
-+}
-+
-+ExtendedPlugInfoPlugTypeSpecificData::~ExtendedPlugInfoPlugTypeSpecificData()
-+{
-+}
-+
-+bool
-+ExtendedPlugInfoPlugTypeSpecificData::serialize( IOSSerialize& se )
-+{
-+ se.write( m_plugType, "ExtendedPlugInfoPlugTypeSpecificData plugType" );
-+ return true;
-+}
-+
-+
-+bool
-+ExtendedPlugInfoPlugTypeSpecificData::deserialize( IISDeserialize& de )
-+{
-+ de.read( &m_plugType );
-+ return true;
-+}
-+
-+ExtendedPlugInfoPlugTypeSpecificData* ExtendedPlugInfoPlugTypeSpecificData::clone() const
-+{
-+ return new ExtendedPlugInfoPlugTypeSpecificData( *this );
-+}
-+
-+const char* extendedPlugInfoPlugTypeStrings[] =
-+{
-+ "IsoStream",
-+ "AsyncStream",
-+ "Midi",
-+ "Sync",
-+ "Analog",
-+ "Digital",
-+ "Unknown",
-+};
-+
-+const char* extendedPlugInfoPlugTypeToString( plug_type_t plugType )
-+{
-+ if ( plugType > sizeof( extendedPlugInfoPlugTypeStrings ) ) {
-+ return "Unknown";
-+ } else {
-+ return extendedPlugInfoPlugTypeStrings[plugType];
-+ }
-+}
-+
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+
-+ExtendedPlugInfoPlugNameSpecificData::ExtendedPlugInfoPlugNameSpecificData()
-+ : IBusData()
-+{
-+}
-+
-+ExtendedPlugInfoPlugNameSpecificData::~ExtendedPlugInfoPlugNameSpecificData()
-+{
-+}
-+
-+bool
-+ExtendedPlugInfoPlugNameSpecificData::serialize( IOSSerialize& se )
-+{
-+ byte_t length = strlen( m_name.c_str() );
-+ se.write( length,
-+ "ExtendedPlugInfoPlugNameSpecificData: string length" );
-+ for ( unsigned int i = 0; i < length; ++i ) {
-+ se.write( static_cast<byte_t>( m_name[i] ),
-+ "ExtendedPlugInfoPlugNameSpecificData: char" );
-+ }
-+
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoPlugNameSpecificData::deserialize( IISDeserialize& de )
-+{
-+ byte_t length;
-+ de.read( &length );
-+ m_name.clear();
-+ char* name;
-+ de.read( &name, length );
-+ m_name = name;
-+
-+ return true;
-+}
-+
-+ExtendedPlugInfoPlugNameSpecificData::ExtendedPlugInfoPlugNameSpecificData*
-+ExtendedPlugInfoPlugNameSpecificData::clone() const
-+{
-+ return new ExtendedPlugInfoPlugNameSpecificData( *this );
-+}
-+
-+
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+
-+ExtendedPlugInfoPlugNumberOfChannelsSpecificData::ExtendedPlugInfoPlugNumberOfChannelsSpecificData()
-+ : IBusData()
-+ , m_nrOfChannels( 0 )
-+{
-+}
-+
-+ExtendedPlugInfoPlugNumberOfChannelsSpecificData::~ExtendedPlugInfoPlugNumberOfChannelsSpecificData()
-+{
-+}
-+
-+bool
-+ExtendedPlugInfoPlugNumberOfChannelsSpecificData::serialize( IOSSerialize& se )
-+{
-+ se.write( m_nrOfChannels,
-+ "ExtendedPlugInfoPlugNumberOfChannelsSpecificData: "
-+ "number of channels" );
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoPlugNumberOfChannelsSpecificData::deserialize( IISDeserialize& de )
-+{
-+ de.read( &m_nrOfChannels );
-+ return true;
-+}
-+
-+ExtendedPlugInfoPlugNumberOfChannelsSpecificData::ExtendedPlugInfoPlugNumberOfChannelsSpecificData*
-+ExtendedPlugInfoPlugNumberOfChannelsSpecificData::clone() const
-+{
-+ return new ExtendedPlugInfoPlugNumberOfChannelsSpecificData( *this );
-+}
-+
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+
-+ExtendedPlugInfoPlugChannelPositionSpecificData::ExtendedPlugInfoPlugChannelPositionSpecificData()
-+ : IBusData()
-+ , m_nrOfClusters( 0 )
-+{
-+}
-+
-+ExtendedPlugInfoPlugChannelPositionSpecificData::~ExtendedPlugInfoPlugChannelPositionSpecificData()
-+{
-+}
-+
-+bool
-+ExtendedPlugInfoPlugChannelPositionSpecificData::serialize( IOSSerialize& se )
-+{
-+ se.write( m_nrOfClusters,
-+ "ExtendedPlugInfoPlugChannelPositionSpecificData: "
-+ "number of clusters" );
-+
-+ for ( ClusterInfoVector::const_iterator it = m_clusterInfos.begin();
-+ it != m_clusterInfos.end();
-+ ++it )
-+ {
-+ const ClusterInfo* clusterInfo = &( *it );
-+
-+ se.write( clusterInfo->m_nrOfChannels,
-+ "ExtendedPlugInfoPlugChannelPositionSpecificData: "
-+ "number of channels" );
-+ for ( ChannelInfoVector::const_iterator cit
-+ = clusterInfo->m_channelInfos.begin();
-+ cit != clusterInfo->m_channelInfos.end();
-+ ++cit )
-+ {
-+ const ChannelInfo* channelInfo = &( *cit );
-+ se.write( channelInfo->m_streamPosition,
-+ "ExtendedPlugInfoPlugChannelPositionSpecificData: "
-+ "stream position" );
-+ se.write( channelInfo->m_location,
-+ "ExtendedPlugInfoPlugChannelPositionSpecificData: "
-+ "location" );
-+ }
-+ }
-+
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoPlugChannelPositionSpecificData::deserialize( IISDeserialize& de )
-+{
-+ m_clusterInfos.clear();
-+
-+ de.read( &m_nrOfClusters );
-+ for ( int i = 0; i < m_nrOfClusters; ++i ) {
-+ ClusterInfo clusterInfo;
-+ de.read ( &clusterInfo.m_nrOfChannels );
-+ for ( int j = 0; j < clusterInfo.m_nrOfChannels; ++j ) {
-+ ChannelInfo channelInfo;
-+ de.read( &channelInfo.m_streamPosition );
-+ de.read( &channelInfo.m_location );
-+ clusterInfo.m_channelInfos.push_back( channelInfo );
-+ }
-+ m_clusterInfos.push_back( clusterInfo );
-+ }
-+ return true;
-+}
-+
-+ExtendedPlugInfoPlugChannelPositionSpecificData::ExtendedPlugInfoPlugChannelPositionSpecificData*
-+ExtendedPlugInfoPlugChannelPositionSpecificData::clone() const
-+{
-+ return new ExtendedPlugInfoPlugChannelPositionSpecificData( *this );
-+}
-+
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+
-+ExtendedPlugInfoPlugChannelNameSpecificData::ExtendedPlugInfoPlugChannelNameSpecificData()
-+ : IBusData()
-+ , m_streamPosition( 0 )
-+ , m_stringLength( 0xff )
-+{
-+}
-+
-+ExtendedPlugInfoPlugChannelNameSpecificData::~ExtendedPlugInfoPlugChannelNameSpecificData()
-+{
-+}
-+
-+bool
-+ExtendedPlugInfoPlugChannelNameSpecificData::serialize( IOSSerialize& se )
-+{
-+ se.write( m_streamPosition,
-+ "ExtendedPlugInfoPlugChannelNameSpecificData: stream position" );
-+ se.write( m_stringLength,
-+ "ExtendedPlugInfoPlugChannelNameSpecificData: string length" );
-+ for ( unsigned int i = 0; i < m_plugChannelName.size(); ++i ) {
-+ se.write( static_cast<byte_t>( m_plugChannelName[i] ),
-+ "ExtendedPlugInfoPlugChannelNameSpecificData: char" );
-+ }
-+
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoPlugChannelNameSpecificData::deserialize( IISDeserialize& de )
-+{
-+ de.read( &m_streamPosition );
-+ de.read( &m_stringLength );
-+
-+ char* name = new char[m_stringLength+1];
-+ for ( int i = 0; i < m_stringLength; ++i ) {
-+ byte_t c;
-+ de.read( &c );
-+ // \todo do correct encoding
-+ if ( c == '&' ) {
-+ c = '+';
-+ }
-+ name[i] = c;
-+ }
-+ name[m_stringLength] = '\0';
-+ m_plugChannelName = name;
-+ delete[] name;
-+
-+ return true;
-+}
-+
-+ExtendedPlugInfoPlugChannelNameSpecificData::ExtendedPlugInfoPlugChannelNameSpecificData*
-+ExtendedPlugInfoPlugChannelNameSpecificData::clone() const
-+{
-+ return new ExtendedPlugInfoPlugChannelNameSpecificData( *this );
-+}
-+
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+ExtendedPlugInfoPlugInputSpecificData::ExtendedPlugInfoPlugInputSpecificData()
-+ : IBusData()
-+{
-+ UnitPlugSpecificDataPlugAddress
-+ unitPlug( UnitPlugSpecificDataPlugAddress::ePT_PCR, 0x00 );
-+ m_plugAddress
-+ = new PlugAddressSpecificData( PlugAddressSpecificData::ePD_Output,
-+ PlugAddressSpecificData::ePAM_Unit,
-+ unitPlug );
-+}
-+
-+ExtendedPlugInfoPlugInputSpecificData::ExtendedPlugInfoPlugInputSpecificData(const ExtendedPlugInfoPlugInputSpecificData& rhs )
-+{
-+ m_plugAddress = rhs.m_plugAddress->clone();
-+}
-+
-+
-+ExtendedPlugInfoPlugInputSpecificData::~ExtendedPlugInfoPlugInputSpecificData()
-+{
-+ delete m_plugAddress;
-+ m_plugAddress = 0;
-+}
-+
-+bool
-+ExtendedPlugInfoPlugInputSpecificData::serialize( IOSSerialize& se )
-+{
-+ if ( m_plugAddress ) {
-+ return m_plugAddress->serialize( se );
-+ } else {
-+ return false;
-+ }
-+}
-+
-+bool
-+ExtendedPlugInfoPlugInputSpecificData::deserialize( IISDeserialize& de )
-+{
-+ return m_plugAddress->deserialize( de );
-+}
-+
-+ExtendedPlugInfoPlugInputSpecificData::ExtendedPlugInfoPlugInputSpecificData*
-+ExtendedPlugInfoPlugInputSpecificData::clone() const
-+{
-+ return new ExtendedPlugInfoPlugInputSpecificData( *this );
-+}
-+
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+
-+ExtendedPlugInfoPlugOutputSpecificData::ExtendedPlugInfoPlugOutputSpecificData()
-+ : IBusData()
-+ , m_nrOfOutputPlugs( 0 )
-+{
-+}
-+
-+ExtendedPlugInfoPlugOutputSpecificData::ExtendedPlugInfoPlugOutputSpecificData( const ExtendedPlugInfoPlugOutputSpecificData& rhs)
-+ : IBusData()
-+ , m_nrOfOutputPlugs( rhs.m_nrOfOutputPlugs )
-+{
-+ for ( PlugAddressVector::const_iterator it = rhs.m_outputPlugAddresses.begin();
-+ it != rhs.m_outputPlugAddresses.end();
-+ ++it )
-+ {
-+ m_outputPlugAddresses.push_back( ( *it )->clone() );
-+ }
-+
-+}
-+
-+
-+ExtendedPlugInfoPlugOutputSpecificData::~ExtendedPlugInfoPlugOutputSpecificData()
-+{
-+ for ( PlugAddressVector::iterator it = m_outputPlugAddresses.begin();
-+ it != m_outputPlugAddresses.end();
-+ ++it )
-+ {
-+ delete *it;
-+ }
-+}
-+
-+bool
-+ExtendedPlugInfoPlugOutputSpecificData::serialize( IOSSerialize& se )
-+{
-+ se.write( m_nrOfOutputPlugs, "ExtendedPlugInfoPlugOutputSpecificData: number of output plugs" );
-+ for ( PlugAddressVector::const_iterator it = m_outputPlugAddresses.begin();
-+ it != m_outputPlugAddresses.end();
-+ ++it )
-+ {
-+ ( *it )->serialize( se );
-+ }
-+
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoPlugOutputSpecificData::deserialize( IISDeserialize& de )
-+{
-+ de.read( &m_nrOfOutputPlugs );
-+
-+ for ( int i = 0; i < m_nrOfOutputPlugs; ++i )
-+ {
-+ UnitPlugSpecificDataPlugAddress
-+ unitPlug( UnitPlugSpecificDataPlugAddress::ePT_PCR, 0x00 );
-+ PlugAddressSpecificData* plugAddress
-+ = new PlugAddressSpecificData( PlugAddressSpecificData::ePD_Output,
-+ PlugAddressSpecificData::ePAM_Unit,
-+ unitPlug );
-+ if ( !plugAddress->deserialize( de ) ) {
-+ return false;
-+ }
-+
-+ m_outputPlugAddresses.push_back( plugAddress );
-+ }
-+
-+ return true;
-+}
-+
-+ExtendedPlugInfoPlugOutputSpecificData::ExtendedPlugInfoPlugOutputSpecificData*
-+ExtendedPlugInfoPlugOutputSpecificData::clone() const
-+{
-+ return new ExtendedPlugInfoPlugOutputSpecificData( *this );
-+}
-+
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+ExtendedPlugInfoClusterInfoSpecificData::ExtendedPlugInfoClusterInfoSpecificData()
-+ : IBusData()
-+ , m_clusterIndex( 0 )
-+ , m_portType( ePT_NoType )
-+ , m_stringLength( 0xff )
-+{
-+}
-+
-+ExtendedPlugInfoClusterInfoSpecificData::~ExtendedPlugInfoClusterInfoSpecificData()
-+{
-+}
-+
-+bool
-+ExtendedPlugInfoClusterInfoSpecificData::serialize( IOSSerialize& se )
-+{
-+ se.write( m_clusterIndex,
-+ "ExtendedPlugInfoClusterInfoSpecificData: cluster index" );
-+ se.write( m_portType,
-+ "ExtendedPlugInfoClusterInfoSpecificData: port type" );
-+ se.write( m_stringLength,
-+ "ExtendedPlugInfoClusterInfoSpecificData: string length" );
-+ for ( unsigned int i = 0; i < m_clusterName.length(); ++i ) {
-+ se.write( static_cast<byte_t>( m_clusterName[i] ),
-+ "ExtendedPlugInfoClusterInfoSpecificData: char" );
-+ }
-+
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoClusterInfoSpecificData::deserialize( IISDeserialize& de )
-+{
-+
-+ de.read( &m_clusterIndex );
-+ de.read( &m_portType );
-+ de.read( &m_stringLength );
-+
-+ char* name = new char[m_stringLength+1];
-+ for ( int i = 0; i < m_stringLength; ++i ) {
-+ byte_t c;
-+ de.read( &c );
-+ // \todo do correct encoding
-+ if ( c == '&' ) {
-+ c = '+';
-+ }
-+ name[i] = c;
-+ }
-+ name[m_stringLength] = '\0';
-+ m_clusterName = name;
-+ delete[] name;
-+
-+ return true;
-+}
-+
-+ExtendedPlugInfoClusterInfoSpecificData::ExtendedPlugInfoClusterInfoSpecificData*
-+ExtendedPlugInfoClusterInfoSpecificData::clone() const
-+{
-+ return new ExtendedPlugInfoClusterInfoSpecificData( *this );
-+}
-+
-+const char* extendedPlugInfoPortTypeStrings[] =
-+{
-+ "Speaker",
-+ "Headphone",
-+ "Microphone",
-+ "Line",
-+ "SPDIF",
-+ "ADAT",
-+ "TDIF",
-+ "MADI",
-+ "Analog",
-+ "Digital",
-+ "MIDI",
-+};
-+
-+const char* extendedPlugInfoClusterInfoPortTypeToString( port_type_t portType )
-+{
-+ if ( portType > ( ( sizeof( extendedPlugInfoPortTypeStrings ) )
-+ / ( sizeof( extendedPlugInfoPortTypeStrings[0] ) ) ) ) {
-+ return "Unknown";
-+ } else {
-+ return extendedPlugInfoPortTypeStrings[portType];
-+ }
-+}
-+
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+/////////////////////////////////////////
-+
-+ExtendedPlugInfoInfoType::ExtendedPlugInfoInfoType(EInfoType eInfoType)
-+ : IBusData()
-+ , m_infoType( eInfoType )
-+ , m_plugType( 0 )
-+ , m_plugName( 0 )
-+ , m_plugNrOfChns( 0 )
-+ , m_plugChannelPosition( 0 )
-+ , m_plugChannelName( 0 )
-+ , m_plugInput( 0 )
-+ , m_plugOutput( 0 )
-+ , m_plugClusterInfo( 0 )
-+{
-+}
-+
-+ExtendedPlugInfoInfoType::ExtendedPlugInfoInfoType( const ExtendedPlugInfoInfoType& rhs )
-+ : IBusData()
-+ , m_infoType( rhs.m_infoType )
-+ , m_plugType( 0 )
-+ , m_plugName( 0 )
-+ , m_plugNrOfChns( 0 )
-+ , m_plugChannelPosition( 0 )
-+ , m_plugChannelName( 0 )
-+ , m_plugInput( 0 )
-+ , m_plugOutput( 0 )
-+ , m_plugClusterInfo( 0 )
-+{
-+ switch( m_infoType ) {
-+ case eIT_PlugType:
-+ m_plugType =
-+ new ExtendedPlugInfoPlugTypeSpecificData( *rhs.m_plugType );
-+ break;
-+ case eIT_PlugName:
-+ m_plugName =
-+ new ExtendedPlugInfoPlugNameSpecificData( *rhs.m_plugName );
-+ break;
-+ case eIT_NoOfChannels:
-+ m_plugNrOfChns =
-+ new ExtendedPlugInfoPlugNumberOfChannelsSpecificData( *rhs.m_plugNrOfChns );
-+ break;
-+ case eIT_ChannelPosition:
-+ m_plugChannelPosition =
-+ new ExtendedPlugInfoPlugChannelPositionSpecificData( *rhs.m_plugChannelPosition );
-+ break;
-+ case eIT_ChannelName:
-+ m_plugChannelName =
-+ new ExtendedPlugInfoPlugChannelNameSpecificData( *rhs.m_plugChannelName );
-+ break;
-+ case eIT_PlugInput:
-+ m_plugInput =
-+ new ExtendedPlugInfoPlugInputSpecificData( *rhs.m_plugInput );
-+ break;
-+ case eIT_PlugOutput:
-+ m_plugOutput =
-+ new ExtendedPlugInfoPlugOutputSpecificData( *rhs.m_plugOutput );
-+ break;
-+ case eIT_ClusterInfo:
-+ m_plugClusterInfo =
-+ new ExtendedPlugInfoClusterInfoSpecificData( *rhs.m_plugClusterInfo );
-+ break;
-+ }
-+}
-+
-+ExtendedPlugInfoInfoType::~ExtendedPlugInfoInfoType()
-+{
-+ delete( m_plugType );
-+ delete( m_plugName );
-+ delete( m_plugNrOfChns );
-+ delete( m_plugChannelPosition );
-+ delete( m_plugChannelName );
-+ delete( m_plugInput );
-+ delete( m_plugOutput );
-+ delete( m_plugClusterInfo );
-+ }
-+
-+bool
-+ExtendedPlugInfoInfoType::initialize()
-+{
-+ switch ( m_infoType ) {
-+ case eIT_PlugType:
-+ m_plugType = new ExtendedPlugInfoPlugTypeSpecificData;
-+ break;
-+ case eIT_PlugName:
-+ m_plugName = new ExtendedPlugInfoPlugNameSpecificData;
-+ break;
-+ case eIT_NoOfChannels:
-+ m_plugNrOfChns = new ExtendedPlugInfoPlugNumberOfChannelsSpecificData;
-+ break;
-+ case eIT_ChannelPosition:
-+ m_plugChannelPosition = new ExtendedPlugInfoPlugChannelPositionSpecificData;
-+ break;
-+ case eIT_ChannelName:
-+ m_plugChannelName = new ExtendedPlugInfoPlugChannelNameSpecificData;
-+ break;
-+ case eIT_PlugInput:
-+ m_plugInput = new ExtendedPlugInfoPlugInputSpecificData;
-+ break;
-+ case eIT_PlugOutput:
-+ m_plugOutput = new ExtendedPlugInfoPlugOutputSpecificData;
-+ break;
-+ case eIT_ClusterInfo:
-+ m_plugClusterInfo = new ExtendedPlugInfoClusterInfoSpecificData;
-+ break;
-+ default:
-+ return false;
-+ }
-+
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoInfoType::serialize( IOSSerialize& se )
-+{
-+ // XXX \todo improve IOSSerialize::write interface
-+ char* buf;
-+ asprintf( &buf, "ExtendedPlugInfoInfoType infoType (%s)",
-+ extendedPlugInfoInfoTypeToString( m_infoType ) );
-+ se.write( m_infoType, buf );
-+
-+ free(buf);
-+
-+ switch ( m_infoType ) {
-+ case eIT_PlugType:
-+ if ( m_plugType ) {
-+ m_plugType->serialize( se );
-+ }
-+ break;
-+ case eIT_PlugName:
-+ if ( m_plugName ) {
-+ m_plugName->serialize( se );
-+ }
-+ break;
-+ case eIT_NoOfChannels:
-+ if ( m_plugNrOfChns ) {
-+ m_plugNrOfChns->serialize( se );
-+ }
-+ break;
-+ case eIT_ChannelPosition:
-+ if ( m_plugChannelPosition ) {
-+ m_plugChannelPosition->serialize( se );
-+ }
-+ break;
-+ case eIT_ChannelName:
-+ if ( m_plugChannelName ) {
-+ m_plugChannelName->serialize( se );
-+ }
-+ break;
-+ case eIT_PlugInput:
-+ if ( m_plugInput ) {
-+ m_plugInput->serialize( se );
-+ }
-+ break;
-+ case eIT_PlugOutput:
-+ if ( m_plugOutput ) {
-+ m_plugOutput->serialize( se );
-+ }
-+ break;
-+ case eIT_ClusterInfo:
-+ if ( m_plugClusterInfo ) {
-+ m_plugClusterInfo->serialize( se );
-+ }
-+ break;
-+ default:
-+ return false;
-+ }
-+
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoInfoType::deserialize( IISDeserialize& de )
-+{
-+ bool status = false;
-+
-+ de.read( &m_infoType );
-+
-+ switch ( m_infoType ) {
-+ case eIT_PlugType:
-+ if ( !m_plugType ) {
-+ m_plugType = new ExtendedPlugInfoPlugTypeSpecificData;
-+ }
-+ status = m_plugType->deserialize( de );
-+ break;
-+ case eIT_PlugName:
-+ if ( !m_plugName ) {
-+ m_plugName = new ExtendedPlugInfoPlugNameSpecificData;
-+ }
-+ status = m_plugName->deserialize( de );
-+ break;
-+ case eIT_NoOfChannels:
-+ if ( !m_plugNrOfChns ) {
-+ m_plugNrOfChns =
-+ new ExtendedPlugInfoPlugNumberOfChannelsSpecificData;
-+ }
-+ status = m_plugNrOfChns->deserialize( de );
-+ break;
-+ case eIT_ChannelPosition:
-+ if ( !m_plugChannelPosition ) {
-+ m_plugChannelPosition =
-+ new ExtendedPlugInfoPlugChannelPositionSpecificData;
-+ }
-+ status = m_plugChannelPosition->deserialize( de );
-+ break;
-+ case eIT_ChannelName:
-+ if ( !m_plugChannelName ) {
-+ m_plugChannelName =
-+ new ExtendedPlugInfoPlugChannelNameSpecificData;
-+ }
-+ status = m_plugChannelName->deserialize( de );
-+ break;
-+ case eIT_PlugInput:
-+ if ( !m_plugInput ) {
-+ m_plugInput = new ExtendedPlugInfoPlugInputSpecificData;
-+ }
-+ status = m_plugInput->deserialize( de );
-+ break;
-+ case eIT_PlugOutput:
-+ if ( !m_plugOutput ) {
-+ m_plugOutput = new ExtendedPlugInfoPlugOutputSpecificData;
-+ }
-+ status = m_plugOutput->deserialize( de );
-+ break;
-+ case eIT_ClusterInfo:
-+ if ( !m_plugClusterInfo ) {
-+ m_plugClusterInfo = new ExtendedPlugInfoClusterInfoSpecificData;
-+ }
-+ status =m_plugClusterInfo->deserialize( de );
-+ break;
-+ default:
-+ return false;
-+ }
-+
-+ return status;
-+}
-+
-+ExtendedPlugInfoInfoType*
-+ExtendedPlugInfoInfoType::clone() const
-+{
-+ ExtendedPlugInfoInfoType* extPlugInfoInfoType
-+ = new ExtendedPlugInfoInfoType( *this );
-+ extPlugInfoInfoType->initialize();
-+ return extPlugInfoInfoType;
-+}
-+
-+const char* extendedPlugInfoInfoTypeStrings[] =
-+{
-+ "PlugType",
-+ "PlugName",
-+ "NoOfChannels",
-+ "ChannelPosition",
-+ "ChannelName",
-+ "PlugInput",
-+ "PlugOutput",
-+ "ClusterInfo",
-+};
-+
-+const char* extendedPlugInfoInfoTypeToString( info_type_t infoType )
-+{
-+ if ( infoType > ( ( sizeof( extendedPlugInfoInfoTypeStrings ) )
-+ / ( sizeof( extendedPlugInfoInfoTypeStrings[0] ) ) ) ) {
-+ return "Unknown";
-+ } else {
-+ return extendedPlugInfoInfoTypeStrings[infoType];
-+ }
-+}
-+
-+
-+//////////////////////////////////////////////
-+
-+ExtendedPlugInfoCmd::ExtendedPlugInfoCmd( Ieee1394Service* ieee1394service,
-+ ESubFunction eSubFunction )
-+ : AVCCommand( ieee1394service, AVC1394_CMD_PLUG_INFO )
-+{
-+ setSubFunction( eSubFunction );
-+ UnitPlugAddress unitPlugAddress( UnitPlugAddress::ePT_PCR, 0x00 );
-+ m_plugAddress = new PlugAddress( PlugAddress::ePD_Output,
-+ PlugAddress::ePAM_Unit,
-+ unitPlugAddress );
-+ m_infoType =
-+ new ExtendedPlugInfoInfoType( ExtendedPlugInfoInfoType::eIT_PlugType );
-+ m_infoType->initialize();
-+}
-+
-+ExtendedPlugInfoCmd::ExtendedPlugInfoCmd( const ExtendedPlugInfoCmd& rhs )
-+ : AVCCommand( rhs )
-+{
-+ m_subFunction = rhs.m_subFunction;
-+ m_plugAddress = new PlugAddress( *rhs.m_plugAddress );
-+ m_infoType = new ExtendedPlugInfoInfoType( *rhs.m_infoType );
-+}
-+
-+ExtendedPlugInfoCmd::~ExtendedPlugInfoCmd()
-+{
-+ delete m_plugAddress;
-+ m_plugAddress = 0;
-+ delete m_infoType;
-+ m_infoType = 0;
-+}
-+
-+bool
-+ExtendedPlugInfoCmd::serialize( IOSSerialize& se )
-+{
-+ bool status = false;
-+ AVCCommand::serialize( se );
-+ se.write( m_subFunction, "ExtendedPlugInfoCmd subFunction" );
-+ status = m_plugAddress->serialize( se );
-+ status &= m_infoType->serialize( se );
-+
-+ return status;
-+}
-+
-+bool
-+ExtendedPlugInfoCmd::deserialize( IISDeserialize& de )
-+{
-+ bool status = false;
-+ AVCCommand::deserialize( de );
-+ de.read( &m_subFunction );
-+ status = m_plugAddress->deserialize( de );
-+ status &= m_infoType->deserialize( de );
-+
-+ return status;
-+}
-+
-+bool
-+ExtendedPlugInfoCmd::setPlugAddress( const PlugAddress& plugAddress )
-+{
-+ delete m_plugAddress;
-+ m_plugAddress = plugAddress.clone();
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoCmd::setSubFunction( ESubFunction subFunction )
-+{
-+ m_subFunction = subFunction;
-+ return true;
-+}
-+
-+bool
-+ExtendedPlugInfoCmd::setInfoType( const ExtendedPlugInfoInfoType& infoType )
-+{
-+ delete m_infoType;
-+ m_infoType = infoType.clone();
-+ return true;
-+}
diff -rupN libfreebob-1.0.11.old/src/libfreebobavc/avc_extended_stream_format.cpp libfreebob-1.0.11/src/libfreebobavc/avc_extended_stream_format.cpp
--- libfreebob-1.0.11.old/src/libfreebobavc/avc_extended_stream_format.cpp 2007-10-15 14:15:08.000000000 -0400
+++ libfreebob-1.0.11/src/libfreebobavc/avc_extended_stream_format.cpp 2012-01-11 20:27:22.622943305 -0500
diff --git a/libfreebob.spec b/libfreebob.spec
index 8548d41..8cae478 100644
--- a/libfreebob.spec
+++ b/libfreebob.spec
@@ -7,6 +7,7 @@ Source0: http://download.sourceforge.net/freebob/libfreebob-%{version}.tar
Patch0: libfreebob-gcc47.patch
URL: http://sourceforge.net/projects/freebob/
BuildRequires: alsa-lib-devel
+BuildRequires: autoconf
BuildRequires: libavc1394-devel
BuildRequires: libiec61883-devel
BuildRequires: libraw1394-devel
More information about the scm-commits
mailing list