Skip to content

Commit

Permalink
Fix deprecation warnings in OSX screensaver.
Browse files Browse the repository at this point in the history
  • Loading branch information
linuxdude42 committed Apr 29, 2020
1 parent 1818e55 commit 1b04995
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 50 deletions.
53 changes: 5 additions & 48 deletions mythtv/libs/libmythui/screensaver-osx.cpp
@@ -1,63 +1,20 @@
#include "screensaver-osx.h"

#include <CoreServices/CoreServices.h>

class ScreenSaverOSXPrivate
{
public:
static void timerCallback(CFRunLoopTimerRef /* timer */, void * /* info */)
{
UpdateSystemActivity(OverallAct);
};

CFRunLoopTimerRef m_timer {nullptr};

friend class ScreenSaverOSX;
};

ScreenSaverOSX::ScreenSaverOSX()
{
d = new ScreenSaverOSXPrivate();
}

ScreenSaverOSX::~ScreenSaverOSX()
{
ScreenSaverOSX::Restore();
delete d;
}

void ScreenSaverOSX::Disable(void)
{
CFRunLoopTimerContext context = { 0, nullptr, nullptr, nullptr, nullptr };
if (!d->m_timer)
{
d->m_timer = CFRunLoopTimerCreate(nullptr, CFAbsoluteTimeGetCurrent(),
30, 0, 0,
ScreenSaverOSXPrivate::timerCallback,
&context);
if (d->m_timer)
{
CFRunLoopAddTimer(CFRunLoopGetCurrent(),
d->m_timer,
kCFRunLoopCommonModes);
}
}
IOPMAssertionCreateWithName(kIOPMAssertPreventUserIdleDisplaySleep,
kIOPMAssertionLevelOn,
CFSTR("MythTV Activity"),
&iopm_id);
}

void ScreenSaverOSX::Restore(void)
{
if (d->m_timer)
{
CFRunLoopTimerInvalidate(d->m_timer);
CFRelease(d->m_timer);
d->m_timer = nullptr;
}
IOPMAssertionRelease(iopm_id);
}

void ScreenSaverOSX::Reset(void)
{
// Wake up the screen saver now.
ScreenSaverOSXPrivate::timerCallback(nullptr, nullptr);
}

bool ScreenSaverOSX::Asleep(void)
Expand Down
8 changes: 6 additions & 2 deletions mythtv/libs/libmythui/screensaver-osx.h
Expand Up @@ -3,11 +3,13 @@

#include "screensaver.h"

#include <IOKit/pwr_mgt/IOPMLib.h>

class ScreenSaverOSX : public ScreenSaver
{
public:
ScreenSaverOSX();
~ScreenSaverOSX() override;
ScreenSaverOSX() = default;
~ScreenSaverOSX() override = default;

void Disable(void) override; // ScreenSaver
void Restore(void) override; // ScreenSaver
Expand All @@ -21,6 +23,8 @@ class ScreenSaverOSX : public ScreenSaver
private:
ScreenSaverOSX(const ScreenSaverOSX &) = delete; // not copyable
ScreenSaverOSX &operator=(const ScreenSaverOSX &) = delete; // not copyable

IOPMAssertionID iopm_id {kIOPMNullAssertionID};
};

#endif // MYTH_SCREENSAVER_OSX_H
Expand Down

0 comments on commit 1b04995

Please sign in to comment.