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/player-parts/xine-part/xine_part.h

278 lines
6.7 KiB

/*
* xine_part.h
*
* Copyright (C) 2004-2005 Jürgen Kofler <kaffeine@gmx.net>
*
* 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 XINEPART_H
#define XINEPART_H
#include <tdeparts/factory.h>
#include <tqtimer.h>
#include "kaffeinepart.h"
#include "xine_part_iface.h"
#define FORWARD_TIMER 0
#define BACKWARD_TIMER 1
class TQWidget;
class TQSlider;
class TQLabel;
class TQPushButton;
class MRL;
class KXineWidget;
class TQPoint;
class TDESelectAction;
class TDEToggleAction;
class Equalizer;
class VideoSettings;
class FilterDialog;
class PositionSlider;
class KProgressDialog;
class TDEPopupMenu;
/**
* Kaffeine Part - xine based player part
* @author Jürgen Kofler <kaffeine@gmx.net>
*
*/
class XinePart : public KaffeinePart, public XinePartIface
{
TQ_OBJECT
public:
XinePart(TQWidget*, const char*, TQObject*, const char*, const TQStringList&);
virtual ~XinePart();
/*
*Reimplemented from KaffeinePart
*/
bool isPlaying();
bool isPaused();
bool hasChapters(); /* e.g. DVD */
void playNextChapter();
void playPreviousChapter();
void setDVDChapter(uint chapter);
bool hasVideo();
TQString supportedExtensions();
void* engine();
uint volume() const; /* percent */
uint position() const; /* percent */
bool closeURL(); /* stops playback and shows kaffeine logo */
static TDEAboutData* createAboutData();
/*
* DCOP functions...
*/
int getContrast();
void setContrast(int c);
int getBrightness();
void setBrightness(int b);
void dvdMenuUp();
void dvdMenuDown();
void dvdMenuLeft();
void dvdMenuRight();
void dvdMenuSelect();
void dvdMenuToggle();
void aspectRatioAuto();
void aspectRatio4_3();
void aspectRatioAnamorphic();
void aspectRatioSquare();
void aspectRatioDVB();
void zoomInX();
void zoomOutX();
void zoomInY();
void zoomOutY();
void zoomIn();
void zoomOut();
void zoomOff();
TQString screenShot();
void nextAudioChannel();
void nextSubtitleChannel();
void speedFaster();
void speedSlower();
public slots:
/*
* Reimplemented from KaffeinePart
*/
bool openURL(const MRL& mrl);
void slotPrepareForFullscreen(bool);
void slotPlay(bool forcePlay=false);
void slotTogglePause(bool pauseLive=true);
void slotSetVolume(uint); /* percent */
void slotSetPosition(uint); /* percent */
void slotPosPlusSmall();
void slotPosMinusSmall();
void slotSyncVolume();
void slotStop();
void slotMute(); /* toggle mute */
void slotVolumeUp();
void slotVolumeDown();
void slotPosPlusMedium();
void slotPosMinusMedium();
void slotPosPlusLarge();
void slotPosMinusLarge();
void slotJumpIncrement(int);
void slotDelaySubTitle();
void slotAdvanceSubTitle();
void slotAddSubtitle();
void slotNextAudioChannel();
void slotNextSubtitleChannel();
/***************** Private ********************/
private slots:
void slotFinalize();
void slotTrackPlaying();
void slotCheckMoved();
void slotNext();
void slotPrevious();
void slotSaveStream();
void slotChannelInfo(const TQStringList&, const TQStringList&, int, int);
void slotSetSubtitle(int);
void slotSetAudioChannel(int);
void slotNewPosition(int, const TQTime&);
void slotVolumeChanged(int);
void slotPictureSettings();
void slotEqualizer();
void slotDeinterlaceQuality();
void slotFilterDialog();
void slotInfo();
void slotToggleBroadcastSend();
void slotBroadcastReceive();
void slotJumpToPosition();
void slotButtonTimerPressed();
void slotButtonTimerReleased();
void slotToggleOsdTimer();
void slotScreenshot();
void slotConfigXine();
void slotError(const TQString&);
void slotMessage(const TQString&);
void slotStatus(const TQString&);
void slotNewTitle();
void slotNewLength();
void slotNewFrameSize();
void slotPlaybackFinished();
void slotContextMenu(const TQPoint&);
void slotDisableAllActions();
void slotEnableAllActions();
void slotEnablePlayActions();
void slotCopyToClipboard();
void slotLaunchExternally();
void slotLaunchDelayed();
void slotFastForward();
void slotSlowMotion();
void slotSetDVDTitle(const TQString&);
void slotSetDVDChapter(const TQString&);
void slotSetDVDAngle(const TQString&);
void slotDVDMenuLeft();
void slotDVDMenuRight();
void slotDVDMenuUp();
void slotDVDMenuDown();
void slotDVDMenuSelect();
void slotSetHue(int);
void slotSetSaturation(int);
void slotSetContrast(int);
void slotSetBrightness(int);
private:
void initActions();
void initConnections();
void loadConfig();
void saveConfig();
private:
TQPoint m_oldPosition;
TQTimer m_posCheckTimer;
TQTimer m_osdTimerEnabler; /* Provide Long click on timer button */
bool m_isOsdTimer; /* Status of Osd Timer (on/off) */
int m_timerDirection; /* Counting Up or Down */
int m_brightness, m_hue, m_contrast, m_saturation;
MRL m_mrl;
TQValueList<MRL> m_playlist;
uint m_current;
uint m_lastDeinterlaceQuality;
TQString m_lastDeinterlacerConfig;
uint m_broadcastPort;
TQString m_broadcastAddress;
TQSlider* m_volume;
PositionSlider* m_position;
TQPushButton* m_playTime;
uint currentPosition;
TDESelectAction* m_audioChannels;
TDESelectAction* m_audioVisual;
TDESelectAction* m_subtitles;
TDESelectAction* m_dvdChapters;
TDESelectAction* m_dvdTitles;
TDESelectAction* m_dvdAngles;
TDEToggleAction* m_deinterlaceEnabled;
TDEToggleAction* m_broadcastSend;
TDEToggleAction* m_pauseButton;
KXineWidget* m_xine;
VideoSettings* m_pictureSettings;
Equalizer* m_equalizer;
TQWidget* m_deinterlacerConfigWidget;
FilterDialog* m_filterDialog;
TDEPopupMenu* m_embeddedContext;
/* dvb */
public:
TQString TimeShiftFilename;
public slots:
void slotDvbOpen( const TQString &filename, const TQString &chanName, int haveVideo );
void getTimeShiftFilename( const TQString &filename );
void requestForOSD( const TQString &text, int duration, int priority );
void setDvbCurrentNext( const TQString &channelname, const TQStringList &list );
signals:
void stopDvb();
void playerPause();
void dvbOSDHide();
};
#include <tqslider.h>
class VolumeSlider : public TQSlider
{
public:
VolumeSlider();
~VolumeSlider();
protected:
void wheelEvent(TQWheelEvent* e);
//bool eventFilter(TQObject *obj, TQEvent *ev);
};
#endif /* XINEPART_H */