internetradio2.0/filerecognizersrc/irrecognizer.cpp
changeset 14 896e9dbc5f19
parent 12 608f67c22514
child 15 065198191975
--- a/internetradio2.0/filerecognizersrc/irrecognizer.cpp	Tue Jul 06 14:07:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  ?Description
-*
-*/
-
-
-#include <implementationproxy.h>
-#include <f32file.h>
-
-#include "irdebug.h"
-#include "irrecognizer.h"
-
-// CONSTANTS
-//voilate PC Lint Warning 569: Loss of information (initialization) 
-//(32 bits to 31 bits)
-// Uid of the recogniser
-//const TUid KUidIRRecognizer={0x2000B499}
-
-// If the file name length > 4, the file extension might be valid                  
-const TInt KPlsFileExtensionsMightBeValid = 4;  
-const TInt KM3uFileExtensionsMightBeValid = 4;
-
-//extension of File to be recognised.
-_LIT(KPlsExtension, ".pls");
-//Mime type of the .pls file
-_LIT8(KPlsMimeType,"audio/x-scpls");
-
-_LIT(KM3uExtension, ".m3u");
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// RecognizerEx::RecognizerEx()
-// constructs the object
-// ---------------------------------------------------------------------------
-//
-CApaRecognizerEx::CApaRecognizerEx():CApaDataRecognizerType(KIRRecognizerDllUid, 
-	CApaDataRecognizerType::EHigh)
-    {
-    IRLOG_DEBUG( "CApaRecognizerEx::CApaRecognizerEx()" );
-    // It only supports 1 mime type
-    iCountDataTypes = 1;
-    IRLOG_DEBUG( "CApaRecognizerEx::CApaRecognizerEx() - Exiting." );
-    }
-
-// ---------------------------------------------------------------------------
-// RecognizerEx::~RecognizerEx()
-// Destroys the object
-// ---------------------------------------------------------------------------
-//
-CApaRecognizerEx::~CApaRecognizerEx()
-    {
-    IRLOG_DEBUG( "CApaRecognizerEx::~CApaRecognizerEx" );
-    // no implementation
-    }
-
-
-// ---------------------------------------------------------------------------
-// RecognizerEx::CreateRecognizerL()
-// Returns pointer to the new object
-// ---------------------------------------------------------------------------
-//
-CApaDataRecognizerType* CApaRecognizerEx::CreateRecognizerL()
-    {
-    IRLOG_DEBUG( "CApaRecognizerEx::CreateRecognizerL" );
-    return new (ELeave) CApaRecognizerEx();
-    }
-
-
-// ---------------------------------------------------------------------------
-// RecognizerEx::PreferredBufSize()
-// Returns preferred buffer size
-// ---------------------------------------------------------------------------
-//
-TUint CApaRecognizerEx::PreferredBufSize()
-    {
-    IRLOG_DEBUG( "CApaRecognizerEx::PreferredBufSize" );
-    return 0;
-    }
-
-// ---------------------------------------------------------------------------
-// RecognizerEx::SupportedDataTypeL()
-// Returns supported mime type
-// ---------------------------------------------------------------------------
-//
-TDataType CApaRecognizerEx::SupportedDataTypeL(TInt aIndex) const
-    {
-    IRLOG_DEBUG( "CApaRecognizerEx::SupportedDataTypeL" );
-    if (0 == aIndex)
-	{
-        return TDataType(KPlsMimeType);
-	}
-	else
-    {
-        ASSERT(0);
-        return TDataType(KNullDesC8);
-    }
-    }
-
-// ---------------------------------------------------------------------------
-// RecognizerEx::DoRecognizeL()
-// Recognizes the file by name and/or head buffer
-// ---------------------------------------------------------------------------
-//
-void CApaRecognizerEx::DoRecognizeL(const TDesC& aName, 
-	const TDesC8& aBuffer)
-    {
-	IRLOG_DEBUG( "CApaRecognizerEx::DoRecognizeL" );    
-    // To keep code simple, we only check file name extension
-    TInt len = aBuffer.Length();
-    if (aName.Length()>KPlsFileExtensionsMightBeValid)
-		{
-		//Compare the extension of the file to be recognised with .pls
-		if (aName.Right(KPlsFileExtensionsMightBeValid).CompareF(
-			KPlsExtension)==0)
-	    {
-			iConfidence=ECertain;   // is certainly something totally new
-			iDataType=TDataType(KPlsMimeType);
-			IRLOG_DEBUG( "CApaRecognizerEx::DoRecognizeL - Exiting (1)." );
-			return;
-		}
-		else if (aName.Right(KM3uFileExtensionsMightBeValid).CompareF(
-            KM3uExtension)==0)
-		{
-		    RecognizeM3uFileL(aName);
-		    IRLOG_DEBUG( "CApaRecognizerEx::DoRecognizeL - Exiting (2)." );
-		    return;
-		}
-	    IRLOG_DEBUG( "CApaRecognizerEx::DoRecognizeL - Exiting (3)." );					
-		}
-    }
-
-void CApaRecognizerEx::RecognizeM3uFileL(const TDesC& aFileName)
-{
-    _LIT8(KHttpProtocol, "http");
-    _LIT8(KMmsProtocol, "mms");
-    _LIT8(KRtspProtocol, "rtsp");
-
-    RFs fs;
-    User::LeaveIfError(fs.Connect());
-    RFile file;
-    TInt ret = file.Open(fs, aFileName, EFileRead);
-    if (KErrNone != ret)
-    {
-        fs.Close();
-        return;
-    }
-    
-    RBuf8 content;
-    TInt maxLen = 0;
-    file.Size(maxLen);
-    content.Create(maxLen);
-    file.Read(content);
-    
-    //try to use descriptor method to parse the buffer
-    if (CheckStreamingLinks(content, KHttpProtocol) ||
-        CheckStreamingLinks(content, KMmsProtocol) ||
-        CheckStreamingLinks(content, KRtspProtocol))
-    {
-        iConfidence = ECertain;
-        iDataType = TDataType(KPlsMimeType);
-    }
-    
-    content.Close();
-    file.Close();
-    fs.Close();
-}
-
-TBool CApaRecognizerEx::CheckStreamingLinks(TDes8& aBuffer, const TDesC8& aProtocol)
-{
-    TBool ret = EFalse;
-    _LIT8(KNewLine, "\n");
-    
-    //initially, remain points to aBuffer
-    TPtrC8 remain(aBuffer);
-    TInt newLinePos = remain.Find(KNewLine);
-    
-    while (KErrNotFound != newLinePos)
-    {
-        //copy a new line to RBuf8
-        RBuf8 left;
-        left.Create(remain.Left(newLinePos));
-        left.TrimLeft();
-        left.LowerCase();
-        
-        //after trim left, does this line start with aProtocol?
-        if (left.Left(aProtocol.Length()) == aProtocol)
-        {
-            ret = ETrue;
-        }
-        left.Close();
-        
-        if (ret)
-        {
-            break;
-        }
-        else
-        {
-            //remain points to the right part
-            remain.Set(remain.Right(remain.Length() - newLinePos - 1));
-            newLinePos = remain.Find(KNewLine);
-        }
-    }
-    
-    if (!ret && remain.Length() > 0)
-    {
-        //last line doesn't end with '\n'
-        RBuf8 last;
-        last.Create(remain);
-        last.TrimLeft();
-        last.LowerCase();
-        if (last.Left(aProtocol.Length()) == aProtocol)
-        {
-            ret = ETrue;
-        }
-        last.Close();
-    }
-    
-    return ret;
-}
-
-// -----------------------------------------------------------------------------
-// ImplementationTable
-// violates PC lint error :: Warning 611: Suspicious cast
-// required by the ECOM framework to correctly identify the instantiation 
-// method pointer to provide to a client's resolution request.
-// -----------------------------------------------------------------------------
-//
-const TImplementationProxy ImplementationTable[] =
-    {
-    IMPLEMENTATION_PROXY_ENTRY(KIRRecognizerImplementationUid, 
-    	CApaRecognizerEx::CreateRecognizerL)
-    };
-    
-// ---------------------------------------------------------------------------
-// ImplementationGroupProxy
-// Provides access to the implementationtable
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
-	TInt& aTableCount)
-    {
-    IRLOG_DEBUG( "ImplementationGroupProxy" );
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    IRLOG_DEBUG( "ImplementationGroupProxy - Exiting." );
-    return ImplementationTable;
-    }
-
-
-