{-# LINE 1 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
{-# LANGUAGE CPP                      #-}
{-# LINE 2 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}

module Graphics.ImageMagick.MagickCore.Types.FFI.Quantize where

import           Graphics.ImageMagick.MagickCore.Types (ColorspaceType, DitherMethod)
import           Graphics.ImageMagick.MagickWand.FFI.Types (MagickBooleanType)
import           Foreign.C.Types (CSize)
import           Foreign.Storable


{-# LINE 13 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}

data QuantizeInfo = QuantizeInfo { numberOfColors :: CSize
                                 , treeDepth :: CSize
                                 , shouldDither :: MagickBooleanType
                                 , colorspace :: ColorspaceType
                                 , measureError :: MagickBooleanType
                                 , signature :: CSize
                                 , ditherMethod :: DitherMethod
                                 }
  deriving (Eq, Show)

instance Storable QuantizeInfo where
  sizeOf      _ = ((48))
{-# LINE 26 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
  alignment   _ = alignment (undefined :: CSize)
  peek ptr      = do
    numberOfColors' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr
{-# LINE 29 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
    treeDepth'      <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr
{-# LINE 30 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
    shouldDither'   <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr
{-# LINE 31 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
    colorspace'     <- ((\hsc_ptr -> peekByteOff hsc_ptr 20)) ptr
{-# LINE 32 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
    measureError'   <- ((\hsc_ptr -> peekByteOff hsc_ptr 24)) ptr
{-# LINE 33 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
    signature'      <- ((\hsc_ptr -> peekByteOff hsc_ptr 32)) ptr
{-# LINE 34 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
    ditherMethod'   <- ((\hsc_ptr -> peekByteOff hsc_ptr 40)) ptr
{-# LINE 35 "src/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc" #-}
    return QuantizeInfo { numberOfColors = numberOfColors'
                        , treeDepth      = treeDepth'
                        , shouldDither   = shouldDither'
                        , colorspace     = colorspace'
                        , measureError   = measureError'
                        , signature      = signature'
                        , ditherMethod   = ditherMethod'
                        }
  poke = error "not yet implemented"