{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- Used to represent display_primaries and white_point of
-- t'GI.GstVideo.Structs.VideoMasteringDisplayInfo.VideoMasteringDisplayInfo' struct. See t'GI.GstVideo.Structs.VideoMasteringDisplayInfo.VideoMasteringDisplayInfo'
-- 
-- /Since: 1.18/

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.GstVideo.Structs.VideoMasteringDisplayInfoCoordinates
    ( 

-- * Exported types
    VideoMasteringDisplayInfoCoordinates(..),
    newZeroVideoMasteringDisplayInfoCoordinates,


 -- * Methods

#if defined(ENABLE_OVERLOADING)
    ResolveVideoMasteringDisplayInfoCoordinatesMethod,
#endif



 -- * Properties


-- ** x #attr:x#
-- | the x coordinate of CIE 1931 color space in unit of 0.00002.

    getVideoMasteringDisplayInfoCoordinatesX,
    setVideoMasteringDisplayInfoCoordinatesX,
#if defined(ENABLE_OVERLOADING)
    videoMasteringDisplayInfoCoordinates_x  ,
#endif


-- ** y #attr:y#
-- | the y coordinate of CIE 1931 color space in unit of 0.00002.

    getVideoMasteringDisplayInfoCoordinatesY,
    setVideoMasteringDisplayInfoCoordinatesY,
#if defined(ENABLE_OVERLOADING)
    videoMasteringDisplayInfoCoordinates_y  ,
#endif




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R


-- | Memory-managed wrapper type.
newtype VideoMasteringDisplayInfoCoordinates = VideoMasteringDisplayInfoCoordinates (SP.ManagedPtr VideoMasteringDisplayInfoCoordinates)
    deriving (VideoMasteringDisplayInfoCoordinates
-> VideoMasteringDisplayInfoCoordinates -> Bool
(VideoMasteringDisplayInfoCoordinates
 -> VideoMasteringDisplayInfoCoordinates -> Bool)
-> (VideoMasteringDisplayInfoCoordinates
    -> VideoMasteringDisplayInfoCoordinates -> Bool)
-> Eq VideoMasteringDisplayInfoCoordinates
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VideoMasteringDisplayInfoCoordinates
-> VideoMasteringDisplayInfoCoordinates -> Bool
== :: VideoMasteringDisplayInfoCoordinates
-> VideoMasteringDisplayInfoCoordinates -> Bool
$c/= :: VideoMasteringDisplayInfoCoordinates
-> VideoMasteringDisplayInfoCoordinates -> Bool
/= :: VideoMasteringDisplayInfoCoordinates
-> VideoMasteringDisplayInfoCoordinates -> Bool
Eq)

instance SP.ManagedPtrNewtype VideoMasteringDisplayInfoCoordinates where
    toManagedPtr :: VideoMasteringDisplayInfoCoordinates
-> ManagedPtr VideoMasteringDisplayInfoCoordinates
toManagedPtr (VideoMasteringDisplayInfoCoordinates ManagedPtr VideoMasteringDisplayInfoCoordinates
p) = ManagedPtr VideoMasteringDisplayInfoCoordinates
p

instance BoxedPtr VideoMasteringDisplayInfoCoordinates where
    boxedPtrCopy :: VideoMasteringDisplayInfoCoordinates
-> IO VideoMasteringDisplayInfoCoordinates
boxedPtrCopy = \VideoMasteringDisplayInfoCoordinates
p -> VideoMasteringDisplayInfoCoordinates
-> (Ptr VideoMasteringDisplayInfoCoordinates
    -> IO VideoMasteringDisplayInfoCoordinates)
-> IO VideoMasteringDisplayInfoCoordinates
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr VideoMasteringDisplayInfoCoordinates
p (Int
-> Ptr VideoMasteringDisplayInfoCoordinates
-> IO (Ptr VideoMasteringDisplayInfoCoordinates)
forall a. (HasCallStack, CallocPtr a) => Int -> Ptr a -> IO (Ptr a)
copyBytes Int
4 (Ptr VideoMasteringDisplayInfoCoordinates
 -> IO (Ptr VideoMasteringDisplayInfoCoordinates))
-> (Ptr VideoMasteringDisplayInfoCoordinates
    -> IO VideoMasteringDisplayInfoCoordinates)
-> Ptr VideoMasteringDisplayInfoCoordinates
-> IO VideoMasteringDisplayInfoCoordinates
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> (ManagedPtr VideoMasteringDisplayInfoCoordinates
 -> VideoMasteringDisplayInfoCoordinates)
-> Ptr VideoMasteringDisplayInfoCoordinates
-> IO VideoMasteringDisplayInfoCoordinates
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.wrapPtr ManagedPtr VideoMasteringDisplayInfoCoordinates
-> VideoMasteringDisplayInfoCoordinates
VideoMasteringDisplayInfoCoordinates)
    boxedPtrFree :: VideoMasteringDisplayInfoCoordinates -> IO ()
boxedPtrFree = \VideoMasteringDisplayInfoCoordinates
x -> VideoMasteringDisplayInfoCoordinates
-> (Ptr VideoMasteringDisplayInfoCoordinates -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
SP.withManagedPtr VideoMasteringDisplayInfoCoordinates
x Ptr VideoMasteringDisplayInfoCoordinates -> IO ()
forall a. Ptr a -> IO ()
SP.freeMem
instance CallocPtr VideoMasteringDisplayInfoCoordinates where
    boxedPtrCalloc :: IO (Ptr VideoMasteringDisplayInfoCoordinates)
boxedPtrCalloc = Int -> IO (Ptr VideoMasteringDisplayInfoCoordinates)
forall a. Int -> IO (Ptr a)
callocBytes Int
4


-- | Construct a `VideoMasteringDisplayInfoCoordinates` struct initialized to zero.
newZeroVideoMasteringDisplayInfoCoordinates :: MonadIO m => m VideoMasteringDisplayInfoCoordinates
newZeroVideoMasteringDisplayInfoCoordinates :: forall (m :: * -> *).
MonadIO m =>
m VideoMasteringDisplayInfoCoordinates
newZeroVideoMasteringDisplayInfoCoordinates = IO VideoMasteringDisplayInfoCoordinates
-> m VideoMasteringDisplayInfoCoordinates
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO VideoMasteringDisplayInfoCoordinates
 -> m VideoMasteringDisplayInfoCoordinates)
-> IO VideoMasteringDisplayInfoCoordinates
-> m VideoMasteringDisplayInfoCoordinates
forall a b. (a -> b) -> a -> b
$ IO (Ptr VideoMasteringDisplayInfoCoordinates)
forall a. CallocPtr a => IO (Ptr a)
boxedPtrCalloc IO (Ptr VideoMasteringDisplayInfoCoordinates)
-> (Ptr VideoMasteringDisplayInfoCoordinates
    -> IO VideoMasteringDisplayInfoCoordinates)
-> IO VideoMasteringDisplayInfoCoordinates
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (ManagedPtr VideoMasteringDisplayInfoCoordinates
 -> VideoMasteringDisplayInfoCoordinates)
-> Ptr VideoMasteringDisplayInfoCoordinates
-> IO VideoMasteringDisplayInfoCoordinates
forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr VideoMasteringDisplayInfoCoordinates
-> VideoMasteringDisplayInfoCoordinates
VideoMasteringDisplayInfoCoordinates

instance tag ~ 'AttrSet => Constructible VideoMasteringDisplayInfoCoordinates tag where
    new :: forall (m :: * -> *).
MonadIO m =>
(ManagedPtr VideoMasteringDisplayInfoCoordinates
 -> VideoMasteringDisplayInfoCoordinates)
-> [AttrOp VideoMasteringDisplayInfoCoordinates tag]
-> m VideoMasteringDisplayInfoCoordinates
new ManagedPtr VideoMasteringDisplayInfoCoordinates
-> VideoMasteringDisplayInfoCoordinates
_ [AttrOp VideoMasteringDisplayInfoCoordinates tag]
attrs = do
        VideoMasteringDisplayInfoCoordinates
o <- m VideoMasteringDisplayInfoCoordinates
forall (m :: * -> *).
MonadIO m =>
m VideoMasteringDisplayInfoCoordinates
newZeroVideoMasteringDisplayInfoCoordinates
        VideoMasteringDisplayInfoCoordinates
-> [AttrOp VideoMasteringDisplayInfoCoordinates 'AttrSet] -> m ()
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set VideoMasteringDisplayInfoCoordinates
o [AttrOp VideoMasteringDisplayInfoCoordinates tag]
[AttrOp VideoMasteringDisplayInfoCoordinates 'AttrSet]
attrs
        VideoMasteringDisplayInfoCoordinates
-> m VideoMasteringDisplayInfoCoordinates
forall a. a -> m a
forall (m :: * -> *) a. Monad m => a -> m a
return VideoMasteringDisplayInfoCoordinates
o


-- | Get the value of the “@x@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' videoMasteringDisplayInfoCoordinates #x
-- @
getVideoMasteringDisplayInfoCoordinatesX :: MonadIO m => VideoMasteringDisplayInfoCoordinates -> m Word16
getVideoMasteringDisplayInfoCoordinatesX :: forall (m :: * -> *).
MonadIO m =>
VideoMasteringDisplayInfoCoordinates -> m Word16
getVideoMasteringDisplayInfoCoordinatesX VideoMasteringDisplayInfoCoordinates
s = IO Word16 -> m Word16
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word16 -> m Word16) -> IO Word16 -> m Word16
forall a b. (a -> b) -> a -> b
$ VideoMasteringDisplayInfoCoordinates
-> (Ptr VideoMasteringDisplayInfoCoordinates -> IO Word16)
-> IO Word16
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoMasteringDisplayInfoCoordinates
s ((Ptr VideoMasteringDisplayInfoCoordinates -> IO Word16)
 -> IO Word16)
-> (Ptr VideoMasteringDisplayInfoCoordinates -> IO Word16)
-> IO Word16
forall a b. (a -> b) -> a -> b
$ \Ptr VideoMasteringDisplayInfoCoordinates
ptr -> do
    Word16
val <- Ptr Word16 -> IO Word16
forall a. Storable a => Ptr a -> IO a
peek (Ptr VideoMasteringDisplayInfoCoordinates
ptr Ptr VideoMasteringDisplayInfoCoordinates -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) :: IO Word16
    Word16 -> IO Word16
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word16
val

-- | Set the value of the “@x@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' videoMasteringDisplayInfoCoordinates [ #x 'Data.GI.Base.Attributes.:=' value ]
-- @
setVideoMasteringDisplayInfoCoordinatesX :: MonadIO m => VideoMasteringDisplayInfoCoordinates -> Word16 -> m ()
setVideoMasteringDisplayInfoCoordinatesX :: forall (m :: * -> *).
MonadIO m =>
VideoMasteringDisplayInfoCoordinates -> Word16 -> m ()
setVideoMasteringDisplayInfoCoordinatesX VideoMasteringDisplayInfoCoordinates
s Word16
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ VideoMasteringDisplayInfoCoordinates
-> (Ptr VideoMasteringDisplayInfoCoordinates -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoMasteringDisplayInfoCoordinates
s ((Ptr VideoMasteringDisplayInfoCoordinates -> IO ()) -> IO ())
-> (Ptr VideoMasteringDisplayInfoCoordinates -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr VideoMasteringDisplayInfoCoordinates
ptr -> do
    Ptr Word16 -> Word16 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr VideoMasteringDisplayInfoCoordinates
ptr Ptr VideoMasteringDisplayInfoCoordinates -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) (Word16
val :: Word16)

#if defined(ENABLE_OVERLOADING)
data VideoMasteringDisplayInfoCoordinatesXFieldInfo
instance AttrInfo VideoMasteringDisplayInfoCoordinatesXFieldInfo where
    type AttrBaseTypeConstraint VideoMasteringDisplayInfoCoordinatesXFieldInfo = (~) VideoMasteringDisplayInfoCoordinates
    type AttrAllowedOps VideoMasteringDisplayInfoCoordinatesXFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint VideoMasteringDisplayInfoCoordinatesXFieldInfo = (~) Word16
    type AttrTransferTypeConstraint VideoMasteringDisplayInfoCoordinatesXFieldInfo = (~)Word16
    type AttrTransferType VideoMasteringDisplayInfoCoordinatesXFieldInfo = Word16
    type AttrGetType VideoMasteringDisplayInfoCoordinatesXFieldInfo = Word16
    type AttrLabel VideoMasteringDisplayInfoCoordinatesXFieldInfo = "x"
    type AttrOrigin VideoMasteringDisplayInfoCoordinatesXFieldInfo = VideoMasteringDisplayInfoCoordinates
    attrGet = getVideoMasteringDisplayInfoCoordinatesX
    attrSet = setVideoMasteringDisplayInfoCoordinatesX
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstVideo.Structs.VideoMasteringDisplayInfoCoordinates.x"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Structs-VideoMasteringDisplayInfoCoordinates.html#g:attr:x"
        })

videoMasteringDisplayInfoCoordinates_x :: AttrLabelProxy "x"
videoMasteringDisplayInfoCoordinates_x = AttrLabelProxy

#endif


-- | Get the value of the “@y@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' videoMasteringDisplayInfoCoordinates #y
-- @
getVideoMasteringDisplayInfoCoordinatesY :: MonadIO m => VideoMasteringDisplayInfoCoordinates -> m Word16
getVideoMasteringDisplayInfoCoordinatesY :: forall (m :: * -> *).
MonadIO m =>
VideoMasteringDisplayInfoCoordinates -> m Word16
getVideoMasteringDisplayInfoCoordinatesY VideoMasteringDisplayInfoCoordinates
s = IO Word16 -> m Word16
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word16 -> m Word16) -> IO Word16 -> m Word16
forall a b. (a -> b) -> a -> b
$ VideoMasteringDisplayInfoCoordinates
-> (Ptr VideoMasteringDisplayInfoCoordinates -> IO Word16)
-> IO Word16
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoMasteringDisplayInfoCoordinates
s ((Ptr VideoMasteringDisplayInfoCoordinates -> IO Word16)
 -> IO Word16)
-> (Ptr VideoMasteringDisplayInfoCoordinates -> IO Word16)
-> IO Word16
forall a b. (a -> b) -> a -> b
$ \Ptr VideoMasteringDisplayInfoCoordinates
ptr -> do
    Word16
val <- Ptr Word16 -> IO Word16
forall a. Storable a => Ptr a -> IO a
peek (Ptr VideoMasteringDisplayInfoCoordinates
ptr Ptr VideoMasteringDisplayInfoCoordinates -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
2) :: IO Word16
    Word16 -> IO Word16
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word16
val

-- | Set the value of the “@y@” field.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' videoMasteringDisplayInfoCoordinates [ #y 'Data.GI.Base.Attributes.:=' value ]
-- @
setVideoMasteringDisplayInfoCoordinatesY :: MonadIO m => VideoMasteringDisplayInfoCoordinates -> Word16 -> m ()
setVideoMasteringDisplayInfoCoordinatesY :: forall (m :: * -> *).
MonadIO m =>
VideoMasteringDisplayInfoCoordinates -> Word16 -> m ()
setVideoMasteringDisplayInfoCoordinatesY VideoMasteringDisplayInfoCoordinates
s Word16
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ VideoMasteringDisplayInfoCoordinates
-> (Ptr VideoMasteringDisplayInfoCoordinates -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr VideoMasteringDisplayInfoCoordinates
s ((Ptr VideoMasteringDisplayInfoCoordinates -> IO ()) -> IO ())
-> (Ptr VideoMasteringDisplayInfoCoordinates -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr VideoMasteringDisplayInfoCoordinates
ptr -> do
    Ptr Word16 -> Word16 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr VideoMasteringDisplayInfoCoordinates
ptr Ptr VideoMasteringDisplayInfoCoordinates -> Int -> Ptr Word16
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
2) (Word16
val :: Word16)

#if defined(ENABLE_OVERLOADING)
data VideoMasteringDisplayInfoCoordinatesYFieldInfo
instance AttrInfo VideoMasteringDisplayInfoCoordinatesYFieldInfo where
    type AttrBaseTypeConstraint VideoMasteringDisplayInfoCoordinatesYFieldInfo = (~) VideoMasteringDisplayInfoCoordinates
    type AttrAllowedOps VideoMasteringDisplayInfoCoordinatesYFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint VideoMasteringDisplayInfoCoordinatesYFieldInfo = (~) Word16
    type AttrTransferTypeConstraint VideoMasteringDisplayInfoCoordinatesYFieldInfo = (~)Word16
    type AttrTransferType VideoMasteringDisplayInfoCoordinatesYFieldInfo = Word16
    type AttrGetType VideoMasteringDisplayInfoCoordinatesYFieldInfo = Word16
    type AttrLabel VideoMasteringDisplayInfoCoordinatesYFieldInfo = "y"
    type AttrOrigin VideoMasteringDisplayInfoCoordinatesYFieldInfo = VideoMasteringDisplayInfoCoordinates
    attrGet = getVideoMasteringDisplayInfoCoordinatesY
    attrSet = setVideoMasteringDisplayInfoCoordinatesY
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer _ v = do
        return v
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GstVideo.Structs.VideoMasteringDisplayInfoCoordinates.y"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gstvideo-1.0.28/docs/GI-GstVideo-Structs-VideoMasteringDisplayInfoCoordinates.html#g:attr:y"
        })

