X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Finput_manager.hpp;h=36549844f0ba8097fba12e23062f4aec0e9adda9;hb=de7b2fd2e8b58059bfe2f2ff7080385ab0a44f56;hp=31694944c1ac0a228344e6e4f4b669d648f8ffa8;hpb=385239a4bf7b2a1366cf823dd0c2e1b85499ad2d;p=vlc diff --git a/modules/gui/qt4/input_manager.hpp b/modules/gui/qt4/input_manager.hpp index 31694944c1..36549844f0 100644 --- a/modules/gui/qt4/input_manager.hpp +++ b/modules/gui/qt4/input_manager.hpp @@ -44,6 +44,7 @@ enum { ItemTitleChanged_Type, ItemRateChanged_Type, VolumeChanged_Type, + SoundMuteChanged_Type, ItemEsChanged_Type, ItemTeletextChanged_Type, InterfaceVoutUpdate_Type, @@ -57,6 +58,11 @@ enum { BookmarksChanged_Type, RecordingEvent_Type, ProgramChanged_Type, + RandomChanged_Type, + LoopChanged_Type, + RepeatChanged_Type, + LeafToParent_Type, + EPGEvent_Type, /* SignalChanged_Type, */ FullscreenControlToggle_Type = QEvent::User + IMEventType + 20, @@ -65,9 +71,15 @@ enum { FullscreenControlPlanHide_Type, }; +enum { NORMAL, /* loop: 0, repeat: 0 */ + REPEAT_ONE,/* loop: 1, repeat: 0 */ + REPEAT_ALL,/* loop: 0, repeat: 1 */ +}; + class IMEvent : public QEvent { friend class InputManager; +friend class MainInputManager; public: IMEvent( int type, input_item_t *p_input = NULL ) : QEvent( (QEvent::Type)(type) ) @@ -102,7 +114,7 @@ public: class InputManager : public QObject { - Q_OBJECT; + Q_OBJECT friend class MainInputManager; public: @@ -123,15 +135,17 @@ public: void requestArtUpdate(); QString getName() { return oldName; } + static const QString decodeArtURL( input_item_t *p_item ); private: intf_thread_t *p_intf; input_thread_t *p_input; + vlc_object_t *p_input_vbi; input_item_t *p_item; int i_old_playing_status; QString oldName; QString artUrl; - int i_rate; + float f_rate; float f_cache; bool b_video; mtime_t timeA, timeB; @@ -157,6 +171,7 @@ private: void UpdateCaching(); void UpdateRecord(); void UpdateProgramEvent(); + void UpdateEPG(); public slots: void setInput( input_thread_t * ); ///< Our controlled input changed @@ -185,12 +200,13 @@ public slots: private slots: void togglePlayPause(); - void AtoBLoop( float, int, int ); + void AtoBLoop( float, int64_t, int ); signals: /// Send new position, new time and new length - void positionUpdated( float , int, int ); - void rateChanged( int ); + void positionUpdated( float , int64_t, int ); + void seekRequested( float pos ); + void rateChanged( float ); void nameChanged( const QString& ); /// Used to signal whether we should show navigation buttons void titleChanged( bool ); @@ -220,11 +236,12 @@ signals: void cachingChanged( float ); /// Program Event changes void encryptionChanged( bool ); + void epgChanged(); }; class MainInputManager : public QObject { - Q_OBJECT; + Q_OBJECT public: static MainInputManager *getInstance( intf_thread_t *_p_intf ) { @@ -238,8 +255,12 @@ public: instance = NULL; } - input_thread_t *getInput() { return p_input; }; - InputManager *getIM() { return im; }; + input_thread_t *getInput() { return p_input; } + InputManager *getIM() { return im; } + inline input_item_t *currentInputItem() + { + return ( p_input ? input_GetItem( p_input ) : NULL ); + } vout_thread_t* getVout(); aout_instance_t *getAout(); @@ -256,19 +277,28 @@ private: input_thread_t *p_input; intf_thread_t *p_intf; + void notifyRepeatLoop(); public slots: void togglePlayPause(); + void play(); + void pause(); void toggleRandom(); void stop(); void next(); void prev(); void activatePlayQuit( bool ); + void loopRepeatLoopStatus(); + signals: void inputChanged( input_thread_t * ); void volumeChanged(); + void soundMuteChanged(); void playlistItemAppended( int itemId, int parentId ); void playlistItemRemoved( int itemId ); + void randomChanged( bool ); + void repeatLoopChanged( int ); + void leafBecameParent( input_item_t * ); }; #endif