[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/multimedia/kmplayer/src
From:       Koos Vriezen <koos.vriezen () xs4all ! nl>
Date:       2006-09-03 12:16:27
Message-ID: 1157285787.559191.24752.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 580390 by vriezen:

When playlist items or groups have a 'mplayeropts' attribute, add that 
to the mplayer commandline

CCBUG: 133473


 M  +17 -18    kmplayerapp.cpp  
 M  +2 -2      kmplayerplaylist.cpp  
 M  +3 -0      kmplayerplaylist.h  
 M  +14 -1     kmplayerprocess.cpp  


--- trunk/extragear/multimedia/kmplayer/src/kmplayerapp.cpp #580389:580390
@@ -80,11 +80,12 @@
 
 extern const char * strMPlayerGroup;
 
-static short id_node_recent_document = 25;
-static short id_node_recent_node = 26;
-static short id_node_group_node = 27;
-static short id_node_playlist_document = 28;
+static const short id_node_recent_document = 28;
+static const short id_node_recent_node = 29;
+static const short id_node_disk_document = 30;
+static const short id_node_disk_node = 31;
 
+
 class KMPLAYER_NO_EXPORT ListsSource : public KMPlayer::URLSource {
 public:
     KDE_NO_CDTOR_EXPORT ListsSource (KMPlayer::PartBase * p)
@@ -159,7 +160,8 @@
 };
 
 KDE_NO_EXPORT void ListsSource::jump (KMPlayer::NodePtr e) {
-    if (e->id >= id_node_recent_document && e->id <= id_node_playlist_document)
+    if (e->id <= id_node_recent_node &&
+            e->id >= KMPlayer::id_node_group_node)
         e->activate ();
     else
         KMPlayer::URLSource::jump (e);
@@ -256,7 +258,7 @@
 
 KDE_NO_CDTOR_EXPORT
 Group::Group (KMPlayer::NodePtr & doc, KMPlayerApp * a, const QString & pn) 
-  : KMPlayer::Mrl (doc, id_node_group_node), app (a) {
+  : KMPlayer::Mrl (doc, KMPlayer::id_node_group_node), app (a) {
     pretty_name = pn;
     if (!pn.isEmpty ())
         setAttribute ("title", pn);
@@ -292,7 +294,7 @@
 }
 
 KDE_NO_CDTOR_EXPORT Playlist::Playlist (KMPlayerApp *a, KMPlayer::PlayListNotify *n, bool plmode)
-    : FileDocument (id_node_playlist_document, "Playlist://", n),
+    : FileDocument (KMPlayer::id_node_playlist_document, "Playlist://", n),
       app(a),
       playmode (plmode) {
     pretty_name = i18n ("Persistent Playlists");
@@ -318,7 +320,7 @@
 
 KDE_NO_CDTOR_EXPORT
 PlaylistItem::PlaylistItem (KMPlayer::NodePtr & doc, KMPlayerApp * a, const QString &url) 
-  : KMPlayer::Mrl (doc, id_node_recent_node), app (a) {
+  : KMPlayer::Mrl (doc, KMPlayer::id_node_playlist_item), app (a) {
     src = url;
     setAttribute ("url", url);
 }
@@ -333,7 +335,7 @@
     KMPlayer::NodePtr pl = new Playlist (app, source, true);
     QString data;
     QString pn;
-    if (parentNode ()->id == id_node_group_node) {
+    if (parentNode ()->id == KMPlayer::id_node_group_node) {
         data = parentNode ()->innerXML ();
         pn = parentNode ()->mrl ()->pretty_name;
     } else {
@@ -346,7 +348,7 @@
     KMPlayer::readXML (pl, inxml, QString::null, false);
     pl->normalize ();
     KMPlayer::NodePtr cur = pl->firstChild ();
-    if (parentNode ()->id == id_node_group_node && cur) {
+    if (parentNode ()->id == KMPlayer::id_node_group_node && cur) {
         KMPlayer::NodePtr sister = parentNode ()->firstChild ();
         while (sister && cur && sister.ptr () != this) {
             sister = sister->nextSibling ();
@@ -370,7 +372,7 @@
 
 KDE_NO_CDTOR_EXPORT
 PlaylistGroup::PlaylistGroup (KMPlayer::NodePtr & doc, KMPlayerApp * a, const QString & pn) 
-  : KMPlayer::Mrl (doc, id_node_group_node), app (a), playmode (false) {
+  : KMPlayer::Mrl (doc, KMPlayer::id_node_group_node), app (a), playmode (false) {
     pretty_name = pn;
     if (!pn.isEmpty ())
         setAttribute ("title", pn);
@@ -378,7 +380,7 @@
 
 KDE_NO_CDTOR_EXPORT
 PlaylistGroup::PlaylistGroup (KMPlayer::NodePtr & doc, KMPlayerApp * a, bool lm)
-  : KMPlayer::Mrl (doc, id_node_group_node), app (a), playmode (lm) {
+  : KMPlayer::Mrl (doc, KMPlayer::id_node_group_node), app (a), playmode (lm) {
 }
 
 KDE_NO_EXPORT KMPlayer::NodePtr PlaylistGroup::childFromTag (const QString & tag) {
@@ -650,7 +652,7 @@
                 recents->removeChild (c);
                 c = tmp;
             } else {
-                if (c->id == id_node_group_node)
+                if (c->id == KMPlayer::id_node_group_node)
                     more = c;
                 c = c->nextSibling ();
                 count++;
@@ -1393,8 +1395,8 @@
     m_drop_list.clear ();
     m_drop_after = after;
     KMPlayer::NodePtr after_node = static_cast<KMPlayer::PlayListItem*> (after)->node;
-    if (after_node->id == id_node_playlist_document ||
-            after_node->id == id_node_group_node)
+    if (after_node->id == KMPlayer::id_node_playlist_document ||
+            after_node->id == KMPlayer::id_node_group_node)
         after_node->defer (); // make sure it has loaded
     if (de->source () == m_view->playList() &&
             m_view->playList()->lastDragTreeId () == playlist_id)
@@ -1587,9 +1589,6 @@
 
 //-----------------------------------------------------------------------------
 
-static short id_node_disk_document = 30;
-static short id_node_disk_node = 31;
-
 class KMPLAYER_NO_EXPORT Disks : public KMPlayer::Document {
 public:
     Disks (KMPlayerApp * a);
--- trunk/extragear/multimedia/kmplayer/src/kmplayerplaylist.cpp #580389:580390
@@ -936,7 +936,7 @@
 //-----------------------------------------------------------------------------
 
 GenericURL::GenericURL (NodePtr & d, const QString & s, const QString & name)
- : Mrl (d) {
+ : Mrl (d, id_node_playlist_item) {
     src = s;
     if (!src.isEmpty ())
         setAttribute (QString ("src"), src);
@@ -951,7 +951,7 @@
 //-----------------------------------------------------------------------------
 
 GenericMrl::GenericMrl (NodePtr & d, const QString & s, const QString & name, const QString & tag)
- : Mrl (d), node_name (tag) {
+ : Mrl (d, id_node_playlist_item), node_name (tag) {
     src = s;
     if (!src.isEmpty ())
         setAttribute (QString ("src"), src);
--- trunk/extragear/multimedia/kmplayer/src/kmplayerplaylist.h #580389:580390
@@ -512,6 +512,9 @@
 const short id_node_text = 5;
 const short id_node_cdata = 6;
 
+const short id_node_group_node = 25;
+const short id_node_playlist_document = 26;
+const short id_node_playlist_item = 27;
 /*
  * Element node, XML node that can have attributes
  */
--- trunk/extragear/multimedia/kmplayer/src/kmplayerprocess.cpp #580389:580390
@@ -580,6 +580,20 @@
         fprintf (stderr, " -sid %d", sid);
         *m_process << " -sid " << QString::number (sid);
     }
+    for (NodePtr n = m_mrl; n; n = n->parentNode ()) {
+        if (n->id != id_node_group_node && n->id != id_node_playlist_item)
+            break;
+        QString plops = convertNode <Element> (n)->getAttribute ("mplayeropts");
+        if (!plops.isNull ()) {
+            QStringList sl = QStringList::split (QChar (' '), plops);
+            for (int i = 0; i < sl.size (); ++i) {
+                QString plop = KProcess::quote (sl[i]);
+                fprintf (stderr, " %s", plop.ascii ());
+                *m_process << " " << plop;
+            }
+            break;
+        }
+    }
 
     fprintf (stderr, " %s\n", args);
     *m_process << " " << args;
@@ -590,7 +604,6 @@
     for ( it = m_process->args().begin(); it != end; ++it ){
         sMPArgs += (*it);
     }
-
     m_process->start (KProcess::NotifyOnExit, KProcess::All);
 
     old_volume = viewer ()->view ()->controlPanel ()->volumeBar ()->value ();
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic