packages feed

HGamer3D-SFML-Binding 0.1.6 → 0.1.7

raw patch · 50 files changed

+1989/−1144 lines, 50 filesdep ~HGamer3D-Data

Dependency ranges changed: HGamer3D-Data

Files

HGamer3D-SFML-Binding.cabal view
@@ -1,5 +1,5 @@ Name:                HGamer3D-SFML-Binding
-Version:             0.1.6
+Version:             0.1.7
 Synopsis:            Library to enable 3D game development for Haskell - SFML Bindings
 Description:         
    Library, to enable 3D game development for Haskell,
@@ -25,9 +25,9 @@ Extra-source-files:  Setup.hs, include/ClassJoystick.h, include/ClassKeyboard.h, include/ClassListener.h, include/ClassMouse.h, include/ClassMouseHG3D.h, include/ClassMusic.h, include/ClassPtr.h, include/ClassSound.h, include/ClassSoundBuffer.h, include/ClassSoundSource.h, include/ClassSoundStream.h, include/EnumJoystickAxis.h, include/EnumKey.h, include/EnumMouseButton.h, include/EnumSoundSourceStatus.h, include/SFMLDllDefines.h, include/StructHG3DClass.h
 
 Library
-  Build-Depends:     base >= 3 && < 5, HGamer3D-Data == 0.1.5
+  Build-Depends:     base >= 3 && < 5, HGamer3D-Data >= 0.1.7
 
-  Exposed-modules:   HGamer3D.Bindings.SFML.ClassPtr, HGamer3D.Bindings.SFML.StructHG3DClass, HGamer3D.Bindings.SFML.Utils, HGamer3D.Bindings.SFML.ClassJoystick, HGamer3D.Bindings.SFML.ClassKeyboard, HGamer3D.Bindings.SFML.ClassListener, HGamer3D.Bindings.SFML.ClassMouse, HGamer3D.Bindings.SFML.ClassMouseHG3D, HGamer3D.Bindings.SFML.ClassMusic, HGamer3D.Bindings.SFML.ClassSound, HGamer3D.Bindings.SFML.ClassSoundBuffer, HGamer3D.Bindings.SFML.ClassSoundSource, HGamer3D.Bindings.SFML.ClassSoundStream, HGamer3D.Bindings.SFML.EnumJoystickAxis, HGamer3D.Bindings.SFML.EnumKey, HGamer3D.Bindings.SFML.EnumMouseButton, HGamer3D.Bindings.SFML.EnumSoundSourceStatus
+  Exposed-modules:   HGamer3D.Bindings.SFML.ClassPtr, HGamer3D.Bindings.SFML.StructHG3DClass, HGamer3D.Bindings.SFML.Utils, HGamer3D.Bindings.SFML.EnumJoystickAxis, HGamer3D.Bindings.SFML.EnumKey, HGamer3D.Bindings.SFML.EnumMouseButton, HGamer3D.Bindings.SFML.EnumSoundSourceStatus, HGamer3D.Bindings.SFML.ClassJoystick, HGamer3D.Bindings.SFML.ClassKeyboard, HGamer3D.Bindings.SFML.ClassListener, HGamer3D.Bindings.SFML.ClassMouse, HGamer3D.Bindings.SFML.ClassMouseHG3D, HGamer3D.Bindings.SFML.ClassMusic, HGamer3D.Bindings.SFML.ClassSound, HGamer3D.Bindings.SFML.ClassSoundBuffer, HGamer3D.Bindings.SFML.ClassSoundSource, HGamer3D.Bindings.SFML.ClassSoundStream
   Other-modules:     C2HS 
 
   ghc-options:       
@@ -36,4 +36,4 @@   Include-dirs:      include
   Build-tools:       
   build-depends:     haskell98
-  extra-libraries:   HGamer3DSFML016
+  extra-libraries:   
− HGamer3D/Bindings/SFML/ClassJoystick.chs
@@ -1,82 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassJoystick.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassJoystick where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-import HGamer3D.Bindings.SFML.EnumJoystickAxis
-
-#include "ClassJoystick.h"
-{- function isConnected -}
-{#fun sfml_jst_isConnected as isConnected 
-{ fromIntegral `Int' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function getButtonCount -}
-{#fun sfml_jst_getButtonCount as getButtonCount 
-{ fromIntegral `Int' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
-{- function hasAxis -}
-{#fun sfml_jst_hasAxis as hasAxis 
-{ fromIntegral `Int' ,
- cIntFromEnum `EnumJoystickAxis' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function isButtonPressed -}
-{#fun sfml_jst_isButtonPressed as isButtonPressed 
-{ fromIntegral `Int' ,
- fromIntegral `Int' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function getAxisPosition -}
-{#fun sfml_jst_getAxisPosition as getAxisPosition 
-{ fromIntegral `Int' ,
- cIntFromEnum `EnumJoystickAxis' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function update -}
-{#fun sfml_jst_update as update 
-{ } -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassJoystick.hs view
@@ -0,0 +1,146 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassJoystick.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassJoystick where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+import HGamer3D.Bindings.SFML.EnumJoystickAxis
+{-# LINE 45 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+
+-- | Check if a joystick is connected. 
+isConnected :: Int  -- ^ joystick - Index of the joystick to check
+  ->  IO (Bool)
+ -- ^ return value - True if the joystick is connected, false otherwise     
+isConnected a1 =
+  let {a1' = fromIntegral a1} in 
+  alloca $ \a2' -> 
+  isConnected'_ a1' a2' >>= \res ->
+  peekBoolUtil  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 51 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+
+-- | Return the number of buttons supported by a joystick.  - Details: If the joystick is not connected, this function returns 0.
+getButtonCount :: Int  -- ^ joystick
+  ->  IO (Int)
+ -- ^ 
+getButtonCount a1 =
+  let {a1' = fromIntegral a1} in 
+  alloca $ \a2' -> 
+  getButtonCount'_ a1' a2' >>= \res ->
+  peekIntConv  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 56 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+
+-- | Check if a joystick supports a given axis.  - Details: If the joystick is not connected, this function returns false.
+hasAxis :: Int  -- ^ joystick
+  ->  EnumJoystickAxis  -- ^ axis
+  ->  IO (Bool)
+ -- ^ 
+hasAxis a1 a2 =
+  let {a1' = fromIntegral a1} in 
+  let {a2' = cIntFromEnum a2} in 
+  alloca $ \a3' -> 
+  hasAxis'_ a1' a2' a3' >>= \res ->
+  peekBoolUtil  a3'>>= \a3'' -> 
+  return (a3'')
+{-# LINE 62 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+
+-- | Check if a joystick button is pressed.  - Details: If the joystick is not connected, this function returns false.
+isButtonPressed :: Int  -- ^ joystick
+  ->  Int  -- ^ button
+  ->  IO (Bool)
+ -- ^ 
+isButtonPressed a1 a2 =
+  let {a1' = fromIntegral a1} in 
+  let {a2' = fromIntegral a2} in 
+  alloca $ \a3' -> 
+  isButtonPressed'_ a1' a2' a3' >>= \res ->
+  peekBoolUtil  a3'>>= \a3'' -> 
+  return (a3'')
+{-# LINE 68 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+
+-- | Get the current position of a joystick axis.  - Details: If the joystick is not connected, this function returns 0.
+getAxisPosition :: Int  -- ^ joystick
+  ->  EnumJoystickAxis  -- ^ axis
+  ->  IO (Float)
+ -- ^ 
+getAxisPosition a1 a2 =
+  let {a1' = fromIntegral a1} in 
+  let {a2' = cIntFromEnum a2} in 
+  alloca $ \a3' -> 
+  getAxisPosition'_ a1' a2' a3' >>= \res ->
+  peekFloatConv  a3'>>= \a3'' -> 
+  return (a3'')
+{-# LINE 74 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+
+-- | Update the states of all joysticks.  - Details: This function is used internally by SFML, so you normally don't have to call it explicitely. However, you may need to call it if you have no window yet (or no window at all): in this case the joysticks states are not updated automatically. 
+update :: IO ()
+ -- ^ 
+update =
+  update'_ >>= \res ->
+  return ()
+{-# LINE 78 ".\\HGamer3D\\Bindings\\SFML\\ClassJoystick.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassJoystick.chs.h sfml_jst_isConnected"
+  isConnected'_ :: (CUInt -> ((Ptr CInt) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassJoystick.chs.h sfml_jst_getButtonCount"
+  getButtonCount'_ :: (CUInt -> ((Ptr CUInt) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassJoystick.chs.h sfml_jst_hasAxis"
+  hasAxis'_ :: (CUInt -> (CInt -> ((Ptr CInt) -> (IO ()))))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassJoystick.chs.h sfml_jst_isButtonPressed"
+  isButtonPressed'_ :: (CUInt -> (CUInt -> ((Ptr CInt) -> (IO ()))))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassJoystick.chs.h sfml_jst_getAxisPosition"
+  getAxisPosition'_ :: (CUInt -> (CInt -> ((Ptr CFloat) -> (IO ()))))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassJoystick.chs.h sfml_jst_update"
+  update'_ :: (IO ())
− HGamer3D/Bindings/SFML/ClassKeyboard.chs
@@ -1,55 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassKeyboard.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassKeyboard where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-import HGamer3D.Bindings.SFML.EnumKey
-
-#include "ClassKeyboard.h"
-{- function isKeyPressed -}
-{#fun sfml_kbd_isKeyPressed as isKeyPressed 
-{ cIntFromEnum `EnumKey' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassKeyboard.hs view
@@ -0,0 +1,69 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassKeyboard.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassKeyboard.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassKeyboard where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassKeyboard.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassKeyboard.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassKeyboard.chs" #-}
+import HGamer3D.Bindings.SFML.EnumKey
+{-# LINE 45 ".\\HGamer3D\\Bindings\\SFML\\ClassKeyboard.chs" #-}
+
+-- | Check if a key is pressed. 
+isKeyPressed :: EnumKey  -- ^ key - Key to check
+  ->  IO (Bool)
+ -- ^ return value - True if the key is pressed, false otherwise     
+isKeyPressed a1 =
+  let {a1' = cIntFromEnum a1} in 
+  alloca $ \a2' -> 
+  isKeyPressed'_ a1' a2' >>= \res ->
+  peekBoolUtil  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 51 ".\\HGamer3D\\Bindings\\SFML\\ClassKeyboard.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassKeyboard.chs.h sfml_kbd_isKeyPressed"
+  isKeyPressed'_ :: (CInt -> ((Ptr CInt) -> (IO ())))
− HGamer3D/Bindings/SFML/ClassListener.chs
@@ -1,69 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassListener.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassListener where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassListener.h"
-{- function setGlobalVolume -}
-{#fun sfml_lst_setGlobalVolume as setGlobalVolume 
-{ realToFrac `Float' } -> `()'  #}
-
-{- function getGlobalVolume -}
-{#fun sfml_lst_getGlobalVolume as getGlobalVolume 
-{ alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function setPosition -}
-{#fun sfml_lst_setPosition as setPosition 
-{ realToFrac `Float' ,
- realToFrac `Float' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setDirection -}
-{#fun sfml_lst_setDirection as setDirection 
-{ realToFrac `Float' ,
- realToFrac `Float' ,
- realToFrac `Float' } -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassListener.hs view
@@ -0,0 +1,112 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassListener.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassListener.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassListener where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassListener.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassListener.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassListener.chs" #-}
+
+-- | Change the global volume of all the sounds and musics.  - Details: The volume is a number between 0 and 100; it is combined with the individual volume of each sound / music. The default value for the volume is 100 (maximum).
+setGlobalVolume :: Float  -- ^ volume
+  ->  IO ()
+ -- ^ 
+setGlobalVolume a1 =
+  let {a1' = realToFrac a1} in 
+  setGlobalVolume'_ a1' >>= \res ->
+  return ()
+{-# LINE 49 ".\\HGamer3D\\Bindings\\SFML\\ClassListener.chs" #-}
+
+-- | Get the current value of the global volume.  - Details: setGlobalVolume
+getGlobalVolume :: IO (Float)
+ -- ^ return value - Current global volume, in the range [0, 100]    
+getGlobalVolume =
+  alloca $ \a1' -> 
+  getGlobalVolume'_ a1' >>= \res ->
+  peekFloatConv  a1'>>= \a1'' -> 
+  return (a1'')
+{-# LINE 53 ".\\HGamer3D\\Bindings\\SFML\\ClassListener.chs" #-}
+
+-- | Set the position of the listener in the scene.  - Details: The default listener's position is (0, 0, 0).
+setPosition :: Float  -- ^ x
+  ->  Float  -- ^ y
+  ->  Float  -- ^ z
+  ->  IO ()
+ -- ^ 
+setPosition a1 a2 a3 =
+  let {a1' = realToFrac a1} in 
+  let {a2' = realToFrac a2} in 
+  let {a3' = realToFrac a3} in 
+  setPosition'_ a1' a2' a3' >>= \res ->
+  return ()
+{-# LINE 59 ".\\HGamer3D\\Bindings\\SFML\\ClassListener.chs" #-}
+
+-- | Set the orientation of the listener in the scene.  - Details: The orientation defines the 3D axes of the listener (left, up, front) in the scene. The orientation vector doesn't have to be normalized. The default listener's orientation is (0, 0, -1).
+setDirection :: Float  -- ^ x
+  ->  Float  -- ^ y
+  ->  Float  -- ^ z
+  ->  IO ()
+ -- ^ 
+setDirection a1 a2 a3 =
+  let {a1' = realToFrac a1} in 
+  let {a2' = realToFrac a2} in 
+  let {a3' = realToFrac a3} in 
+  setDirection'_ a1' a2' a3' >>= \res ->
+  return ()
+{-# LINE 65 ".\\HGamer3D\\Bindings\\SFML\\ClassListener.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassListener.chs.h sfml_lst_setGlobalVolume"
+  setGlobalVolume'_ :: (CFloat -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassListener.chs.h sfml_lst_getGlobalVolume"
+  getGlobalVolume'_ :: ((Ptr CFloat) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassListener.chs.h sfml_lst_setPosition"
+  setPosition'_ :: (CFloat -> (CFloat -> (CFloat -> (IO ()))))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassListener.chs.h sfml_lst_setDirection"
+  setDirection'_ :: (CFloat -> (CFloat -> (CFloat -> (IO ()))))
− HGamer3D/Bindings/SFML/ClassMouse.chs
@@ -1,55 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassMouse.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassMouse where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-import HGamer3D.Bindings.SFML.EnumMouseButton
-
-#include "ClassMouse.h"
-{- function isButtonPressed -}
-{#fun sfml_mse_isButtonPressed as isButtonPressed 
-{ cIntFromEnum `EnumMouseButton' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassMouse.hs view
@@ -0,0 +1,69 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassMouse.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassMouse.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassMouse where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassMouse.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassMouse.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassMouse.chs" #-}
+import HGamer3D.Bindings.SFML.EnumMouseButton
+{-# LINE 45 ".\\HGamer3D\\Bindings\\SFML\\ClassMouse.chs" #-}
+
+-- | Check if a mouse button is pressed. 
+isButtonPressed :: EnumMouseButton  -- ^ button - Button to check
+  ->  IO (Bool)
+ -- ^ return value - True if the button is pressed, false otherwise     
+isButtonPressed a1 =
+  let {a1' = cIntFromEnum a1} in 
+  alloca $ \a2' -> 
+  isButtonPressed'_ a1' a2' >>= \res ->
+  peekBoolUtil  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 51 ".\\HGamer3D\\Bindings\\SFML\\ClassMouse.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassMouse.chs.h sfml_mse_isButtonPressed"
+  isButtonPressed'_ :: (CInt -> ((Ptr CInt) -> (IO ())))
− HGamer3D/Bindings/SFML/ClassMouseHG3D.chs
@@ -1,54 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassMouseHG3D.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassMouseHG3D where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassMouseHG3D.h"
-{- function getPosition -}
-{#fun sfml_mshg_getPosition as getPosition 
-{ alloca- `Int' peekIntConv*,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassMouseHG3D.hs view
@@ -0,0 +1,67 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassMouseHG3D.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassMouseHG3D.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassMouseHG3D where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassMouseHG3D.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassMouseHG3D.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassMouseHG3D.chs" #-}
+
+-- | 
+getPosition :: IO (Int, Int)
+ -- ^ x
+getPosition =
+  alloca $ \a1' -> 
+  alloca $ \a2' -> 
+  getPosition'_ a1' a2' >>= \res ->
+  peekIntConv  a1'>>= \a1'' -> 
+  peekIntConv  a2'>>= \a2'' -> 
+  return (a1'', a2'')
+{-# LINE 50 ".\\HGamer3D\\Bindings\\SFML\\ClassMouseHG3D.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassMouseHG3D.chs.h sfml_mshg_getPosition"
+  getPosition'_ :: ((Ptr CInt) -> ((Ptr CInt) -> (IO ())))
− HGamer3D/Bindings/SFML/ClassMusic.chs
@@ -1,63 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassMusic.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassMusic where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassMusic.h"
-{- function Music -}
-{#fun sfml_msc_construct as new 
-{ alloca- `HG3DClass' peek*} -> `()'  #}
-
-{- function ~Music -}
-{#fun sfml_msc_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function openFromFile -}
-{#fun sfml_msc_openFromFile as openFromFile 
-{ withHG3DClass* `HG3DClass' ,
- withCString* `String' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassMusic.hs view
@@ -0,0 +1,95 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassMusic.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassMusic.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassMusic where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassMusic.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassMusic.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassMusic.chs" #-}
+
+-- | Default constructor. 
+new :: IO (HG3DClass)
+ -- ^ 
+new =
+  alloca $ \a1' -> 
+  new'_ a1' >>= \res ->
+  peek  a1'>>= \a1'' -> 
+  return (a1'')
+{-# LINE 49 ".\\HGamer3D\\Bindings\\SFML\\ClassMusic.chs" #-}
+
+-- | Destructor. 
+delete :: HG3DClass  -- ^ classpointer - pointer of Class instance which is going to be deleted.
+  ->  IO ()
+ -- ^ 
+delete a1 =
+  withHG3DClass a1 $ \a1' -> 
+  delete'_ a1' >>= \res ->
+  return ()
+{-# LINE 53 ".\\HGamer3D\\Bindings\\SFML\\ClassMusic.chs" #-}
+
+-- | Open a music from an audio file.  - Details: This function doesn't start playing the music (call play()
+openFromFile :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  String  -- ^ filename
+  ->  IO (Bool)
+ -- ^ 
+openFromFile a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  withCString a2 $ \a2' -> 
+  alloca $ \a3' -> 
+  openFromFile'_ a1' a2' a3' >>= \res ->
+  peekBoolUtil  a3'>>= \a3'' -> 
+  return (a3'')
+{-# LINE 59 ".\\HGamer3D\\Bindings\\SFML\\ClassMusic.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassMusic.chs.h sfml_msc_construct"
+  new'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassMusic.chs.h sfml_msc_destruct"
+  delete'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassMusic.chs.h sfml_msc_openFromFile"
+  openFromFile'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((Ptr CInt) -> (IO ()))))
− HGamer3D/Bindings/SFML/ClassPtr.chs
@@ -1,66 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassPtr.chs
-
--- Class Ptr Utilities
-
-module HGamer3D.Bindings.SFML.ClassPtr where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "ClassPtr.h"
-{- class ClassMouseHG3D -}
-{#pointer *ClassMouseHG3D as ClassMouseHG3D#}
-{- class ClassJoystick -}
-{#pointer *ClassJoystick as ClassJoystick#}
-{- class ClassKeyboard -}
-{#pointer *ClassKeyboard as ClassKeyboard#}
-{- class ClassListener -}
-{#pointer *ClassListener as ClassListener#}
-{- class ClassMouse -}
-{#pointer *ClassMouse as ClassMouse#}
-{- class ClassMusic -}
-{#pointer *ClassMusic as ClassMusic#}
-{- class ClassSound -}
-{#pointer *ClassSound as ClassSound#}
-{- class ClassSoundBuffer -}
-{#pointer *ClassSoundBuffer as ClassSoundBuffer#}
-{- class ClassSoundSource -}
-{#pointer *ClassSoundSource as ClassSoundSource#}
-{- class ClassSoundStream -}
-{#pointer *ClassSoundStream as ClassSoundStream#}
+ HGamer3D/Bindings/SFML/ClassPtr.hs view
@@ -0,0 +1,76 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassPtr.chs
+
+-- Class Ptr Utilities
+
+module HGamer3D.Bindings.SFML.ClassPtr where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+
+{- class ClassMouseHG3D -}
+type ClassMouseHG3D = Ptr (())
+{-# LINE 45 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
+{- class ClassJoystick -}
+type ClassJoystick = Ptr (())
+{-# LINE 47 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
+{- class ClassKeyboard -}
+type ClassKeyboard = Ptr (())
+{-# LINE 49 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
+{- class ClassListener -}
+type ClassListener = Ptr (())
+{-# LINE 51 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
+{- class ClassMouse -}
+type ClassMouse = Ptr (())
+{-# LINE 53 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
+{- class ClassMusic -}
+type ClassMusic = Ptr (())
+{-# LINE 55 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
+{- class ClassSound -}
+type ClassSound = Ptr (())
+{-# LINE 57 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
+{- class ClassSoundBuffer -}
+type ClassSoundBuffer = Ptr (())
+{-# LINE 59 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
+{- class ClassSoundSource -}
+type ClassSoundSource = Ptr (())
+{-# LINE 61 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
+{- class ClassSoundStream -}
+type ClassSoundStream = Ptr (())
+{-# LINE 63 ".\\HGamer3D\\Bindings\\SFML\\ClassPtr.chs" #-}
− HGamer3D/Bindings/SFML/ClassSound.chs
@@ -1,88 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassSound.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassSound where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassSound.h"
-{- function Sound -}
-{#fun sfml_snd_construct as new 
-{ alloca- `HG3DClass' peek*} -> `()'  #}
-
-{- function ~Sound -}
-{#fun sfml_snd_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function play -}
-{#fun sfml_snd_play as play 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function pause -}
-{#fun sfml_snd_pause as pause 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function stop -}
-{#fun sfml_snd_stop as stop 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function setBuffer -}
-{#fun sfml_snd_setBuffer as setBuffer 
-{ withHG3DClass* `HG3DClass' ,
- withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function setLoop -}
-{#fun sfml_snd_setLoop as setLoop 
-{ withHG3DClass* `HG3DClass' ,
- fromBool `Bool' } -> `()'  #}
-
-{- function getLoop -}
-{#fun sfml_snd_getLoop as getLoop 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function resetBuffer -}
-{#fun sfml_snd_resetBuffer as resetBuffer 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassSound.hs view
@@ -0,0 +1,175 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassSound.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassSound where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+-- | Default constructor. 
+new :: IO (HG3DClass)
+ -- ^ 
+new =
+  alloca $ \a1' -> 
+  new'_ a1' >>= \res ->
+  peek  a1'>>= \a1'' -> 
+  return (a1'')
+{-# LINE 49 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+-- | Destructor. 
+delete :: HG3DClass  -- ^ classpointer - pointer of Class instance which is going to be deleted.
+  ->  IO ()
+ -- ^ 
+delete a1 =
+  withHG3DClass a1 $ \a1' -> 
+  delete'_ a1' >>= \res ->
+  return ()
+{-# LINE 53 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+-- | Start or resume playing the sound.  - Details: This function starts the stream if it was stopped, resumes it if it was paused, and restarts it from beginning if it was it already playing. This function uses its own thread so that it doesn't block the rest of the program while the sound is played.
+play :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO ()
+ -- ^ 
+play a1 =
+  withHG3DClass a1 $ \a1' -> 
+  play'_ a1' >>= \res ->
+  return ()
+{-# LINE 57 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+-- | Pause the sound.  - Details: This function pauses the sound if it was playing, otherwise (sound already paused or stopped) it has no effect.
+pause :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO ()
+ -- ^ 
+pause a1 =
+  withHG3DClass a1 $ \a1' -> 
+  pause'_ a1' >>= \res ->
+  return ()
+{-# LINE 61 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+-- | Stop playing the sound.  - Details: This function stops the sound if it was playing or paused, and does nothing if it was already stopped. It also resets the playing position (unlike pause()
+stop :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO ()
+ -- ^ 
+stop a1 =
+  withHG3DClass a1 $ \a1' -> 
+  stop'_ a1' >>= \res ->
+  return ()
+{-# LINE 65 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+-- | Set the source buffer containing the audio data to play.  - Details: It is important to note that the sound buffer is not copied, thus the sf::SoundBuffer
+setBuffer :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  HG3DClass  -- ^ buffer
+  ->  IO ()
+ -- ^ 
+setBuffer a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  withHG3DClass a2 $ \a2' -> 
+  setBuffer'_ a1' a2' >>= \res ->
+  return ()
+{-# LINE 70 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+-- | Set whether or not the sound should loop after reaching the end.  - Details: If set, the sound will restart from beginning after reaching the end and so on, until it is stopped or setLoop(false) is called. The default looping state for sound is false.
+setLoop :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  Bool  -- ^ loop
+  ->  IO ()
+ -- ^ 
+setLoop a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  let {a2' = fromBool a2} in 
+  setLoop'_ a1' a2' >>= \res ->
+  return ()
+{-# LINE 75 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+-- | Tell whether or not the sound is in loop mode.  - Details: setLoop
+getLoop :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Bool)
+ -- ^ return value - True if the sound is looping, false otherwise    
+getLoop a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getLoop'_ a1' a2' >>= \res ->
+  peekBoolUtil  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 80 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+-- | Reset the internal buffer of the sound.  - Details: This function is for internal use only, you don't have to use it. It is called by the sf::SoundBuffer
+resetBuffer :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO ()
+ -- ^ 
+resetBuffer a1 =
+  withHG3DClass a1 $ \a1' -> 
+  resetBuffer'_ a1' >>= \res ->
+  return ()
+{-# LINE 84 ".\\HGamer3D\\Bindings\\SFML\\ClassSound.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSound.chs.h sfml_snd_construct"
+  new'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSound.chs.h sfml_snd_destruct"
+  delete'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSound.chs.h sfml_snd_play"
+  play'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSound.chs.h sfml_snd_pause"
+  pause'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSound.chs.h sfml_snd_stop"
+  stop'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSound.chs.h sfml_snd_setBuffer"
+  setBuffer'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSound.chs.h sfml_snd_setLoop"
+  setLoop'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSound.chs.h sfml_snd_getLoop"
+  getLoop'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSound.chs.h sfml_snd_resetBuffer"
+  resetBuffer'_ :: ((HG3DClassPtr) -> (IO ()))
− HGamer3D/Bindings/SFML/ClassSoundBuffer.chs
@@ -1,79 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassSoundBuffer.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassSoundBuffer where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassSoundBuffer.h"
-{- function SoundBuffer -}
-{#fun sfml_snbf_construct as new 
-{ alloca- `HG3DClass' peek*} -> `()'  #}
-
-{- function ~SoundBuffer -}
-{#fun sfml_snbf_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function loadFromFile -}
-{#fun sfml_snbf_loadFromFile as loadFromFile 
-{ withHG3DClass* `HG3DClass' ,
- withCString* `String' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function saveToFile -}
-{#fun sfml_snbf_saveToFile as saveToFile 
-{ withHG3DClass* `HG3DClass' ,
- withCString* `String' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function getSampleRate -}
-{#fun sfml_snbf_getSampleRate as getSampleRate 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
-{- function getChannelCount -}
-{#fun sfml_snbf_getChannelCount as getChannelCount 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassSoundBuffer.hs view
@@ -0,0 +1,142 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassSoundBuffer.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassSoundBuffer where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}
+
+-- | Default constructor. 
+new :: IO (HG3DClass)
+ -- ^ 
+new =
+  alloca $ \a1' -> 
+  new'_ a1' >>= \res ->
+  peek  a1'>>= \a1'' -> 
+  return (a1'')
+{-# LINE 49 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}
+
+-- | Destructor. 
+delete :: HG3DClass  -- ^ classpointer - pointer of Class instance which is going to be deleted.
+  ->  IO ()
+ -- ^ 
+delete a1 =
+  withHG3DClass a1 $ \a1' -> 
+  delete'_ a1' >>= \res ->
+  return ()
+{-# LINE 53 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}
+
+-- | Load the sound buffer from a file.  - Details: Here is a complete list of all the supported audio formats: ogg, wav, flac, aiff, au, raw, paf, svx, nist, voc, ircam, w64, mat4, mat5 pvf, htk, sds, avr, sd2, caf, wve, mpc2k, rf64.
+loadFromFile :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  String  -- ^ filename
+  ->  IO (Bool)
+ -- ^ 
+loadFromFile a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  withCString a2 $ \a2' -> 
+  alloca $ \a3' -> 
+  loadFromFile'_ a1' a2' a3' >>= \res ->
+  peekBoolUtil  a3'>>= \a3'' -> 
+  return (a3'')
+{-# LINE 59 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}
+
+-- | Save the sound buffer to an audio file.  - Details: Here is a complete list of all the supported audio formats: ogg, wav, flac, aiff, au, raw, paf, svx, nist, voc, ircam, w64, mat4, mat5 pvf, htk, sds, avr, sd2, caf, wve, mpc2k, rf64.
+saveToFile :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  String  -- ^ filename
+  ->  IO (Bool)
+ -- ^ 
+saveToFile a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  withCString a2 $ \a2' -> 
+  alloca $ \a3' -> 
+  saveToFile'_ a1' a2' a3' >>= \res ->
+  peekBoolUtil  a3'>>= \a3'' -> 
+  return (a3'')
+{-# LINE 65 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}
+
+-- | Get the sample rate of the sound.  - Details: The sample rate is the number of samples played per second. The higher, the better the quality (for example, 44100 samples/s is CD quality).
+getSampleRate :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Int)
+ -- ^ 
+getSampleRate a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getSampleRate'_ a1' a2' >>= \res ->
+  peekIntConv  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 70 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}
+
+-- | Get the number of channels used by the sound.  - Details: If the sound is mono then the number of channels will be 1, 2 for stereo, etc.
+getChannelCount :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Int)
+ -- ^ 
+getChannelCount a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getChannelCount'_ a1' a2' >>= \res ->
+  peekIntConv  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 75 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs.h sfml_snbf_construct"
+  new'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs.h sfml_snbf_destruct"
+  delete'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs.h sfml_snbf_loadFromFile"
+  loadFromFile'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((Ptr CInt) -> (IO ()))))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs.h sfml_snbf_saveToFile"
+  saveToFile'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((Ptr CInt) -> (IO ()))))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs.h sfml_snbf_getSampleRate"
+  getSampleRate'_ :: ((HG3DClassPtr) -> ((Ptr CUInt) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundBuffer.chs.h sfml_snbf_getChannelCount"
+  getChannelCount'_ :: ((HG3DClassPtr) -> ((Ptr CUInt) -> (IO ())))
− HGamer3D/Bindings/SFML/ClassSoundSource.chs
@@ -1,110 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassSoundSource.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassSoundSource where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassSoundSource.h"
-{- function ~SoundSource -}
-{#fun sfml_snsr_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function setPitch -}
-{#fun sfml_snsr_setPitch as setPitch 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setVolume -}
-{#fun sfml_snsr_setVolume as setVolume 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setPosition -}
-{#fun sfml_snsr_setPosition as setPosition 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' ,
- realToFrac `Float' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setRelativeToListener -}
-{#fun sfml_snsr_setRelativeToListener as setRelativeToListener 
-{ withHG3DClass* `HG3DClass' ,
- fromBool `Bool' } -> `()'  #}
-
-{- function setMinDistance -}
-{#fun sfml_snsr_setMinDistance as setMinDistance 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setAttenuation -}
-{#fun sfml_snsr_setAttenuation as setAttenuation 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function getPitch -}
-{#fun sfml_snsr_getPitch as getPitch 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function getVolume -}
-{#fun sfml_snsr_getVolume as getVolume 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function isRelativeToListener -}
-{#fun sfml_snsr_isRelativeToListener as isRelativeToListener 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function getMinDistance -}
-{#fun sfml_snsr_getMinDistance as getMinDistance 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function getAttenuation -}
-{#fun sfml_snsr_getAttenuation as getAttenuation 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassSoundSource.hs view
@@ -0,0 +1,235 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassSoundSource.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassSoundSource where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Destructor. 
+delete :: HG3DClass  -- ^ classpointer - pointer of Class instance which is going to be deleted.
+  ->  IO ()
+ -- ^ 
+delete a1 =
+  withHG3DClass a1 $ \a1' -> 
+  delete'_ a1' >>= \res ->
+  return ()
+{-# LINE 49 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Set the pitch of the sound.  - Details: The pitch represents the perceived fundamental frequency of a sound; thus you can make a sound more acute or grave by changing its pitch. A side effect of changing the pitch is to modify the playing speed of the sound as well. The default value for the pitch is 1.
+setPitch :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  Float  -- ^ pitch
+  ->  IO ()
+ -- ^ 
+setPitch a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  let {a2' = realToFrac a2} in 
+  setPitch'_ a1' a2' >>= \res ->
+  return ()
+{-# LINE 54 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Set the volume of the sound.  - Details: The volume is a value between 0 (mute) and 100 (full volume). The default value for the volume is 100.
+setVolume :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  Float  -- ^ volume
+  ->  IO ()
+ -- ^ 
+setVolume a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  let {a2' = realToFrac a2} in 
+  setVolume'_ a1' a2' >>= \res ->
+  return ()
+{-# LINE 59 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Set the 3D position of the sound in the audio scene.  - Details: Only sounds with one channel (mono sounds) can be spatialized. The default position of a sound is (0, 0, 0).
+setPosition :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  Float  -- ^ x
+  ->  Float  -- ^ y
+  ->  Float  -- ^ z
+  ->  IO ()
+ -- ^ 
+setPosition a1 a2 a3 a4 =
+  withHG3DClass a1 $ \a1' -> 
+  let {a2' = realToFrac a2} in 
+  let {a3' = realToFrac a3} in 
+  let {a4' = realToFrac a4} in 
+  setPosition'_ a1' a2' a3' a4' >>= \res ->
+  return ()
+{-# LINE 66 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Make the sound's position relative to the listener or absolute.  - Details: Making a sound relative to the listener will ensure that it will always be played the same way regardless the position of the listener. This can be useful for non-spatialized sounds, sounds that are produced by the listener, or sounds attached to it. The default value is false (position is absolute).
+setRelativeToListener :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  Bool  -- ^ relative
+  ->  IO ()
+ -- ^ 
+setRelativeToListener a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  let {a2' = fromBool a2} in 
+  setRelativeToListener'_ a1' a2' >>= \res ->
+  return ()
+{-# LINE 71 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Set the minimum distance of the sound.  - Details: The "minimum distance" of a sound is the maximum distance at which it is heard at its maximum volume. Further than the minimum distance, it will start to fade out according to its attenuation factor. A value of 0 ("inside the head
+-- of the listener") is an invalid value and is forbidden. The default value of the minimum distance is 1.
+setMinDistance :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  Float  -- ^ distance
+  ->  IO ()
+ -- ^ 
+setMinDistance a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  let {a2' = realToFrac a2} in 
+  setMinDistance'_ a1' a2' >>= \res ->
+  return ()
+{-# LINE 76 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Set the attenuation factor of the sound.  - Details: The attenuation is a multiplicative factor which makes the sound more or less loud according to its distance from the listener. An attenuation of 0 will produce a non-attenuated sound, i.e. its volume will always be the same whether it is heard from near or from far. On the other hand, an attenuation value such as 100 will make the sound fade out very quickly as it gets further from the listener. The default value of the attenuation is 1.
+setAttenuation :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  Float  -- ^ attenuation
+  ->  IO ()
+ -- ^ 
+setAttenuation a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  let {a2' = realToFrac a2} in 
+  setAttenuation'_ a1' a2' >>= \res ->
+  return ()
+{-# LINE 81 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Get the pitch of the sound.  - Details: setPitch
+getPitch :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Float)
+ -- ^ return value - Pitch of the sound    
+getPitch a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getPitch'_ a1' a2' >>= \res ->
+  peekFloatConv  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 86 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Get the volume of the sound.  - Details: setVolume
+getVolume :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Float)
+ -- ^ return value - Volume of the sound, in the range [0, 100]    
+getVolume a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getVolume'_ a1' a2' >>= \res ->
+  peekFloatConv  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 91 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Tell whether the sound's position is relative to the listener or is absolute.  - Details: setRelativeToListener
+isRelativeToListener :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Bool)
+ -- ^ return value - True if the position is relative, false if it's absolute    
+isRelativeToListener a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  isRelativeToListener'_ a1' a2' >>= \res ->
+  peekBoolUtil  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 96 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Get the minimum distance of the sound.  - Details: setMinDistancegetAttenuation
+getMinDistance :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Float)
+ -- ^ return value - Minimum distance of the sound    
+getMinDistance a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getMinDistance'_ a1' a2' >>= \res ->
+  peekFloatConv  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 101 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+-- | Get the attenuation factor of the sound.  - Details: setAttenuationgetMinDistance
+getAttenuation :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Float)
+ -- ^ return value - Attenuation factor of the sound    
+getAttenuation a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getAttenuation'_ a1' a2' >>= \res ->
+  peekFloatConv  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 106 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_destruct"
+  delete'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_setPitch"
+  setPitch'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_setVolume"
+  setVolume'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_setPosition"
+  setPosition'_ :: ((HG3DClassPtr) -> (CFloat -> (CFloat -> (CFloat -> (IO ())))))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_setRelativeToListener"
+  setRelativeToListener'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_setMinDistance"
+  setMinDistance'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_setAttenuation"
+  setAttenuation'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_getPitch"
+  getPitch'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_getVolume"
+  getVolume'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_isRelativeToListener"
+  isRelativeToListener'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_getMinDistance"
+  getMinDistance'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundSource.chs.h sfml_snsr_getAttenuation"
+  getAttenuation'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))
− HGamer3D/Bindings/SFML/ClassSoundStream.chs
@@ -1,85 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- ClassSoundStream.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassSoundStream where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassSoundStream.h"
-{- function ~SoundStream -}
-{#fun sfml_snst_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function play -}
-{#fun sfml_snst_play as play 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function pause -}
-{#fun sfml_snst_pause as pause 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function stop -}
-{#fun sfml_snst_stop as stop 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function getChannelCount -}
-{#fun sfml_snst_getChannelCount as getChannelCount 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
-{- function getSampleRate -}
-{#fun sfml_snst_getSampleRate as getSampleRate 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
-{- function setLoop -}
-{#fun sfml_snst_setLoop as setLoop 
-{ withHG3DClass* `HG3DClass' ,
- fromBool `Bool' } -> `()'  #}
-
-{- function getLoop -}
-{#fun sfml_snst_getLoop as getLoop 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
+ HGamer3D/Bindings/SFML/ClassSoundStream.hs view
@@ -0,0 +1,164 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- ClassSoundStream.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.ClassSoundStream where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+import HGamer3D.Bindings.SFML.Utils
+{-# LINE 42 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+import HGamer3D.Bindings.SFML.ClassPtr
+{-# LINE 43 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+import HGamer3D.Bindings.SFML.StructHG3DClass
+{-# LINE 44 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+
+-- | Destructor. 
+delete :: HG3DClass  -- ^ classpointer - pointer of Class instance which is going to be deleted.
+  ->  IO ()
+ -- ^ 
+delete a1 =
+  withHG3DClass a1 $ \a1' -> 
+  delete'_ a1' >>= \res ->
+  return ()
+{-# LINE 49 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+
+-- | Start or resume playing the audio stream.  - Details: This function starts the stream if it was stopped, resumes it if it was paused, and restarts it from beginning if it was it already playing. This function uses its own thread so that it doesn't block the rest of the program while the stream is played.
+play :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO ()
+ -- ^ 
+play a1 =
+  withHG3DClass a1 $ \a1' -> 
+  play'_ a1' >>= \res ->
+  return ()
+{-# LINE 53 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+
+-- | Pause the audio stream.  - Details: This function pauses the stream if it was playing, otherwise (stream already paused or stopped) it has no effect.
+pause :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO ()
+ -- ^ 
+pause a1 =
+  withHG3DClass a1 $ \a1' -> 
+  pause'_ a1' >>= \res ->
+  return ()
+{-# LINE 57 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+
+-- | Stop playing the audio stream.  - Details: This function stops the stream if it was playing or paused, and does nothing if it was already stopped. It also resets the playing position (unlike pause()
+stop :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO ()
+ -- ^ 
+stop a1 =
+  withHG3DClass a1 $ \a1' -> 
+  stop'_ a1' >>= \res ->
+  return ()
+{-# LINE 61 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+
+-- | Return the number of channels of the stream.  - Details: 1 channel means a mono sound, 2 means stereo, etc.
+getChannelCount :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Int)
+ -- ^ 
+getChannelCount a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getChannelCount'_ a1' a2' >>= \res ->
+  peekIntConv  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 66 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+
+-- | Get the stream sample rate of the stream.  - Details: The sample rate is the number of audio samples played per second. The higher, the better the quality.
+getSampleRate :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Int)
+ -- ^ 
+getSampleRate a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getSampleRate'_ a1' a2' >>= \res ->
+  peekIntConv  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 71 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+
+-- | Set whether or not the stream should loop after reaching the end.  - Details: If set, the stream will restart from beginning after reaching the end and so on, until it is stopped or setLoop(false) is called. The default looping state for streams is false.
+setLoop :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  Bool  -- ^ loop
+  ->  IO ()
+ -- ^ 
+setLoop a1 a2 =
+  withHG3DClass a1 $ \a1' -> 
+  let {a2' = fromBool a2} in 
+  setLoop'_ a1' a2' >>= \res ->
+  return ()
+{-# LINE 76 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+
+-- | Tell whether or not the stream is in loop mode.  - Details: setLoop
+getLoop :: HG3DClass  -- ^ classpointer - pointer of Class instance from which this methods is called.
+  ->  IO (Bool)
+ -- ^ return value - True if the stream is looping, false otherwise    
+getLoop a1 =
+  withHG3DClass a1 $ \a1' -> 
+  alloca $ \a2' -> 
+  getLoop'_ a1' a2' >>= \res ->
+  peekBoolUtil  a2'>>= \a2'' -> 
+  return (a2'')
+{-# LINE 81 ".\\HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs" #-}
+
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs.h sfml_snst_destruct"
+  delete'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs.h sfml_snst_play"
+  play'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs.h sfml_snst_pause"
+  pause'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs.h sfml_snst_stop"
+  stop'_ :: ((HG3DClassPtr) -> (IO ()))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs.h sfml_snst_getChannelCount"
+  getChannelCount'_ :: ((HG3DClassPtr) -> ((Ptr CUInt) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs.h sfml_snst_getSampleRate"
+  getSampleRate'_ :: ((HG3DClassPtr) -> ((Ptr CUInt) -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs.h sfml_snst_setLoop"
+  setLoop'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))
+
+foreign import ccall safe "HGamer3D\\Bindings\\SFML\\ClassSoundStream.chs.h sfml_snst_getLoop"
+  getLoop'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))
− HGamer3D/Bindings/SFML/EnumJoystickAxis.chs
@@ -1,47 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- EnumJoystickAxis.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.EnumJoystickAxis where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "EnumJoystickAxis.h"
-{#enum EnumJoystickAxis {} deriving (Eq)#}
+ HGamer3D/Bindings/SFML/EnumJoystickAxis.hs view
@@ -0,0 +1,64 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\EnumJoystickAxis.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- EnumJoystickAxis.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.EnumJoystickAxis where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+
+data EnumJoystickAxis =
+   -- | The X axis. 
+    JoystickAxisX
+   -- | The Y axis. 
+                         | JoystickAxisY
+   -- | The Z axis. 
+                         | JoystickAxisZ
+   -- | The R axis. 
+                         | JoystickAxisR
+   -- | The U axis. 
+                         | JoystickAxisU
+   -- | The V axis. 
+                         | JoystickAxisV
+   -- | The X axis of the point-of-view hat. 
+                         | JoystickAxisPovX
+   -- | The Y axis of the point-of-view hat. 
+                         | JoystickAxisPovY
+                      deriving (Enum,Eq)
− HGamer3D/Bindings/SFML/EnumKey.chs
@@ -1,47 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- EnumKey.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.EnumKey where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "EnumKey.h"
-{#enum EnumKey {} deriving (Eq)#}
+ HGamer3D/Bindings/SFML/EnumKey.hs view
@@ -0,0 +1,255 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\EnumKey.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- EnumKey.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.EnumKey where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+
+data EnumKey =
+   -- | The A key. 
+    KeyA
+   -- | The B key. 
+                | KeyB
+   -- | The C key. 
+                | KeyC
+   -- | The D key. 
+                | KeyD
+   -- | The E key. 
+                | KeyE
+   -- | The F key. 
+                | KeyF
+   -- | The G key. 
+                | KeyG
+   -- | The H key. 
+                | KeyH
+   -- | The I key. 
+                | KeyI
+   -- | The J key. 
+                | KeyJ
+   -- | The K key. 
+                | KeyK
+   -- | The L key. 
+                | KeyL
+   -- | The M key. 
+                | KeyM
+   -- | The N key. 
+                | KeyN
+   -- | The O key. 
+                | KeyO
+   -- | The P key. 
+                | KeyP
+   -- | The Q key. 
+                | KeyQ
+   -- | The R key. 
+                | KeyR
+   -- | The S key. 
+                | KeyS
+   -- | The T key. 
+                | KeyT
+   -- | The U key. 
+                | KeyU
+   -- | The V key. 
+                | KeyV
+   -- | The W key. 
+                | KeyW
+   -- | The X key. 
+                | KeyX
+   -- | The Y key. 
+                | KeyY
+   -- | The Z key. 
+                | KeyZ
+   -- | The 0 key. 
+                | KeyNum0
+   -- | The 1 key. 
+                | KeyNum1
+   -- | The 2 key. 
+                | KeyNum2
+   -- | The 3 key. 
+                | KeyNum3
+   -- | The 4 key. 
+                | KeyNum4
+   -- | The 5 key. 
+                | KeyNum5
+   -- | The 6 key. 
+                | KeyNum6
+   -- | The 7 key. 
+                | KeyNum7
+   -- | The 8 key. 
+                | KeyNum8
+   -- | The 9 key. 
+                | KeyNum9
+   -- | The Escape key. 
+                | KeyEscape
+   -- | The left Control key. 
+                | KeyLControl
+   -- | The left Shift key. 
+                | KeyLShift
+   -- | The left Alt key. 
+                | KeyLAlt
+   -- | The left OS specific key: window (Windows and Linux), apple (MacOS X), ... 
+                | KeyLSystem
+   -- | The right Control key. 
+                | KeyRControl
+   -- | The right Shift key. 
+                | KeyRShift
+   -- | The right Alt key. 
+                | KeyRAlt
+   -- | The right OS specific key: window (Windows and Linux), apple (MacOS X), ... 
+                | KeyRSystem
+   -- | The Menu key. 
+                | KeyMenu
+   -- | The [ key. 
+                | KeyLBracket
+   -- | The ] key. 
+                | KeyRBracket
+   -- | The ; key. 
+                | KeySemiColon
+   -- | The , key. 
+                | KeyComma
+   -- | The . key. 
+                | KeyPeriod
+   -- | The ' key. 
+                | KeyQuote
+   -- | The / key. 
+                | KeySlash
+   -- | The \ key. 
+                | KeyBackSlash
+   -- | The ~ key. 
+                | KeyTilde
+   -- | The = key. 
+                | KeyEqual
+   -- | The - key. 
+                | KeyDash
+   -- | The Space key. 
+                | KeySpace
+   -- | The Return key. 
+                | KeyReturn
+   -- | The Backspace key. 
+                | KeyBack
+   -- | The Tabulation key. 
+                | KeyTab
+   -- | The Page up key. 
+                | KeyPageUp
+   -- | The Page down key. 
+                | KeyPageDown
+   -- | The End key. 
+                | KeyEnd
+   -- | The Home key. 
+                | KeyHome
+   -- | The Insert key. 
+                | KeyInsert
+   -- | The Delete key. 
+                | KeyDelete
+   -- |  
+--
+                | KeyAdd
+   -- |  
+--
+                | KeySubtract
+   -- |  
+--
+                | KeyMultiply
+   -- | / 
+                | KeyDivide
+   -- | Left arrow. 
+                | KeyLeft
+   -- | Right arrow. 
+                | KeyRight
+   -- | Up arrow. 
+                | KeyUp
+   -- | Down arrow. 
+                | KeyDown
+   -- | The numpad 0 key. 
+                | KeyNumpad0
+   -- | The numpad 1 key. 
+                | KeyNumpad1
+   -- | The numpad 2 key. 
+                | KeyNumpad2
+   -- | The numpad 3 key. 
+                | KeyNumpad3
+   -- | The numpad 4 key. 
+                | KeyNumpad4
+   -- | The numpad 5 key. 
+                | KeyNumpad5
+   -- | The numpad 6 key. 
+                | KeyNumpad6
+   -- | The numpad 7 key. 
+                | KeyNumpad7
+   -- | The numpad 8 key. 
+                | KeyNumpad8
+   -- | The numpad 9 key. 
+                | KeyNumpad9
+   -- | The F1 key. 
+                | KeyF1
+   -- | The F2 key. 
+                | KeyF2
+   -- | The F3 key. 
+                | KeyF3
+   -- | The F4 key. 
+                | KeyF4
+   -- | The F5 key. 
+                | KeyF5
+   -- | The F6 key. 
+                | KeyF6
+   -- | The F7 key. 
+                | KeyF7
+   -- | The F8 key. 
+                | KeyF8
+   -- | The F8 key. 
+                | KeyF9
+   -- | The F10 key. 
+                | KeyF10
+   -- | The F11 key. 
+                | KeyF11
+   -- | The F12 key. 
+                | KeyF12
+   -- | The F13 key. 
+                | KeyF13
+   -- | The F14 key. 
+                | KeyF14
+   -- | The F15 key. 
+                | KeyF15
+   -- | The Pause key. 
+                | KeyPause
+   -- | Keep last -- the total number of keyboard keys. 
+                | KeyKeyCount
+             deriving (Enum,Eq)
− HGamer3D/Bindings/SFML/EnumMouseButton.chs
@@ -1,47 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- EnumMouseButton.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.EnumMouseButton where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "EnumMouseButton.h"
-{#enum EnumMouseButton {} deriving (Eq)#}
+ HGamer3D/Bindings/SFML/EnumMouseButton.hs view
@@ -0,0 +1,60 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\EnumMouseButton.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- EnumMouseButton.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.EnumMouseButton where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+
+data EnumMouseButton =
+   -- | The left mouse button. 
+    MouseButtonLeft
+   -- | The right mouse button. 
+                        | MouseButtonRight
+   -- | The middle (wheel) mouse button. 
+                        | MouseButtonMiddle
+   -- | The first extra mouse button. 
+                        | MouseButtonXButton1
+   -- | The second extra mouse button. 
+                        | MouseButtonXButton2
+   -- | Keep last -- the total number of mouse buttons. 
+                        | MouseButtonButtonCount
+                     deriving (Enum,Eq)
− HGamer3D/Bindings/SFML/EnumSoundSourceStatus.chs
@@ -1,47 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- EnumSoundSourceStatus.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.EnumSoundSourceStatus where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "EnumSoundSourceStatus.h"
-{#enum EnumSoundSourceStatus {} deriving (Eq)#}
+ HGamer3D/Bindings/SFML/EnumSoundSourceStatus.hs view
@@ -0,0 +1,54 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\EnumSoundSourceStatus.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- EnumSoundSourceStatus.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.EnumSoundSourceStatus where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+
+data EnumSoundSourceStatus =
+   -- | Sound
+    SoundSourceStatusStopped
+   -- | Sound
+                              | SoundSourceStatusPaused
+   -- | Sound
+                              | SoundSourceStatusPlaying
+                           deriving (Enum,Eq)
− HGamer3D/Bindings/SFML/StructHG3DClass.chs
@@ -1,55 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- StructHG3DClass.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.StructHG3DClass where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "StructHG3DClass.h"
-
-import Data.Bits
-import HGamer3D.Data.HG3DClass
-
-
-{#pointer *hg3dclass_struct as HG3DClassPtr -> HG3DClass #}
-
-withHG3DClass :: HG3DClass -> (HG3DClassPtr -> IO b) -> IO b
-withHG3DClass = with
+ HGamer3D/Bindings/SFML/StructHG3DClass.hs view
@@ -0,0 +1,59 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\StructHG3DClass.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- StructHG3DClass.chs
+
+-- 
+
+module HGamer3D.Bindings.SFML.StructHG3DClass where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+
+
+import Data.Bits
+import HGamer3D.Data.HG3DClass
+
+type HG3DClassPtr = Ptr (HG3DClass)
+{-# LINE 48 ".\\HGamer3D\\Bindings\\SFML\\StructHG3DClass.chs" #-}
+
+withHG3DClass :: HG3DClass -> (HG3DClassPtr -> IO b) -> IO b
+withHG3DClass = with
+
+peekHG3DClass :: HG3DClassPtr -> IO HG3DClass
+peekHG3DClass = peek
+
− HGamer3D/Bindings/SFML/Utils.chs
@@ -1,85 +0,0 @@-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
--- This source file is part of HGamer3D
--- (A project to enable 3D game development in Haskell)
--- For the latest info, see http://www.althainz.de/HGamer3D.html
--- 
-
--- (c) 2011, 2012 Peter Althainz
--- 
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
--- 
---     http://www.apache.org/licenses/LICENSE-2.0
--- 
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- 
-
-
--- Utils.hs
-
--- Marshalling Utilities
-
-module HGamer3D.Bindings.SFML.Utils where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "StructHG3DClass.h"
--- String Conversion functions
---
-
-withCUString b f = withCWString b (f . castPtr)
-peekCUString = peekCWString . castPtr
-alloc64k = allocaBytes (1024 * 64)
-
--- c2hs replacements of utility functions, to get rid of annoying c2hs
--- deprecated messages
-
--- Passing Enums
-
-cIntFromEnum :: Enum a => a -> CInt
-cIntFromEnum = cIntConv . fromEnum
-
-cIntToEnum :: Enum a => CInt -> a
-cIntToEnum = toEnum . cIntConv
-
-
--- Passing Booleans by reference
---
-
-withBoolUtil :: (Integral a, Storable a) => Bool -> (Ptr a -> IO b) -> IO b
-withBoolUtil  = with . fromBool
-
-peekBoolUtil :: (Integral a, Storable a) => Ptr a -> IO Bool
-peekBoolUtil  = liftM toBool . peek
-
-
--- Passing enums by reference
---
-
-withEnumUtil :: (Enum a, Integral b, Storable b) => a -> (Ptr b -> IO c) -> IO c
-withEnumUtil  = with . cFromEnum
-
-peekEnumUtil :: (Enum a, Integral b, Storable b) => Ptr b -> IO a
-peekEnumUtil  = liftM cToEnum . peek
-
-
+ HGamer3D/Bindings/SFML/Utils.hs view
@@ -0,0 +1,85 @@+-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
+-- Edit the ORIGNAL .chs file instead!
+
+
+{-# LINE 1 ".\\HGamer3D\\Bindings\\SFML\\Utils.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+
+-- This source file is part of HGamer3D
+-- (A project to enable 3D game development in Haskell)
+-- For the latest info, see http://www.althainz.de/HGamer3D.html
+-- 
+
+-- (c) 2011, 2012 Peter Althainz
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- 
+
+
+-- Utils.hs
+
+-- Marshalling Utilities
+
+module HGamer3D.Bindings.SFML.Utils where
+
+import C2HS
+import Foreign
+import Foreign.Ptr
+import Foreign.C
+import Monad         (liftM, liftM2)
+
+import HGamer3D.Data.HG3DClass
+import HGamer3D.Data.Vector
+import HGamer3D.Data.Colour
+import HGamer3D.Data.Angle
+
+
+-- String Conversion functions
+--
+
+withCUString b f = withCWString b (f . castPtr)
+peekCUString = peekCWString . castPtr
+alloc64k = allocaBytes (1024 * 64)
+
+-- c2hs replacements of utility functions, to get rid of annoying c2hs
+-- deprecated messages
+
+-- Passing Enums
+
+cIntFromEnum :: Enum a => a -> CInt
+cIntFromEnum = cIntConv . fromEnum
+
+cIntToEnum :: Enum a => CInt -> a
+cIntToEnum = toEnum . cIntConv
+
+
+-- Passing Booleans by reference
+--
+
+withBoolUtil :: (Integral a, Storable a) => Bool -> (Ptr a -> IO b) -> IO b
+withBoolUtil  = with . fromBool
+
+peekBoolUtil :: (Integral a, Storable a) => Ptr a -> IO Bool
+peekBoolUtil  = liftM toBool . peek
+
+
+-- Passing enums by reference
+--
+
+withEnumUtil :: (Enum a, Integral b, Storable b) => a -> (Ptr b -> IO c) -> IO c
+withEnumUtil  = with . cFromEnum
+
+peekEnumUtil :: (Enum a, Integral b, Storable b) => Ptr b -> IO a
+peekEnumUtil  = liftM cToEnum . peek
+
+
include/ClassJoystick.h view
@@ -22,6 +22,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassJoystick
+#define _DEFINED_HG3D_ClassJoystick
+
 #include "ClassPtr.h"
 #include "EnumJoystickAxis.h"
 
@@ -44,3 +47,4 @@ // Update the states of all joysticks. 
 void sfml_jst_update();
 
+#endif 
include/ClassKeyboard.h view
@@ -22,6 +22,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassKeyboard
+#define _DEFINED_HG3D_ClassKeyboard
+
 #include "ClassPtr.h"
 #include "EnumKey.h"
 
@@ -29,3 +32,4 @@ // Check if a key is pressed. 
 void sfml_kbd_isKeyPressed(enum EnumKey key_c, int * result_c);
 
+#endif 
include/ClassListener.h view
@@ -22,6 +22,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassListener
+#define _DEFINED_HG3D_ClassListener
+
 #include "ClassPtr.h"
 
 
@@ -37,3 +40,4 @@ // Set the orientation of the listener in the scene. 
 void sfml_lst_setDirection(float x_c, float y_c, float z_c);
 
+#endif 
include/ClassMouse.h view
@@ -22,6 +22,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassMouse
+#define _DEFINED_HG3D_ClassMouse
+
 #include "ClassPtr.h"
 #include "EnumMouseButton.h"
 
@@ -29,3 +32,4 @@ // Check if a mouse button is pressed. 
 void sfml_mse_isButtonPressed(enum EnumMouseButton button_c, int * result_c);
 
+#endif 
include/ClassMouseHG3D.h view
@@ -22,9 +22,13 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassMouseHG3D
+#define _DEFINED_HG3D_ClassMouseHG3D
+
 #include "ClassPtr.h"
 
 
 // 
 void sfml_mshg_getPosition(int * x_c, int * y_c);
 
+#endif 
include/ClassMusic.h view
@@ -22,6 +22,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassMusic
+#define _DEFINED_HG3D_ClassMusic
+
 #include "ClassPtr.h"
 
 
@@ -34,3 +37,4 @@ // Open a music from an audio file. 
 void sfml_msc_openFromFile(struct hg3dclass_struct * thisclass_c, char * filename_c, int * result_c);
 
+#endif 
include/ClassSound.h view
@@ -22,6 +22,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSound
+#define _DEFINED_HG3D_ClassSound
+
 #include "ClassPtr.h"
 #include "ClassSoundBuffer.h"
 
@@ -53,3 +56,4 @@ // Reset the internal buffer of the sound. 
 void sfml_snd_resetBuffer(struct hg3dclass_struct * thisclass_c);
 
+#endif 
include/ClassSoundBuffer.h view
@@ -22,6 +22,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSoundBuffer
+#define _DEFINED_HG3D_ClassSoundBuffer
+
 #include "ClassPtr.h"
 
 
@@ -43,3 +46,4 @@ // Get the number of channels used by the sound. 
 void sfml_snbf_getChannelCount(struct hg3dclass_struct * thisclass_c, unsigned int * result_c);
 
+#endif 
include/ClassSoundSource.h view
@@ -22,6 +22,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSoundSource
+#define _DEFINED_HG3D_ClassSoundSource
+
 #include "ClassPtr.h"
 
 
@@ -61,3 +64,4 @@ // Get the attenuation factor of the sound. 
 void sfml_snsr_getAttenuation(struct hg3dclass_struct * thisclass_c, float * result_c);
 
+#endif 
include/ClassSoundStream.h view
@@ -22,6 +22,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSoundStream
+#define _DEFINED_HG3D_ClassSoundStream
+
 #include "ClassPtr.h"
 
 
@@ -49,3 +52,4 @@ // Tell whether or not the stream is in loop mode. 
 void sfml_snst_getLoop(struct hg3dclass_struct * thisclass_c, int * result_c);
 
+#endif 
include/EnumJoystickAxis.h view
@@ -22,6 +22,8 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumJoystickAxis
+#define _DEFINED_HG3D_EnumJoystickAxis
 
 
 enum EnumJoystickAxis
@@ -35,3 +37,4 @@   JoystickAxisPovX, // The X axis of the point-of-view hat. 
   JoystickAxisPovY // The Y axis of the point-of-view hat. 
 };
+#endif 
include/EnumKey.h view
@@ -22,6 +22,8 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumKey
+#define _DEFINED_HG3D_EnumKey
 
 
 enum EnumKey
@@ -129,3 +131,4 @@   KeyPause, // The Pause key. 
   KeyKeyCount // Keep last -- the total number of keyboard keys. 
 };
+#endif 
include/EnumMouseButton.h view
@@ -22,6 +22,8 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumMouseButton
+#define _DEFINED_HG3D_EnumMouseButton
 
 
 enum EnumMouseButton
@@ -33,3 +35,4 @@   MouseButtonXButton2, // The second extra mouse button. 
   MouseButtonButtonCount // Keep last -- the total number of mouse buttons. 
 };
+#endif 
include/EnumSoundSourceStatus.h view
@@ -22,6 +22,8 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumSoundSourceStatus
+#define _DEFINED_HG3D_EnumSoundSourceStatus
 
 
 enum EnumSoundSourceStatus
@@ -30,3 +32,4 @@   SoundSourceStatusPaused, // Sound
   SoundSourceStatusPlaying // Sound
 };
+#endif 
include/SFMLDllDefines.h view
@@ -16,10 +16,10 @@ 
 // SFMLDllDefines.h
 
-#ifndef _HGamer3DSFML016_DLLDEFINES_H_
-#define _HGamer3DSFML016_DLLDEFINES_H_
+#ifndef _HGamer3DSFML017_DLLDEFINES_H_
+#define _HGamer3DSFML017_DLLDEFINES_H_
 
-/* Cmake will define HGamer3DSFML016_EXPORTS on Windows when it
+/* Cmake will define HGamer3DSFML017_EXPORTS on Windows when it
 configures to build a shared library. If you are going to use
 another build system on windows or create the visual studio
 projects by hand you need to define MyLibrary_EXPORTS when
@@ -29,13 +29,13 @@ // We are using the Visual Studio Compiler and building Shared libraries
 
 #if (defined (_WIN32)) && !(defined (__GNUC__)) 
-  #if defined(HGamer3DSFML016_EXPORTS)
+  #if defined(HGamer3DSFML017_EXPORTS)
     #define  SFML_LIB_EXPORT __declspec(dllexport)
   #else
     #define  SFML_LIB_EXPORT __declspec(dllimport)
-  #endif /* HGamer3DSFML016_EXPORTS */
+  #endif /* HGamer3DSFML017_EXPORTS */
 #else /* defined (_WIN32) */
  #define SFML_LIB_EXPORT
 #endif
 
-#endif /* _HGamer3DSFML016_DLLDEFINES_H_ */
+#endif /* _HGamer3DSFML017_DLLDEFINES_H_ */