Exemplo n.º 1
0
static OSStatus DoSetWakeup(
	AuthorizationRef			auth,
    const void *                userData,
	CFDictionaryRef				request,
	CFMutableDictionaryRef      response,
    aslclient                   asl,
    aslmsg                      aslMsg
)
{	
	//OSStatus					retval = noErr;
	
	// Pre-conditions
	int res;
		
	assert(auth != NULL);
    // userData may be NULL
	assert(request != NULL);
	assert(response != NULL);
    // asl may be NULL
    // aslMsg may be NULL
	
	if ( !CFDictionaryContainsKey(request, CFSTR(kWakerSetWakeupEventKeyDate)) ) { return 10; }
	
	res = IOPMSchedulePowerEvent((CFDateRef)CFDictionaryGetValue((CFDictionaryRef)request, CFSTR(kWakerSetWakeupEventKeyDate)), CFSTR(kAppKey), CFSTR(kIOPMAutoWake));
	
	if (res == kIOReturnSuccess)
	{
		printf("Daily Wakeup Call successfully installed\n");
	}
	else 
	{
		asl_log(asl, aslMsg, ASL_LEVEL_DEBUG, "Failed to set wakeup date. Errcode: %x", res);
		return res;
	}

	return noErr;
}
void poweronScheduleCallout(CFDictionaryRef event)
{    
    IOPMSchedulePowerEvent( event ? _getScheduledEventDate(event) : NULL,
                NULL, CFSTR(kIOPMAutoPowerScheduleImmediate) );
    return;
}