core-graphics2 0.5.2

Safe bindings to CoreGraphics framework, including display stream
Documentation
use libc::c_float;

use crate::{base::boolean_t, display_configuration::CGDisplayConfigRef, error::CGError};

pub type CGDisplayFadeReservationToken = u32;

pub const kCGDisplayFadeReservationInvalidToken: CGDisplayFadeReservationToken = 0;

pub type CGDisplayBlendFraction = c_float;

pub const kCGDisplayBlendNormal: CGDisplayBlendFraction = 0.0;
pub const kCGDisplayBlendSolidColor: CGDisplayBlendFraction = 1.0;

pub type CGDisplayFadeInterval = c_float;

pub type CGDisplayReservationInterval = c_float;

pub const kCGMaxDisplayReservationInterval: CGDisplayReservationInterval = 15.0;

extern "C" {
    pub fn CGConfigureDisplayFadeEffect(
        config: CGDisplayConfigRef,
        fadeOutSeconds: CGDisplayFadeInterval,
        fadeInSeconds: CGDisplayFadeInterval,
        fadeRed: c_float,
        fadeGreen: c_float,
        fadeBlue: c_float,
    ) -> CGError;
    pub fn CGAcquireDisplayFadeReservation(seconds: CGDisplayReservationInterval, token: *mut CGDisplayFadeReservationToken) -> CGError;
    pub fn CGReleaseDisplayFadeReservation(token: CGDisplayFadeReservationToken) -> CGError;
    pub fn CGDisplayFade(
        token: CGDisplayFadeReservationToken,
        duration: CGDisplayFadeInterval,
        startBlend: CGDisplayBlendFraction,
        endBlend: CGDisplayBlendFraction,
        redBlend: c_float,
        greenBlend: c_float,
        blueBlend: c_float,
        synchronous: boolean_t,
    ) -> CGError;
    pub fn CGDisplayFadeOperationInProgress() -> boolean_t;
}