summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/om3u.cpp165
-rw-r--r--core/multimedia/opieplayer/om3u.h79
2 files changed, 244 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/om3u.cpp b/core/multimedia/opieplayer/om3u.cpp
new file mode 100644
index 0000000..039f3b1
--- a/dev/null
+++ b/core/multimedia/opieplayer/om3u.cpp
@@ -0,0 +1,165 @@
+/*
+                This file is part of the Opie Project
+
+ Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
+ =.
+ .=l.
+           .>+-=
+ _;:,     .>    :=|. This program is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; either version 2 of the License,
+     ._= =}       : or (at your option) any later version.
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. This program 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
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
+
+#include "playlistwidget.h"
+#include "om3u.h"
+
+#include <qpe/applnk.h>
+#include <qpe/qpeapplication.h>
+#include <qpe/storage.h>
+#include <qpe/mimetype.h>
+#include <qpe/global.h>
+#include <qpe/resource.h>
+
+#include <qdir.h>
+#include <qregexp.h>
+#include <qstring.h>
+#include <qtextstream.h>
+#include <qstringlist.h>
+#include <qcstring.h>
+
+//extern PlayListWidget *playList;
+
+Om3u::Om3u( const QString &filePath, int mode)
+ : QStringList (){
+//qDebug("<<<<<<<new m3u "+filePath);
+ f.setName(filePath);
+ f.open(mode);
+}
+
+Om3u::~Om3u(){}
+
+void Om3u::readM3u() {
+// qDebug("<<<<<<reading m3u "+f.name());
+ QTextStream t(&f);
+ QString s;
+ while ( !t.atEnd() ) {
+ s=t.readLine();
+ qDebug(s);
+ if( s.find( "#", 0, TRUE) == -1 ) {
+ if( s.left(2) == "E:" || s.left(2) == "P:" ) {
+ s = s.right( s.length() -2 );
+ QFileInfo f( s );
+ QString name = f.baseName();
+ name = name.right( name.length() - name.findRev( "\\", -1, TRUE ) -1 );
+ s=s.replace( QRegExp( "\\" ), "/" );
+ append(s);
+// qDebug(s);
+ } else { // is url
+ s.replace( QRegExp( "%20" )," " );
+ QString name;
+// if( name.left( 4 ) == "http" ) {
+// name = s.right( s.length() - 7 );
+// } else {
+ name = s;
+// }
+ append(name);
+// qDebug(name);
+ }
+ }
+ }
+}
+
+void Om3u::readPls() { //it's a pls file
+ QTextStream t( &f );
+ QString s;
+ while ( !t.atEnd() ) {
+ s = t.readLine();
+ if( s.left(4) == "File" ) {
+ s = s.right( s.length() - 6 );
+ s.replace( QRegExp( "%20" )," ");
+// qDebug( "adding " + s + " to playlist" );
+ // numberofentries=2
+ // File1=http
+ // Title
+ // Length
+ // Version
+ // File2=http
+ s = s.replace( QRegExp( "\\" ), "/" );
+ QFileInfo f( s );
+ QString name = f.baseName();
+ if( name.left( 4 ) == "http" ) {
+ name = s.right( s.length() - 7);
+ } else {
+ name = s;
+ }
+ name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 );
+ if( s.at( s.length() - 4) == '.') // if this is probably a file
+ append(s);
+ else { //if its a url
+ if( name.right( 1 ).find( '/' ) == -1) {
+ s += "/";
+ }
+ append(s);
+ }
+ }
+ }
+}
+
+void Om3u::write() { //writes list to m3u file
+ QString list;
+ if(count()>0) {
+ for ( QStringList::ConstIterator it = begin(); it != end(); ++it ) {
+ qDebug(*it);
+ list += *it+"\n";
+ }
+ f.writeBlock( list, list.length() );
+ }
+// f.close();
+}
+
+void Om3u::add(const QString &filePath) { //adds to m3u file
+ append(filePath);
+}
+
+void Om3u::remove(const QString &filePath) { //removes from m3u list
+ QString list, currentFile;
+ if(count()>0) {
+ for ( QStringList::ConstIterator it = begin(); it != end(); ++it ) {
+ currentFile=*it;
+ // qDebug(*it);
+
+ if( filePath != currentFile)
+ list += currentFile+"\n";
+ }
+ f.writeBlock( list, list.length() );
+ }
+}
+
+void Om3u::deleteFile(const QString &filePath) {//deletes m3u file
+ f.close();
+ f.remove();
+
+}
+
+void Om3u::close() { //closes m3u file
+ f.close();
+}
diff --git a/core/multimedia/opieplayer/om3u.h b/core/multimedia/opieplayer/om3u.h
new file mode 100644
index 0000000..9c7cf9a
--- a/dev/null
+++ b/core/multimedia/opieplayer/om3u.h
@@ -0,0 +1,79 @@
+/*
+                This file is part of the Opie Project
+
+ Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
+ =.
+ .=l.
+           .>+-=
+ _;:,     .>    :=|. This program is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; either version 2 of the License,
+     ._= =}       : or (at your option) any later version.
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. This program 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
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
+
+#ifndef OM3U_H
+#define OM3U_H
+
+#include "playlistwidget.h"
+
+#include <qpe/applnk.h>
+#include <qpe/qpeapplication.h>
+#include <qpe/storage.h>
+#include <qpe/mimetype.h>
+#include <qpe/global.h>
+#include <qpe/resource.h>
+
+#include <qdir.h>
+#include <qregexp.h>
+#include <qstring.h>
+#include <qtextstream.h>
+#include <qstringlist.h>
+#include <qcstring.h>
+#include <qfile.h>
+
+
+class Om3u : public QStringList {
+// Q_OBJECT
+public:
+ Om3u( const QString &filePath, int mode);
+ ~Om3u();
+ void readM3u();
+ void readPls();
+ void write();
+ void add(const QString &);
+ void remove(const QString &);
+ void deleteFile(const QString &);
+ void close();
+
+public slots:
+
+protected:
+
+private:
+ QFile f;
+private slots:
+
+
+};
+
+#endif// M3U_H
+
+