0.0.5
authorgregor herrmann <gregoa@debian.org>
Thu, 1 Mar 2007 23:41:17 +0000 (23:41 -0000)
committergregor herrmann <gregoa@debian.org>
Thu, 1 Mar 2007 23:41:17 +0000 (23:41 -0000)
debian/changelog
main.cpp
options.cpp
options.ui

index afb1c08946a220bea90f1dec888779c808ff8b10..5304802e2ec03f1d374df2331d26124af40f2300 100644 (file)
@@ -1,9 +1,10 @@
-teleschorsch (0.0.4-3) unstable; urgency=low
+teleschorsch (0.0.5-1) unstable; urgency=low
 
+  * New upstream release.
   * Put only one entry (the generic one, pointing to /usr/bin/teleschorsch
     which is handled by the alternatives sytem) into the .desktop file.
 
- -- gregor herrmann <gregor+debian@comodo.priv.at>  Thu,  1 Mar 2007 23:53:26 +0100
+ -- gregor herrmann <gregor+debian@comodo.priv.at>  Fri,  2 Mar 2007 00:40:25 +0100
 
 teleschorsch (0.0.4-2) unstable; urgency=low
 
index 8d0632fa2555574150f21ba5b66f71919a4d9df8..eca80870198b4a3413e1b452c7ae8054a784d714 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -101,6 +101,55 @@ QString readChannelVec(const ConfigInfo& configInfo, ChannelVec& channelVec) {
 }
 
 
+QString substitudeVar(const QString& var, QDate date) {
+       if (var == "d") return date.toString("dd");
+       if (var == "m") return date.toString("MM");
+       if (var == "y") return date.toString("yy");
+       if (var == "Y") return date.toString("yyyy");
+       if (var == "dow_DE") {
+               int dow = date.dayOfWeek() - 1;
+               static const char dow_de[][20] = {"Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"};
+               if (dow >= 0 && dow < 7) return dow_de[dow];
+       }
+       return "{no match}"; // maybe do some error handling here...
+}
+
+
+QString substitudeStaticUrl(const QString& staticUrl, QDate date) {
+       QString result;
+       int pos = 0;
+       int lastPos = 0;
+       while (pos != -1) {
+               pos = staticUrl.indexOf("${", lastPos);
+               if (pos == -1) result += staticUrl.mid(lastPos);
+               else result += staticUrl.mid(lastPos, pos-lastPos);
+               lastPos = pos;
+               
+               // Match?
+               if (pos != -1) {
+                       pos = staticUrl.indexOf("}", lastPos);
+                       if (pos == -1) return ""; // ${ not closed with }. Some day we should report the error somehow...
+                       QString var = staticUrl.mid(lastPos+2, pos-lastPos-2);
+                       result += substitudeVar(var, date);
+                       lastPos = pos+1;
+               }
+       }
+       return result;
+}
+
+
+void appendPlayerOffsetOption(const QString& player, QTime offset, QStringList& arguments) {
+       QTime zero = QTime(0, 0, 0, 0);
+       int offsetSec = zero.secsTo(offset);
+       if (player.indexOf("vlc") != -1) arguments.append("--start-time");
+       if (player.indexOf("gmplayer") != -1) {
+               arguments << "--cache" << "512"; // --cache 512 does not belong to this function but for now...
+               arguments << "-ss"; 
+       }
+       arguments << QString::number(offsetSec);
+}
+
+
 
 // MainDialog
 // ==========
@@ -145,14 +194,14 @@ bool MainDialog::startAction() {
        int row = lwChannels->currentRow();
        if (row > 0) {
                Channel channel = channelVec[row];
-               qDebug() << "User would like to see " << channel.staticUrl;
-
-               QString program = "/usr/bin/vlc";
+               QDate date = calDate->selectedDate();
                QStringList arguments;
+               arguments.append(substitudeStaticUrl(channel.staticUrl, date));
+               appendPlayerOffsetOption(channel.player, teOffset->time(), arguments);
                // arguments << "-style" << "motif";
-               // @args=("$player $url " . ${playeroptions}{$player} . " $offsetseconds");
-               QProcess player(0);
-               player.start(program, arguments);
+               QProcess player(this);
+               qDebug() << channel.player << arguments;
+               player.start(channel.player, arguments);
                player.waitForFinished();
                return true;
        }
index 10cc550ffba7f2107ae902e36893176a1253f1c0..97abf6d3ed49000708860d0faee6ff701f92a279 100644 (file)
@@ -5,6 +5,16 @@
 
 OptionsDialog::OptionsDialog(QWidget *parent): QDialog(parent) {
        setupUi(this);
+
+       QString helpText = labHelp->text();
+       helpText.append(tr("<ul>"));
+       helpText.append(tr("<li>${d}: day of month (01-31)</li>"));
+       helpText.append(tr("<li>${m}: month (01-12)</li>"));
+       helpText.append(tr("<li>${y}: year (last two digits)</li>"));
+       helpText.append(tr("<li>${Y}: year (4 digits}</li>"));
+       helpText.append(tr("<li>${dow_DE}: day of week in German (Montag, ...)</li>"));
+       helpText.append(tr("</ul>"));
+       labHelp->setText(helpText);
 }
 
 
index c6245f4367fee999d1a58d68f5ae0e5ee8181584..d252dd3fd60921fff90be3404d9ca53994699a33 100644 (file)
    <item>
     <widget class="QLabel" name="labHelp" >
      <property name="text" >
-      <string>You may use the following special characters:
-
-&lt;ul>
-&lt;li>${d}: day of month (01-31)
-&lt;li>${m}: month (01-12)
-&lt;li>${y]: year (last two digits)
-&lt;li>${Y}: year (4 digits}
-&lt;li>${dow_DE}: day of week in German (Montag, ...)
-&lt;/ul></string>
+      <string>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'Bitstream Vera Sans Mono'; font-size:12.4444pt; font-weight:400; font-style:normal; text-decoration:none;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;">You may use the following special characters:&lt;/p>&lt;/body>&lt;/html></string>
      </property>
      <property name="textFormat" >
       <enum>Qt::RichText</enum>