MhpControl::MhpControl(ApplicationInfo::cApplication::Ptr a) : cControl (player=new MhpPlayer(this)), app(a) { monitor=0; status=Waiting;
class MhpControl; class MhpPlayer : public MhpOutput::Player { public: MhpPlayer(MhpControl *c) : control(c) {} ~MhpPlayer(); void ActivateParent(); protected: virtual void Activate(bool On); private: MhpControl *control; };  class MhpCarouselLoader { public: MhpCarouselLoader(ApplicationInfo::cApplication *a); ~MhpCarouselLoader(); LoadingState getState(); float getProgress(int &currentSize, int &totalSize); void Start(); void Stop(); void Hibernate(); void WakeUp(); SmartPtr<Cache::Cache> getCache(); ApplicationInfo::cApplication::ApplicationName *getName();  time_t getHibernationTime() { return hibernatedTime; } protected: void StartObjectCarousel(Dsmcc::ObjectCarousel *hibernated = 0); void StartLocalApp(); ApplicationInfo::cApplication *app; cDsmccReceiver *receiver; Dsmcc::ObjectCarousel *carousel; LoadingState state; ApplicationInfo::cTransportProtocol::Protocol protocol; time_t hibernatedTime; int totalSize; };  class MhpChannelWatch : public cStatus { protected: virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber); };  class MhpCarouselPreloader : public DvbSi::SchedulerBySeconds { public: MhpCarouselPreloader(); void PreloadForTransportStream(ApplicationInfo::TransportStreamID newTs); protected: class TimedPreloader : public DvbSi::TimedBySeconds { public: TimedPreloader(ApplicationInfo::TransportStreamID newTs); protected: virtual void Execute(); private: bool loading; std::list<ApplicationInfo::cApplication *> apps; std::list<ApplicationInfo::cApplication *>::iterator currentPosition; ApplicationInfo::TransportStreamID ts; }; private: TimedPreloader *currentLoader; ApplicationInfo::TransportStreamID ts; };  class cSkinDisplayReplay; class MhpControl : public cControl, public ProgressIndicator { public: MhpControl(ApplicationInfo::cApplication *a); virtual ~MhpControl();
MhpControl::MhpControl(ApplicationInfo::cApplication::Ptr a)  : cControl (player=new MhpPlayer(this)), app(a){   monitor=0;      status=Waiting;      display=0;   visible=false;   doShow=true;      appName=unknownName=tr("<unknown name>");}