diff -r 1ddbe54d0645 -r ccb4f6b3db21 accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp --- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp Thu Aug 19 11:09:10 2010 +0300 +++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp Tue Aug 31 16:29:05 2010 +0300 @@ -25,6 +25,7 @@ #include #include #include +#include #include "pdeconstants.h" #include "tvoutconfigforhdmi.h" @@ -192,7 +193,7 @@ { hdmiSink = CAccPolHdmiSink::NewL( iExtensionParserPtr->BasicAudio(), - iTVOutConfigForHDMI.GetTvOutConfig()->CopyProtectionStatus() ); + ETrue ); } else { @@ -636,7 +637,7 @@ // RunL //------------------------------------------------------------------------------ // -TInt CEDIDHandler::RunError( TInt aError ) +TInt CEDIDHandler::RunError( TInt /*aError*/ ) { FUNC_LOG; @@ -770,7 +771,65 @@ } Mem::FillZ( ( TAny* )&aTimings.iProductName, ( sizeof( TChar ) * KProductNameChars ) ); Mem::FillZ( ( TAny* )&aTimings.iProductDescription, ( sizeof( TChar ) * KProductDescriptorsChars ) ); - aTimings.iSourceType = THdmiDviTimings::ESourceTypeUnknown; + + TInt err = KErrNone; + CDeviceTypeInformation* deviceTypeInfo = NULL; + TRAP(err, deviceTypeInfo = SysUtil::GetDeviceTypeInfoL()); + + if(KErrNone == err) + { + #define MAX(a, b) (((a)>(b)) ? (a) : (b)) + #define MIN(a, b) (((a)<(b)) ? (a) : (b)) + + TPtrC16 bufPtrModelCode; + TPtrC16 bufPtrManufacturerName; + TUint loopCount; + TUint maxLen; + TUint maxCharsLen; + TUint minNameCharsLen; + TUint minDescritopCharsLen; + + deviceTypeInfo->GetManufacturerName(bufPtrManufacturerName); + deviceTypeInfo->GetModelCode(bufPtrModelCode); + maxLen = MAX(bufPtrModelCode.Length(),bufPtrManufacturerName.Length()); + maxCharsLen = MAX(KProductNameChars,KProductDescriptorsChars); + minNameCharsLen = MIN(KProductNameChars, bufPtrModelCode.Length()); + minDescritopCharsLen = MIN(KProductDescriptorsChars, bufPtrManufacturerName.Length()); + + INFO_1( "maxLen : %d", maxLen); + INFO_1( "maxCharsLen : %d", maxCharsLen); + INFO_1( "minNameCharsLen : %d", minNameCharsLen); + INFO_1( "minDescritopCharsLen : %d", minDescritopCharsLen); + + for(loopCount = 0; loopCount < maxLen; loopCount++) + { + if(loopCount >= maxCharsLen) + { + break; + } + else + { + if(loopCount < minNameCharsLen) + { + aTimings.iProductName[loopCount] = bufPtrModelCode[loopCount]; + INFO_1( "aTimings.iProductName : %d", aTimings.iProductName[loopCount].GetLowerCase()); + } + if(loopCount < minDescritopCharsLen) + { + aTimings.iProductDescription[loopCount] = bufPtrManufacturerName[loopCount]; + INFO_1( "aTimings.iProductDescription : %d", aTimings.iProductDescription[loopCount].GetLowerCase()); + } + } + } + INFO("Before Deleting Pointer deviceTypeInfo"); + delete deviceTypeInfo; + INFO("After Deleting Pointer deviceTypeInfo"); + aTimings.iSourceType = THdmiDviTimings::ESourceTypePCGeneral; + } + else + { + aTimings.iSourceType = THdmiDviTimings::ESourceTypeUnknown; + } } //------------------------------------------------------------------------------