qtinternetradio/ui/src/irsymbiandocument.cpp
changeset 3 ee64f059b8e1
parent 2 2e1adbfc62af
child 4 3f2d53f144fe
child 5 0930554dc389
--- a/qtinternetradio/ui/src/irsymbiandocument.cpp	Mon May 03 12:25:23 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-/*
-* Copyright (c) 2009 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:
-*
-*/
-
-#include <QFile>
-#include <QTextStream>
-#include <QStringList>
-#include <QLocalSocket>
-#include <qcoreapplication.h>
-
-#include "irsymbiandocument.h"
-#include "irsymbianapplication.h"
-#include "irsymbianappui.h"
-
-const QString KEqual("=");
-const QString KFile("File");
-const QString KTitle("Title");
-const QString KLength("Length");
-const QString KPlsExtension(".pls");
-const QString KM3uExtension(".m3u");
-
-IRSymbianDocument * IRSymbianDocument::documentInstance = NULL;
-
-IRPlsPlayListItem::IRPlsPlayListItem(const QString &aFile, const QString &aTitle, int aLength) :
-                                     iFile(aFile), iTitle(aTitle), iLength(aLength)
-{
-}
-
-const QString & IRPlsPlayListItem::file() const
-{
-    return iFile;
-}
-
-const QString & IRPlsPlayListItem::title() const
-{
-    return iTitle;
-}
-
-IRSymbianDocument * IRSymbianDocument::getInstance()
-{
-    if (NULL == documentInstance)
-    {
-        documentInstance = new IRSymbianDocument(*IRSymbianApplication::getInstance());
-    }
-    
-    return documentInstance;
-}
-
-bool IRSymbianDocument::isPlsAvailable() const
-{
-    return iPlsList.count() > 0;
-}
-
-int IRSymbianDocument::getNumberOfEntries() const
-{
-    return iPlsList.count();
-}
-
-IRPlsPlayListItem* IRSymbianDocument::getEntry(int aIndex)
-{
-    if (aIndex >=0 && aIndex < iPlsList.count())
-    {
-        return iPlsList.at(aIndex);
-    }
-    
-    return NULL;
-}
-
-IRSymbianDocument::IRSymbianDocument(CEikApplication &mainApplication) : QS60MainDocument(mainApplication)
-{
-    
-}
-
-IRSymbianDocument::~IRSymbianDocument()
-{
-    clearPlsList();
-}
-
-void IRSymbianDocument::OpenFileL(CFileStore*& aFileStore, RFile& aFile)
-{
-    aFileStore = NULL;
-    TBuf<255> fileName;
-    aFile.FullName(fileName);
-    TParsePtr ptr(fileName);    
-    TPtrC extension = ptr.Ext();
-    QString qExtension = QString::fromUtf16(extension.Ptr(), extension.Length());
-    
-    if (0 == qExtension.compare(KPlsExtension, Qt::CaseInsensitive) ||
-        0 == qExtension.compare(KM3uExtension, Qt::CaseInsensitive) ) 
-    { 
-        QString qFileName = QString::fromUtf16(fileName.Ptr(), fileName.Length());
-        IRSymbianApplication *symbianApp = static_cast<IRSymbianApplication*>(Application());
-        if (symbianApp->getInstanceFlag())
-        {
-            //if an instance is already running, send the file name to that instance through socket
-            QLocalSocket socket;
-            QString serverName = QCoreApplication::applicationName();
-            socket.connectToServer(serverName);
-            if (socket.waitForConnected(500)) 
-            {
-                QTextStream stream(&socket);
-                stream << qFileName;
-                stream.flush();
-                socket.waitForBytesWritten();
-            }
-        }
-        else
-        {
-            parseFile(qFileName);
-        }
-    }
-}
-
-CEikAppUi* IRSymbianDocument::CreateAppUiL()
-{
-    return new (ELeave) IRSymbianAppui;
-}
-
-void IRSymbianDocument::parseFile(const QString &aFileName)
-{
-    QString extension = aFileName.right(4);
-    
-    if (0 == extension.compare(KPlsExtension, Qt::CaseInsensitive))
-    {
-        parsePlsFile(aFileName);
-    }
-    else if (0 == extension.compare(KM3uExtension, Qt::CaseInsensitive))
-    {
-        parseM3uFile(aFileName);
-    }
-    else
-    {
-        Q_ASSERT(false);
-    }
-}
-
-void IRSymbianDocument::parsePlsFile(const QString &aFileName)
-{
-    if (aFileName.length() == 0)
-    {
-        return;
-    }
-  
-    clearPlsList();
-    
-    QFile file(aFileName);
-    if (!file.open(QIODevice::ReadOnly))
-    {
-        return;
-    }
-    
-    QTextStream stream(&file);
-    QString readStr = stream.readLine().trimmed();
-    if (readStr.compare("[playlist]", Qt::CaseInsensitive))
-    {
-        file.close();
-        return;
-    }
-    
-    readStr = stream.readLine().trimmed();
-    QStringList splitStr = readStr.split(KEqual);
-    if (splitStr.count() != 2)
-    {
-        file.close();
-        return;
-    }
-    
-    int nbEntries = 0;
-    if (0 == splitStr.first().compare("NumberOfEntries", Qt::CaseInsensitive))
-    {
-        nbEntries = splitStr.last().toInt();
-    }
-    
-    if (nbEntries <= 0)
-    {
-        file.close();
-        return;
-    }
-    
-    for (int i = 0; i < nbEntries; ++i)
-    {
-        //read file line : File=xxx     
-        QString filePath = readValue(stream, KFile);
-        if (filePath.length() == 0)
-        {
-            break;
-        }
-        
-        //read title line : Title=xxx
-        QString title = readValue(stream, KTitle);
-        if (title.length() == 0)
-        {
-            break;
-        }
-        
-        //read length line : Length=xxx
-        QString strLength = readValue(stream, KLength);
-        if (strLength.length() == 0)
-        {
-            break;
-        }
-        
-        int length = strLength.toInt();
-        
-        //all information is ready
-        if (length == -1)
-        {
-            IRPlsPlayListItem *item = new IRPlsPlayListItem(filePath, title, length);
-            iPlsList.append(item);
-        }
-    }
-    
-    file.close();
-}
-
-void IRSymbianDocument::parseM3uFile(const QString &aFileName)
-{
-    clearPlsList();
-    
-    QFile file(aFileName);
-    if (!file.open(QIODevice::ReadOnly))
-    {
-        return;
-    }
-    
-    QTextStream stream(&file);
-    QString readStr;
-    int stationCount = 0;
-    
-    while (!stream.atEnd())
-    {
-        readStr = stream.readLine().trimmed();
-        if (readStr.startsWith("http://", Qt::CaseInsensitive))
-        {
-            IRPlsPlayListItem *item = new IRPlsPlayListItem(readStr, "Station " + QString::number(++stationCount), -1);
-            iPlsList.append(item);
-        }
-    }
-    
-    file.close();
-}
-
-void IRSymbianDocument::clearPlsList()
-{
-    while (!iPlsList.isEmpty())
-    {
-        IRPlsPlayListItem *firstItem = iPlsList.takeFirst();
-        delete firstItem;
-    }
-}
-
-QString IRSymbianDocument::readValue(QTextStream &aStream, const QString &aKey)
-{
-    QString readStr;
-    QStringList splitStr;
-    
-    do
-    {
-        readStr = aStream.readLine().trimmed();    
-    }while (readStr.length() == 0 && !aStream.atEnd());
-            
-    splitStr = readStr.split(KEqual);
-    if (splitStr.count() != 2 || !splitStr.first().startsWith(aKey, Qt::CaseInsensitive))
-    {
-        return QString();
-    }
-    else
-    {
-        return splitStr.last();
-    }
-}