Ticket #29: screensaver-x11.diff

File screensaver-x11.diff, 4.2 KB (added by neil@…, 19 years ago)

replacement patch rolled into screensaver-x11

  • configure

     
    6060PROFILEFLAGS=""
    6161proc_opt="no"
    6262dvd="yes"
     63xss="no"
    6364v4l="no"
    6465frontend="yes"
    6566backend="no"
     
    134135echo "  --disable-audio-arts     disable aRts audio support"
    135136echo "  --disable-audio-jack     disable JACK audio support"
    136137echo "  --disable-dvd            disable native DVD playback"
     138echo "  --enable-xss             enable XScreenSaver support"
    137139echo "  --disable-frontend       disable frontend [breaks dependency checking]"
    138140echo "  --disable-backend        disable backend  [breaks dependency checking]"
    139141#echo "  --disable-audio-beos     disable BeOS audio support [default=no]"
     
    745747  ;;
    746748  --disable-dvd) dvd="no"
    747749  ;;
     750  --enable-xss) xss="yes"
     751  ;;
     752  --disable-xss) xss="no"
     753  ;;
    748754  --enable-frontend) frontend="yes"
    749755  ;;
    750756  --disable-frontend) frontend="no"
     
    19901996
    19911997echo "# Misc Features"
    19921998echo "DVD playback     $dvd"
     1999echo "XScreenSaver     $xss"
    19932000echo "Frontend         $frontend"
    19942001echo "Backend          $backend"
    19952002echo
     
    25172524  echo "CONFIG_DVD_LIBS=-ldvdnav" >> $MYTH_CONFIG_MAK
    25182525fi
    25192526
    2520 
     2527if test x"$xss" = x"yes" ; then
     2528  CCONFIG="$CCONFIG using_xss"
     2529fi
     2530   
    25212531if test x"$xrandr" = x"yes" ; then
    25222532  CCONFIG="$CCONFIG using_xrandr"
    25232533fi
  • libs/libmyth/screensaver-x11.cpp

     
    88}
    99
    1010#include "mythcontext.h"
     11#include "util.h"
    1112
     13ScreenSaverXSSTimer::ScreenSaverXSSTimer()
     14{
     15    resetTimer = new QTimer();
     16    connect(resetTimer, SIGNAL(timeout()), this, SLOT(resetSlot()));
     17}
     18
     19ScreenSaverXSSTimer::~ScreenSaverXSSTimer()
     20{
     21    if (resetTimer)
     22    {
     23        delete resetTimer;
     24    }
     25}
     26
     27void ScreenSaverXSSTimer::resetXSS()
     28{
     29    myth_system(QString("xscreensaver-command -deactivate >&- 2>&- &"));
     30}
     31
     32void ScreenSaverXSSTimer::resetSlot()
     33{
     34    resetXSS();
     35}
     36
    1237class ScreenSaverX11Private
    1338{
    1439    struct
     
    2752ScreenSaverX11::ScreenSaverX11()
    2853{
    2954    d = new ScreenSaverX11Private();
     55#ifdef USE_XSS
     56    t = new ScreenSaverXSSTimer();
     57    t->timeoutInterval = 60000;
     58#endif
    3059}
    3160
    3261ScreenSaverX11::~ScreenSaverX11()
    3362{
    3463    delete d;
     64#ifdef USE_XSS
     65    delete t;
     66#endif
    3567}
    3668
    3769void ScreenSaverX11::Disable(void)
     
    6395            VERBOSE(VB_GENERAL, "Disable DPMS");
    6496        }
    6597    }
     98
     99#ifdef USE_XSS
     100    if (t->resetTimer->isActive())
     101    {
     102        t->resetTimer->stop();
     103    }
     104    t->resetTimer->start(t->timeoutInterval, FALSE);
     105#endif
    66106}
    67107
    68108void ScreenSaverX11::Restore(void)
     
    84124            VERBOSE(VB_GENERAL, "Enable DPMS");
    85125        }
    86126    }
     127
     128#ifdef USE_XSS
     129    if (t->resetTimer->isActive())
     130    {
     131        t->resetTimer->stop();
     132    }
     133#endif
    87134}
    88135
    89136void ScreenSaverX11::Reset(void)
    90137{
    91138    XResetScreenSaver(qt_xdisplay());
     139#ifdef USE_XSS
     140    t->resetXSS();
     141#endif
    92142}
    93 
  • libs/libmyth/libmyth.pro

     
    138138    SOURCES += audiooutputdx.cpp
    139139}
    140140
     141using_xss {
     142    DEFINES += USE_XSS
     143}
     144
    141145using_x11 {
    142146    HEADERS += screensaver-x11.h
    143147    SOURCES += screensaver-x11.cpp
  • libs/libmyth/screensaver-x11.h

     
    33
    44#include "screensaver.h"
    55
     6#include <qobject.h>
     7#include <qtimer.h>
     8
     9class ScreenSaverXSSTimer : public QObject
     10{
     11    Q_OBJECT
     12public:
     13    ScreenSaverXSSTimer();
     14    ~ScreenSaverXSSTimer();
     15    void resetXSS(void);
     16    int timeoutInterval;
     17    QTimer *resetTimer;
     18       
     19private slots:
     20    void resetSlot();
     21
     22};
     23
    624class ScreenSaverX11 : public ScreenSaverControl
    725{
    826public:
     
    1533
    1634protected:
    1735    class ScreenSaverX11Private *d;
     36    class ScreenSaverXSSTimer *t;
    1837};
    1938
    2039#endif // MYTH_SCREENSAVER_X11_H