code cleanup in ChannelSelection,
[vuplus_dvbapp] / lib / dvb / dvb.h
index bc51ccd..037c197 100644 (file)
@@ -23,6 +23,7 @@ class eDVBRegisteredFrontend: public iObject, public Object
 {
        DECLARE_REF(eDVBRegisteredFrontend);
        eTimer *disable;
+       Signal0<void> stateChanged;
        void closeFrontend()
        {
                if (!m_inuse && m_frontend->closeFrontend()) // frontend busy
@@ -38,12 +39,18 @@ public:
        void dec_use()
        {
                if (!--m_inuse)
+               {
+                       /* emit */ stateChanged();
                        disable->start(3000, true);
+               }
        }
        void inc_use()
        {
                if (++m_inuse == 1)
+               {
                        m_frontend->openFrontend();
+                       /* emit */ stateChanged();
+               }
        }
        iDVBAdapter *m_adapter;
        ePtr<eDVBFrontend> m_frontend;
@@ -168,13 +175,14 @@ class eDVBResourceManager: public iObject, public Object
 
        Signal1<void,eDVBChannel*> m_channelAdded;
 
-       bool canAllocateFrontend(ePtr<iDVBFrontendParameters> &feparm);
+       int canAllocateFrontend(ePtr<iDVBFrontendParameters> &feparm);
 
        eUsePtr<iDVBChannel> m_cached_channel;
        Connection m_cached_channel_state_changed_conn;
        eTimer m_releaseCachedChannelTimer;
        void DVBChannelStateChanged(iDVBChannel*);
        void releaseCachedChannel();
+       void feStateChanged();
 #ifndef SWIG
 public:
 #endif
@@ -191,7 +199,7 @@ public:
        };
 
        RESULT connectChannelAdded(const Slot1<void,eDVBChannel*> &channelAdded, ePtr<eConnection> &connection);
-       bool canAllocateChannel(const eDVBChannelID &channelid, const eDVBChannelID &ignore);
+       int canAllocateChannel(const eDVBChannelID &channelid, const eDVBChannelID &ignore);
 
                /* allocate channel... */
        RESULT allocateChannel(const eDVBChannelID &channelid, eUsePtr<iDVBChannel> &channel);
@@ -199,6 +207,7 @@ public:
 #ifdef SWIG
 public:
 #endif
+       PSignal1<void,int> frontendUseMaskChanged;
        RESULT allocateRawChannel(eUsePtr<iDVBChannel> &, int frontend_index);
        static RESULT getInstance(ePtr<eDVBResourceManager> &);
 };