idle-monitor: Rearrange code to make it a cleaner split

We're going to push this to be subclasses soon.
This commit is contained in:
Jasper St. Pierre 2014-03-30 20:36:47 -04:00
parent afce448281
commit 9a751a95e3

View File

@ -96,15 +96,6 @@ G_DEFINE_TYPE (MetaIdleMonitor, meta_idle_monitor, G_TYPE_OBJECT)
static MetaIdleMonitor *device_monitors[256]; static MetaIdleMonitor *device_monitors[256];
static int device_id_max; static int device_id_max;
static gint64
_xsyncvalue_to_int64 (XSyncValue value)
{
return ((guint64) XSyncValueHigh32 (value)) << 32
| (guint64) XSyncValueLow32 (value);
}
#define GUINT64_TO_XSYNCVALUE(value, ret) XSyncIntsToValue (ret, (value) & 0xFFFFFFFF, ((guint64)(value)) >> 32)
static void static void
fire_watch (MetaIdleMonitorWatch *watch) fire_watch (MetaIdleMonitorWatch *watch)
{ {
@ -133,6 +124,15 @@ fire_watch (MetaIdleMonitorWatch *watch)
g_object_unref (monitor); g_object_unref (monitor);
} }
static gint64
_xsyncvalue_to_int64 (XSyncValue value)
{
return ((guint64) XSyncValueHigh32 (value)) << 32
| (guint64) XSyncValueLow32 (value);
}
#define GUINT64_TO_XSYNCVALUE(value, ret) XSyncIntsToValue (ret, (value) & 0xFFFFFFFF, ((guint64)(value)) >> 32)
static XSyncAlarm static XSyncAlarm
_xsync_alarm_set (MetaIdleMonitor *monitor, _xsync_alarm_set (MetaIdleMonitor *monitor,
XSyncTestType test_type, XSyncTestType test_type,
@ -659,6 +659,23 @@ meta_idle_monitor_remove_watch (MetaIdleMonitor *monitor,
g_object_unref (monitor); g_object_unref (monitor);
} }
static gint64
meta_idle_monitor_get_idletime_wayland (MetaIdleMonitor *monitor)
{
return (g_get_monotonic_time () - monitor->last_event_time) / 1000;
}
static gint64
meta_idle_monitor_get_idletime_x11 (MetaIdleMonitor *monitor)
{
XSyncValue value;
if (!XSyncQueryCounter (monitor->display, monitor->counter, &value))
return -1;
return _xsyncvalue_to_int64 (value);
}
/** /**
* meta_idle_monitor_get_idletime: * meta_idle_monitor_get_idletime:
* @monitor: A #MetaIdleMonitor * @monitor: A #MetaIdleMonitor
@ -668,19 +685,10 @@ meta_idle_monitor_remove_watch (MetaIdleMonitor *monitor,
gint64 gint64
meta_idle_monitor_get_idletime (MetaIdleMonitor *monitor) meta_idle_monitor_get_idletime (MetaIdleMonitor *monitor)
{ {
XSyncValue value;
if (meta_is_wayland_compositor ()) if (meta_is_wayland_compositor ())
{ return meta_idle_monitor_get_idletime_wayland (monitor);
return (g_get_monotonic_time () - monitor->last_event_time) / 1000;
}
else else
{ return meta_idle_monitor_get_idletime_x11 (monitor);
if (!XSyncQueryCounter (monitor->display, monitor->counter, &value))
return -1;
return _xsyncvalue_to_int64 (value);
}
} }
typedef struct { typedef struct {