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.
kaffeine/kaffeine/src/input/dvb/dvbpanel.h

246 lines
6.0 KiB

/*
* dvbpanel.h
*
* Copyright (C) 2004-2007 Christophe Thommeret <hftom@free.fr>
*
* 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; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef DVBPANEL_H
#define DVBPANEL_H
#include <tqframe.h>
#include <tqcombobox.h>
#include <tqtoolbutton.h>
#include <tqptrlist.h>
#include <tqtimer.h>
#include <tqsplitter.h>
#include <tqvbox.h>
#include <kapp.h>
#include <kpushbutton.h>
#include <kled.h>
#include <tdelistview.h>
#include <kiconview.h>
#include <klineedit.h>
#include "scandialog.h"
#include "dvbconfig.h"
#include "krecord.h"
#include "ts2rtp.h"
#include "cleaner.h"
#include "dvbevents.h"
#include "kaffeineinput.h"
class ChannelDesc;
class DvbStream;
class DvbPanel;
class KaffeineDvbPlugin;
class DListView : public TDEListView
{
TQ_OBJECT
public:
DListView( TQWidget *parent );
int visibleItems;
protected:
virtual TQDragObject* dragObject();
};
class DIconViewItem : public TDEIconViewItem
{
public:
DIconViewItem( DvbPanel *pan, TQIconView *parent, const TQString &text, const TQPixmap &icon );
protected:
void dropped( TQDropEvent *e, const TQValueList<TQIconDragItem> & );
private:
DvbPanel *panel;
};
class DvbPanel : public KaffeineInput
{
TQ_OBJECT
public:
DvbPanel( TQWidget *parent, TQObject *objParent, const char *name=0);
~DvbPanel();
bool getChannelList();
bool saveChannelList();
bool timeShiftMode();
void setConfig();
void enableLiveDvb( bool on );
void checkFirstRun();
void moveChannel( const TQString &cat, const TQString &name );
// Reimplemented from KaffeineInput
TQWidget *wantPlayerWindow();
TQWidget *inputMainWidget();
void toggleLayout( bool );
bool close();
bool nextTrack( MRL& );
bool previousTrack( MRL& );
bool currentTrack( MRL& );
bool trackNumber( int, MRL& );
bool playbackFinished( MRL& );
void getTargets( TQStringList &uiNames, TQStringList &iconNames, TQStringList &targetNames );
void togglePanel();
bool execTarget( const TQString& );
void saveConfig();
//***************************************
TQPtrList<ChannelDesc> channels;
TQPtrList<RecTimer> timers;
TQPtrList<DvbStream> dvb;
TQString fifoName, fifoName1, currentFifo;
TQString timeShiftFileName;
Ts2Rtp *rtp;
TQVBox *mainWidget;
TQVBox *playerBox, *pbox;
public slots:
void playLastChannel();
void playNumChannel( int num );
void stopLive();
void setShiftLed( bool on );
void setRecordLed( bool on );
void setBroadcastLed( bool on );
void setRecord();
void setBroadcast();
void pauseLiveTV();
void killTimer( RecTimer *t );
void showEvents();
void showTimers();
void scanner();
void showConfigDialog();
void next();
void previous();
void recallZap();
void dvbOSD();
void dvbOSDNext();
void dvbOSDPrev();
void dvbOSDSkip(int skip, int timeShift = 0);
void dvbOSDZap();
void dvbOSDHide();
void dvbOSDAdvance();
void dvbOSDRetreat();
void dvbNewTimer( TQString name, TQString channel, TQString datetime, TQString duration );
int getSNR( int device );
void diskStatus();
void camClicked( int devNum );
private:
void setupActions();
bool getTimerList();
bool saveTimerList();
void fillChannelList( ChannelDesc *ch=0 );
TQPtrList<Transponder> getSourcesStatus();
void updateModeTimer( RecTimer *t );
DvbStream* getWorkingDvb( int mode, ChannelDesc *chan );
void dvbOSD(ChannelDesc liveChannel, DvbStream *d, int timeShift = 0);
DvbStream* getLiveDVBStream();
TQPixmap tvPix, raPix, tvcPix, racPix;
TQSplitter *split;
TQFrame *panel;
TDEIconView *iconView;
DListView *channelsCb;
TQToolButton *broadcastBtn, *recordBtn;
TQToolButton *dateBtn, *infoBtn, *channelsBtn, *configBtn, *osdBtn, *recallBtn;
KLed *shiftLed, *recordLed, *broadcastLed;
TQTimer timersTimer;
DVBconfig *dvbConfig;
KRecord *timersDialog;
int updown;
unsigned long autocount;
int currentChannelNumber;
Cleaner *cleaner;
int osdMode;
TQTimer osdTimer;
TQTimer showOsdTimer;
TQString currentCategory;
bool isTuning;
TQTimer tuningTimer, stopTuningTimer;
TQTimer diskTimer;
KLineEdit *searchLE;
TQToolButton *searchBtn;
int recallChannel;
int browseDvbStream;
int maxChannelNumber, minChannelNumber;
int browseDvbTimeShift;
KaffeineDvbPlugin *plug;
TQString plugName;
EventTable events;
private slots:
void searchChannel( const TQString &text );
void resetSearch();
void checkTimers();
bool editChannel( TQString &name );
void channelSelected( TQListViewItem *it );
void channelClicked( TQListViewItem *it );
void channelSelected( const TQString &name );
void channelPopup( TQListViewItem *it, const TQPoint &pos, int col );
void dvbZap( ChannelDesc *chan );
void finalZap( DvbStream *d, ChannelDesc *chan );
void newTimer( TQString channel, TQString name, TQDateTime begin, TQTime duration, bool warn=true );
void dumpEvents();
void resetOSD();
void catContextMenu( TQIconViewItem*, const TQPoint& );
void catSelected( TQIconViewItem* );
void channelNumberChanged( TQListViewItem* );
void pipeOpened();
void setTuning();
signals:
void zap( ChannelDesc* );
void playDvb();
void timersChanged();
void dvbOpen( const TQString &filename, const TQString &chanName, int haveVideo );
void dvbStop();
void dvbPause( bool pauseLive );
void setTimeShiftFilename( const TQString& );
void showOSD( const TQString &text, int duration, int priority );
void showDvbOSD( const TQStringList& );
void showDvbOSD( const TQString&, const TQStringList& );
void updateTimer(RecTimer*, int);
};
#endif /* DVBPANEL_H */