Ticket #8053: 8053-pbbhelper.patch

File 8053-pbbhelper.patch, 3.5 KB (added by Jeff Lu <jll544@…>, 14 years ago)
  • programs/mythfrontend/playbackboxhelper.h

     
    8888    mutable QMutex      m_lock;
    8989
    9090    // Free disk space tracking
    91     int                 m_freeSpaceTimerId;
    9291    uint64_t            m_freeSpaceTotalMB;
    9392    uint64_t            m_freeSpaceUsedMB;
    9493
     
    101100    QStringList         m_previewGeneratorQueue;
    102101    uint                m_previewGeneratorRunning;
    103102    uint                m_previewGeneratorMaxThreads;
    104 
    105     static const uint kUpdateFreeSpaceInterval;
    106103};
    107104
    108105#endif // _FREE_SPACE_H_
  • programs/mythfrontend/playbackboxhelper.cpp

     
    2222class PBHEventHandler : public QObject
    2323{
    2424  public:
    25     PBHEventHandler(PlaybackBoxHelper &pbh) : m_pbh(pbh) { }
     25    PBHEventHandler(PlaybackBoxHelper &pbh) : m_pbh(pbh), freeSpaceTimerId(0) { }
    2626    virtual bool event(QEvent*); // QObject
     27    void UpdateFreeSpaceEvent(void);
    2728    PlaybackBoxHelper &m_pbh;
     29    int freeSpaceTimerId;
     30    static const uint kUpdateFreeSpaceInterval;
    2831};
    2932
     33const uint PBHEventHandler::kUpdateFreeSpaceInterval = 15000; // 15 seconds
     34
    3035bool PBHEventHandler::event(QEvent *e)
    3136{
    3237    if (e->type() == QEvent::Timer)
    3338    {
    3439        QTimerEvent *te = (QTimerEvent*)e;
    3540        const int timer_id = te->timerId();
    36         if (timer_id == m_pbh.m_freeSpaceTimerId)
    37             m_pbh.UpdateFreeSpace();
     41        if (timer_id == freeSpaceTimerId)
     42            UpdateFreeSpaceEvent();
    3843    }
    3944    else if (e->type() == (QEvent::Type) MythEvent::MythEventMessage)
    4045    {
    4146        MythEvent *me = (MythEvent*)e;
    4247        if (me->Message() == "UPDATE_FREE_SPACE")
    4348        {
    44             m_pbh.UpdateFreeSpace();
     49            UpdateFreeSpaceEvent();
    4550            return true;
    4651        }
    4752        else if (me->Message() == "STOP_RECORDING")
     
    186191    return QObject::event(e);
    187192}
    188193
     194void PBHEventHandler::UpdateFreeSpaceEvent(void)
     195{
     196    if (freeSpaceTimerId)
     197        killTimer(freeSpaceTimerId);
     198    m_pbh.UpdateFreeSpace();
     199    freeSpaceTimerId = startTimer(kUpdateFreeSpaceInterval);
     200}
     201
    189202//////////////////////////////////////////////////////////////////////
    190203
    191 const uint PlaybackBoxHelper::kUpdateFreeSpaceInterval = 15000; // 15 seconds
    192 
    193204const uint PreviewGenState::maxAttempts     = 5;
    194205const uint PreviewGenState::minBlockSeconds = 60;
    195206
    196207PlaybackBoxHelper::PlaybackBoxHelper(QObject *listener) :
    197208    m_listener(listener), m_eventHandler(NULL),
    198209    // Free Space Tracking Variables
    199     m_freeSpaceTimerId(0), m_freeSpaceTotalMB(0ULL), m_freeSpaceUsedMB(0ULL),
     210    m_freeSpaceTotalMB(0ULL), m_freeSpaceUsedMB(0ULL),
    200211    // Preview Image Variables
    201212    m_previewGeneratorRunning(0), m_previewGeneratorMaxThreads(2)
    202213{
     
    278289
    279290void PlaybackBoxHelper::UpdateFreeSpace(void)
    280291{
    281     if (m_freeSpaceTimerId)
    282         killTimer(m_freeSpaceTimerId);
    283 
    284292    vector<FileSystemInfo> fsInfos = RemoteGetFreeSpace();
    285293
    286294    QMutexLocker locker(&m_lock);
     
    292300            m_freeSpaceUsedMB  = (uint64_t) (fsInfos[i].usedSpaceKB  >> 10);
    293301        }
    294302    }
    295 
    296     m_freeSpaceTimerId = startTimer(kUpdateFreeSpaceInterval);
    297303}
    298304
    299305uint64_t PlaybackBoxHelper::GetFreeSpaceTotalMB(void) const