videoMasteringDisplayInfoCoordinates_y :: AttrLabelProxy "y"
videoMasteringDisplayInfoCoordinates_y = AttrLabelProxy

#endif



#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList VideoMasteringDisplayInfoCoordinates
type instance O.AttributeList VideoMasteringDisplayInfoCoordinates = VideoMasteringDisplayInfoCoordinatesAttributeList
type VideoMasteringDisplayInfoCoordinatesAttributeList = ('[ '("x", VideoMasteringDisplayInfoCoordinatesXFieldInfo), '("y", VideoMasteringDisplayInfoCoordinatesYFieldInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
type family ResolveVideoMasteringDisplayInfoCoordinatesMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveVideoMasteringDisplayInfoCoordinatesMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveVideoMasteringDisplayInfoCoordinatesMethod t VideoMasteringDisplayInfoCoordinates, O.OverloadedMethod info VideoMasteringDisplayInfoCoordinates p) => OL.IsLabel t (VideoMasteringDisplayInfoCoordinates -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveVideoMasteringDisplayInfoCoordinatesMethod t VideoMasteringDisplayInfoCoordinates, O.OverloadedMethod info VideoMasteringDisplayInfoCoordinates p, R.HasField t VideoMasteringDisplayInfoCoordinates p) => R.HasField t VideoMasteringDisplayInfoCoordinates p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveVideoMasteringDisplayInfoCoordinatesMethod t VideoMasteringDisplayInfoCoordinates, O.OverloadedMethodInfo info VideoMasteringDisplayInfoCoordinates) => OL.IsLabel t (O.MethodProxy info VideoMasteringDisplayInfoCoordinates) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif