You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
4.6 KiB
173 lines
4.6 KiB
/* This file is part of the KMPlayer application
|
|
Copyright (C) 2004 Koos Vriezen <koos.vriezen@xs4all.nl>
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
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 program; see the file COPYING. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef KMPLAYER_VDR_SOURCE_H
|
|
#define KMPLAYER_VDR_SOURCE_H
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include <config.h>
|
|
#endif
|
|
|
|
#include <tqframe.h>
|
|
|
|
#include <kurl.h>
|
|
|
|
#include "kmplayerappsource.h"
|
|
#include "kmplayerconfig.h"
|
|
#include "kmplayerprocess.h"
|
|
|
|
|
|
class KMPlayerApp;
|
|
class VDRCommand;
|
|
class KURLRequester;
|
|
class TQButtonGroup;
|
|
class TQMenuItem;
|
|
class TQCheckBox;
|
|
class TQLineEdit;
|
|
class TDEAction;
|
|
class TQSocket;
|
|
class TQTimerEvent;
|
|
class TDEListView;
|
|
|
|
/*
|
|
* Preference page for VDR
|
|
*/
|
|
class KMPLAYER_NO_EXPORT KMPlayerPrefSourcePageVDR : public TQFrame {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
KMPlayerPrefSourcePageVDR (TQWidget * parent, KMPlayer::PartBase * player);
|
|
~KMPlayerPrefSourcePageVDR ();
|
|
KURLRequester * vcddevice;
|
|
TDEListView * xv_port;
|
|
TQLineEdit * tcp_port;
|
|
TQButtonGroup * scale;
|
|
protected:
|
|
void showEvent (TQShowEvent *);
|
|
private:
|
|
KMPlayer::PartBase * m_player;
|
|
};
|
|
|
|
|
|
/*
|
|
* Source from VDR (XVideo actually) and socket connection
|
|
*/
|
|
class KMPLAYER_NO_EXPORT KMPlayerVDRSource : public KMPlayer::Source, public KMPlayer::PreferencesPage {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
KMPlayerVDRSource (KMPlayerApp * app);
|
|
virtual ~KMPlayerVDRSource ();
|
|
virtual bool hasLength ();
|
|
virtual bool isSeekable ();
|
|
virtual TQString prettyName ();
|
|
virtual void write (TDEConfig *);
|
|
virtual void read (TDEConfig *);
|
|
virtual void sync (bool);
|
|
virtual void prefLocation (TQString & item, TQString & icon, TQString & tab);
|
|
virtual TQFrame * prefPage (TQWidget * parent);
|
|
virtual bool requestPlayURL (KMPlayer::NodePtr mrl);
|
|
virtual void stateElementChanged (KMPlayer::Node * node, KMPlayer::Node::State os, KMPlayer::Node::State ns);
|
|
void waitForConnectionClose ();
|
|
public slots:
|
|
void activate ();
|
|
void deactivate ();
|
|
void jump (KMPlayer::NodePtr e);
|
|
void forward ();
|
|
void backward ();
|
|
void playCurrent ();
|
|
void toggleConnected ();
|
|
void volumeChanged (int);
|
|
private slots:
|
|
void keyUp ();
|
|
void keyDown ();
|
|
void keyBack ();
|
|
void keyOk ();
|
|
void keySetup ();
|
|
void keyChannels ();
|
|
void keyMenu ();
|
|
void key0 ();
|
|
void key1 ();
|
|
void key2 ();
|
|
void key3 ();
|
|
void key4 ();
|
|
void key5 ();
|
|
void key6 ();
|
|
void key7 ();
|
|
void key8 ();
|
|
void key9 ();
|
|
void keyRed ();
|
|
void keyGreen ();
|
|
void keyYellow ();
|
|
void keyBlue ();
|
|
void customCmd ();
|
|
void connected ();
|
|
void disconnected ();
|
|
void readyRead ();
|
|
void socketError (int);
|
|
void processStopped ();
|
|
void processStarted ();
|
|
void configReceived ();
|
|
protected:
|
|
void timerEvent (TQTimerEvent *);
|
|
private:
|
|
enum {
|
|
act_up = 0, act_down, act_back, act_ok,
|
|
act_setup, act_channels, act_menu,
|
|
act_red, act_green, act_yellow, act_blue,
|
|
act_0, act_1, act_2, act_3, act_4, act_5, act_6, act_7, act_8, act_9,
|
|
#if KDE_IS_VERSION(3, 1, 90)
|
|
act_custom,
|
|
#endif
|
|
act_last
|
|
};
|
|
void queueCommand (const char * cmd);
|
|
void queueCommand (const char * cmd, int repeat_ms);
|
|
void sendCommand ();
|
|
void deleteCommands ();
|
|
void jump (const TQString & channel);
|
|
KMPlayerApp * m_app;
|
|
KMPlayerPrefSourcePageVDR * m_configpage;
|
|
TDEAction * m_actions [act_last];
|
|
TDEAction * m_fullscreen_actions [act_last];
|
|
TQSocket * m_socket;
|
|
VDRCommand * commands;
|
|
TQString m_request_jump;
|
|
KMPlayer::NodePtrW m_last_channel;
|
|
int channel_timer;
|
|
int timeout_timer;
|
|
int finish_timer;
|
|
int tcp_port;
|
|
int m_stored_volume;
|
|
int scale;
|
|
int last_channel;
|
|
};
|
|
|
|
class XVideo : public KMPlayer::CallbackProcess {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
XVideo (TQObject * parent, KMPlayer::Settings * settings);
|
|
~XVideo ();
|
|
public slots:
|
|
virtual bool ready (KMPlayer::Viewer *);
|
|
};
|
|
|
|
#endif // KMPLAYER_VDR_SOURCE_H
|