diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2009-01-07 17:03:25 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2009-01-07 17:03:25 +0100 |
commit | 439aa2d04d5528b5aed288f70895515d1da2dc3d (patch) | |
tree | cda2d0bc4d4f2bab189c4a0567cae3c1428c5ed0 /lib/base | |
parent | 1c8ddca7e08af9075a930edaca6c522d5e6fd8b5 (diff) | |
download | Nim-439aa2d04d5528b5aed288f70895515d1da2dc3d.tar.gz |
version 0.7.4
Diffstat (limited to 'lib/base')
-rw-r--r-- | lib/base/cgi.nim | 3 | ||||
-rw-r--r-- | lib/base/gtk/atk.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/gdk2.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/gdk2pixbuf.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/gdkglext.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/glib2.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/gtk2.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/gtkglext.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/gtkhtml.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/libglade2.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/pango.nim | 2 | ||||
-rw-r--r-- | lib/base/gtk/pangoutils.nim | 2 | ||||
-rw-r--r-- | lib/base/sdl/sdl.nim | 3 | ||||
-rw-r--r-- | lib/base/sdl/sdl_mixer.nim | 411 |
14 files changed, 229 insertions, 210 deletions
diff --git a/lib/base/cgi.nim b/lib/base/cgi.nim index 3ed94c9b7..59b7b9d09 100644 --- a/lib/base/cgi.nim +++ b/lib/base/cgi.nim @@ -281,7 +281,7 @@ proc getServerSoftware*(): string = proc setTestData*(keysvalues: openarray[string]) = ## fills the appropriate environment variables to test your CGI application. - ## This can only simulate the 'GET' 'REQUEST_METHOD'. `keysvalues` should + ## This can only simulate the 'GET' request method. `keysvalues` should ## provide embedded (name, value)-pairs. Example: ## ## .. code-block:: Nimrod @@ -300,6 +300,7 @@ proc setTestData*(keysvalues: openarray[string]) = proc writeContentType*() = ## call this before starting to send your HTML data to `stdout`. This ## is just a shorthand for: + ## ## .. code-block:: Nimrod ## write(stdout, "Content-type: text/html\n\n") write(stdout, "Content-type: text/html\n\n") diff --git a/lib/base/gtk/atk.nim b/lib/base/gtk/atk.nim index 8004eccfc..ae7a34c4b 100644 --- a/lib/base/gtk/atk.nim +++ b/lib/base/gtk/atk.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import glib2 diff --git a/lib/base/gtk/gdk2.nim b/lib/base/gtk/gdk2.nim index 66838ab99..0ca5056b5 100644 --- a/lib/base/gtk/gdk2.nim +++ b/lib/base/gtk/gdk2.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import glib2, gdk2pixbuf, pango diff --git a/lib/base/gtk/gdk2pixbuf.nim b/lib/base/gtk/gdk2pixbuf.nim index 8ef3ac0f9..daaa1479b 100644 --- a/lib/base/gtk/gdk2pixbuf.nim +++ b/lib/base/gtk/gdk2pixbuf.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import glib2 diff --git a/lib/base/gtk/gdkglext.nim b/lib/base/gtk/gdkglext.nim index d5e6b128e..524b5f730 100644 --- a/lib/base/gtk/gdkglext.nim +++ b/lib/base/gtk/gdkglext.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import Glib2, Gdk2 diff --git a/lib/base/gtk/glib2.nim b/lib/base/gtk/glib2.nim index dfcc586da..aca1b5551 100644 --- a/lib/base/gtk/glib2.nim +++ b/lib/base/gtk/glib2.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + when defined(windows): const gliblib = "libglib-2.0-0.dll" diff --git a/lib/base/gtk/gtk2.nim b/lib/base/gtk/gtk2.nim index 22bbd3c6c..b20d5e635 100644 --- a/lib/base/gtk/gtk2.nim +++ b/lib/base/gtk/gtk2.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import glib2, atk, pango, gdk2pixbuf, gdk2 diff --git a/lib/base/gtk/gtkglext.nim b/lib/base/gtk/gtkglext.nim index 7d9e35b13..38da5d25e 100644 --- a/lib/base/gtk/gtkglext.nim +++ b/lib/base/gtk/gtkglext.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import Glib2, Gdk2, Gtk2, GdkGLExt diff --git a/lib/base/gtk/gtkhtml.nim b/lib/base/gtk/gtkhtml.nim index 17d3ac56c..d015a78bc 100644 --- a/lib/base/gtk/gtkhtml.nim +++ b/lib/base/gtk/gtkhtml.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import gtk2, glib2, atk, pango, gdk2pixbuf, gdk2 diff --git a/lib/base/gtk/libglade2.nim b/lib/base/gtk/libglade2.nim index cc90b0623..5e323680e 100644 --- a/lib/base/gtk/libglade2.nim +++ b/lib/base/gtk/libglade2.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import glib2, gtk2 diff --git a/lib/base/gtk/pango.nim b/lib/base/gtk/pango.nim index 363650f1f..ade2da989 100644 --- a/lib/base/gtk/pango.nim +++ b/lib/base/gtk/pango.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import glib2 diff --git a/lib/base/gtk/pangoutils.nim b/lib/base/gtk/pangoutils.nim index 6033cca7d..e6f3ab94c 100644 --- a/lib/base/gtk/pangoutils.nim +++ b/lib/base/gtk/pangoutils.nim @@ -1,3 +1,5 @@ +{.deadCodeElim: on.} + import glib2, pango diff --git a/lib/base/sdl/sdl.nim b/lib/base/sdl/sdl.nim index 2c83c4893..7d2b6ba26 100644 --- a/lib/base/sdl/sdl.nim +++ b/lib/base/sdl/sdl.nim @@ -270,7 +270,8 @@ # # -# +{.deadCodeElim: on.} + when defined(windows): const SDLLibName = "SDL.dll" elif defined(macosx): diff --git a/lib/base/sdl/sdl_mixer.nim b/lib/base/sdl/sdl_mixer.nim index b5dd91dfa..f840dc52a 100644 --- a/lib/base/sdl/sdl_mixer.nim +++ b/lib/base/sdl/sdl_mixer.nim @@ -2,93 +2,93 @@ #****************************************************************************** # # $Id: sdl_mixer.pas,v 1.18 2007/05/29 21:31:44 savage Exp $ -# -# -# -# Borland Delphi SDL_Mixer - Simple DirectMedia Layer Mixer Library -# Conversion of the Simple DirectMedia Layer Headers -# -# Portions created by Sam Lantinga <slouken@devolution.com> are -# Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga -# 5635-34 Springhouse Dr. -# Pleasanton, CA 94588 (USA) -# -# All Rights Reserved. -# -# The original files are : SDL_mixer.h -# music_cmd.h -# wavestream.h -# timidity.h -# playmidi.h -# music_ogg.h -# mikmod.h -# -# The initial developer of this Pascal code was : -# Dominqiue Louis <Dominique@SavageSoftware.com.au> -# -# Portions created by Dominqiue Louis are -# Copyright (C) 2000 - 2001 Dominqiue Louis. -# -# -# Contributor(s) -# -------------- -# Matthias Thoma <ma.thoma@gmx.de> -# -# Obtained through: -# Joint Endeavour of Delphi Innovators ( Project JEDI ) -# -# You may retrieve the latest version of this file at the Project -# JEDI home page, located at http://delphi-jedi.org -# -# The contents of this file are used with permission, subject to -# the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/MPL-1.1.html -# -# Software distributed under the License is distributed on an -# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the License for the specific language governing -# rights and limitations under the License. -# -# Description -# ----------- -# -# -# -# -# -# -# -# Requires -# -------- -# SDL.pas & SMPEG.pas somewhere within your search path. -# -# Programming Notes -# ----------------- -# See the Aliens Demo to see how this library is used -# -# Revision History -# ---------------- -# April 02 2001 - DL : Initial Translation -# -# February 02 2002 - DL : Update to version 1.2.1 -# -# April 03 2003 - DL : Added jedi-sdl.inc include file to support more -# Pascal compilers. Initial support is now included -# for GnuPascal, VirtualPascal, TMT and obviously -# continue support for Delphi Kylix and FreePascal. -# +# +# +# +# Borland Delphi SDL_Mixer - Simple DirectMedia Layer Mixer Library +# Conversion of the Simple DirectMedia Layer Headers +# +# Portions created by Sam Lantinga <slouken@devolution.com> are +# Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga +# 5635-34 Springhouse Dr. +# Pleasanton, CA 94588 (USA) +# +# All Rights Reserved. +# +# The original files are : SDL_mixer.h +# music_cmd.h +# wavestream.h +# timidity.h +# playmidi.h +# music_ogg.h +# mikmod.h +# +# The initial developer of this Pascal code was : +# Dominqiue Louis <Dominique@SavageSoftware.com.au> +# +# Portions created by Dominqiue Louis are +# Copyright (C) 2000 - 2001 Dominqiue Louis. +# +# +# Contributor(s) +# -------------- +# Matthias Thoma <ma.thoma@gmx.de> +# +# Obtained through: +# Joint Endeavour of Delphi Innovators ( Project JEDI ) +# +# You may retrieve the latest version of this file at the Project +# JEDI home page, located at http://delphi-jedi.org +# +# The contents of this file are used with permission, subject to +# the Mozilla Public License Version 1.1 (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.mozilla.org/MPL/MPL-1.1.html +# +# Software distributed under the License is distributed on an +# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# Description +# ----------- +# +# +# +# +# +# +# +# Requires +# -------- +# SDL.pas & SMPEG.pas somewhere within your search path. +# +# Programming Notes +# ----------------- +# See the Aliens Demo to see how this library is used +# +# Revision History +# ---------------- +# April 02 2001 - DL : Initial Translation +# +# February 02 2002 - DL : Update to version 1.2.1 +# +# April 03 2003 - DL : Added jedi-sdl.inc include file to support more +# Pascal compilers. Initial support is now included +# for GnuPascal, VirtualPascal, TMT and obviously +# continue support for Delphi Kylix and FreePascal. +# # April 24 2003 - DL : under instruction from Alexey Barkovoy, I have added -# better TMT Pascal support and under instruction +# better TMT Pascal support and under instruction # from Prof. Abimbola Olowofoyeku (The African Chief), -# I have added better Gnu Pascal support -# -# April 30 2003 - DL : under instruction from David Mears AKA -# Jason Siletto, I have added FPC Linux support. -# This was compiled with fpc 1.1, so remember to set -# include file path. ie. -Fi/usr/share/fpcsrc/rtl/* -# +# I have added better Gnu Pascal support +# +# April 30 2003 - DL : under instruction from David Mears AKA +# Jason Siletto, I have added FPC Linux support. +# This was compiled with fpc 1.1, so remember to set +# include file path. ie. -Fi/usr/share/fpcsrc/rtl/* +# # # $Log: sdl_mixer.pas,v $ # Revision 1.18 2007/05/29 21:31:44 savage @@ -166,19 +166,19 @@ const MIX_MAJOR_VERSION* = SDL_MIXER_MAJOR_VERSION MIX_MINOR_VERSION* = SDL_MIXER_MINOR_VERSION MIX_PATCHLEVEL* = SDL_MIXER_PATCHLEVEL # SDL_Mixer.h constants - # The default mixer has 8 simultaneous mixing channels - MIX_CHANNELS* = 8 # Good default values for a PC soundcard + # The default mixer has 8 simultaneous mixing channels + MIX_CHANNELS* = 8 # Good default values for a PC soundcard MIX_DEFAULT_FREQUENCY* = 22050 -when defined(IA32): - const +when defined(IA32): + const MIX_DEFAULT_FORMAT* = AUDIO_S16LSB -else: - const +else: + const MIX_DEFAULT_FORMAT* = AUDIO_S16MSB -const +const MIX_DEFAULT_CHANNELS* = 2 - MIX_MAX_VOLUME* = 128 # Volume of a chunk + MIX_MAX_VOLUME* = 128 # Volume of a chunk PATH_MAX* = 255 # mikmod.h constants #* # * Library version @@ -204,7 +204,7 @@ type #music_cmd.h types cvt*: TSDL_AudioCVT PMidiEvent* = ptr TMidiEvent - TMidiEvent*{.final.} = object + TMidiEvent*{.final.} = object time*: int32 channel*: uint8 type_*: uint8 @@ -228,43 +228,43 @@ type #music_cmd.h types len_available*: int snd_available*: PUint8 - TErrorEnum* = enum - MMERR_OPENING_FILE, MMERR_OUT_OF_MEMORY, MMERR_DYNAMIC_LINKING, - MMERR_SAMPLE_TOO_BIG, MMERR_OUT_OF_HANDLES, MMERR_UNKNOWN_WAVE_TYPE, - MMERR_LOADING_PATTERN, MMERR_LOADING_TRACK, MMERR_LOADING_HEADER, - MMERR_LOADING_SAMPLEINFO, MMERR_NOT_A_MODULE, MMERR_NOT_A_STREAM, - MMERR_MED_SYNTHSAMPLES, MMERR_ITPACK_INVALID_DATA, MMERR_DETECTING_DEVICE, - MMERR_INVALID_DEVICE, MMERR_INITIALIZING_MIXER, MMERR_OPENING_AUDIO, - MMERR_8BIT_ONLY, MMERR_16BIT_ONLY, MMERR_STEREO_ONLY, MMERR_ULAW, - MMERR_NON_BLOCK, MMERR_AF_AUDIO_PORT, MMERR_AIX_CONFIG_INIT, - MMERR_AIX_CONFIG_CONTROL, MMERR_AIX_CONFIG_START, MMERR_GUS_SETTINGS, - MMERR_GUS_RESET, MMERR_GUS_TIMER, MMERR_HP_SETSAMPLESIZE, MMERR_HP_SETSPEED, - MMERR_HP_CHANNELS, MMERR_HP_AUDIO_OUTPUT, MMERR_HP_AUDIO_DESC, - MMERR_HP_BUFFERSIZE, MMERR_OSS_SETFRAGMENT, MMERR_OSS_SETSAMPLESIZE, - MMERR_OSS_SETSTEREO, MMERR_OSS_SETSPEED, MMERR_SGI_SPEED, MMERR_SGI_16BIT, - MMERR_SGI_8BIT, MMERR_SGI_STEREO, MMERR_SGI_MONO, MMERR_SUN_INIT, - MMERR_OS2_MIXSETUP, MMERR_OS2_SEMAPHORE, MMERR_OS2_TIMER, MMERR_OS2_THREAD, - MMERR_DS_PRIORITY, MMERR_DS_BUFFER, MMERR_DS_FORMAT, MMERR_DS_NOTIFY, - MMERR_DS_EVENT, MMERR_DS_THREAD, MMERR_DS_UPDATE, MMERR_WINMM_HANDLE, - MMERR_WINMM_ALLOCATED, MMERR_WINMM_DEVICEID, MMERR_WINMM_FORMAT, + TErrorEnum* = enum + MMERR_OPENING_FILE, MMERR_OUT_OF_MEMORY, MMERR_DYNAMIC_LINKING, + MMERR_SAMPLE_TOO_BIG, MMERR_OUT_OF_HANDLES, MMERR_UNKNOWN_WAVE_TYPE, + MMERR_LOADING_PATTERN, MMERR_LOADING_TRACK, MMERR_LOADING_HEADER, + MMERR_LOADING_SAMPLEINFO, MMERR_NOT_A_MODULE, MMERR_NOT_A_STREAM, + MMERR_MED_SYNTHSAMPLES, MMERR_ITPACK_INVALID_DATA, MMERR_DETECTING_DEVICE, + MMERR_INVALID_DEVICE, MMERR_INITIALIZING_MIXER, MMERR_OPENING_AUDIO, + MMERR_8BIT_ONLY, MMERR_16BIT_ONLY, MMERR_STEREO_ONLY, MMERR_ULAW, + MMERR_NON_BLOCK, MMERR_AF_AUDIO_PORT, MMERR_AIX_CONFIG_INIT, + MMERR_AIX_CONFIG_CONTROL, MMERR_AIX_CONFIG_START, MMERR_GUS_SETTINGS, + MMERR_GUS_RESET, MMERR_GUS_TIMER, MMERR_HP_SETSAMPLESIZE, MMERR_HP_SETSPEED, + MMERR_HP_CHANNELS, MMERR_HP_AUDIO_OUTPUT, MMERR_HP_AUDIO_DESC, + MMERR_HP_BUFFERSIZE, MMERR_OSS_SETFRAGMENT, MMERR_OSS_SETSAMPLESIZE, + MMERR_OSS_SETSTEREO, MMERR_OSS_SETSPEED, MMERR_SGI_SPEED, MMERR_SGI_16BIT, + MMERR_SGI_8BIT, MMERR_SGI_STEREO, MMERR_SGI_MONO, MMERR_SUN_INIT, + MMERR_OS2_MIXSETUP, MMERR_OS2_SEMAPHORE, MMERR_OS2_TIMER, MMERR_OS2_THREAD, + MMERR_DS_PRIORITY, MMERR_DS_BUFFER, MMERR_DS_FORMAT, MMERR_DS_NOTIFY, + MMERR_DS_EVENT, MMERR_DS_THREAD, MMERR_DS_UPDATE, MMERR_WINMM_HANDLE, + MMERR_WINMM_ALLOCATED, MMERR_WINMM_DEVICEID, MMERR_WINMM_FORMAT, MMERR_WINMM_UNKNOWN, MMERR_MAC_SPEED, MMERR_MAC_START, MMERR_MAX PMODULE* = ptr TMODULE - TMODULE*{.final.} = object + TMODULE*{.final.} = object PUNIMOD* = ptr TUNIMOD TUNIMOD* = TMODULE #SDL_mixer.h types - # The internal format for an audio chunk + # The internal format for an audio chunk PMix_Chunk* = ptr TMix_Chunk - TMix_Chunk*{.final.} = object + TMix_Chunk*{.final.} = object allocated*: int abuf*: PUint8 alen*: Uint32 - volume*: Uint8 # Per-sample volume, 0-128 - - Mix_Chunk* = TMix_Chunk # The different fading types supported - TMix_Fading* = enum + volume*: Uint8 # Per-sample volume, 0-128 + + Mix_Chunk* = TMix_Chunk # The different fading types supported + TMix_Fading* = enum MIX_NO_FADING, MIX_FADING_OUT, MIX_FADING_IN Mix_Fading* = TMix_Fading - TMix_MusicType* = enum + TMix_MusicType* = enum MUS_NONE, MUS_CMD, MUS_WAV, MUS_MOD, MUS_MID, MUS_OGG, MUS_MP3 Mix_MusicType* = TMix_MusicType # # TMusicUnion = record @@ -279,89 +279,84 @@ type #music_cmd.h types # {$ENDIF} # end; PMix_Music* = ptr TMix_Music - TMix_Music*{.final.} = object # The internal format for a music chunk interpreted via mikmod + TMix_Music*{.final.} = object # The internal format for a music chunk interpreted via mikmod type_*: TMix_MusicType # other fields are not aviable # data : TMusicUnion; # fading : TMix_Fading; # fade_volume : integer; # fade_step : integer; # fade_steps : integer; - # error : integer; - + # error : integer; + TMixFunction* = proc (udata: Pointer, stream: PUint8, length: int): Pointer{. cdecl.} # This macro can be used to fill a version structure with the compile-time - # version of the SDL_mixer library. + # version of the SDL_mixer library. proc SDL_MIXER_VERSION*(X: var TSDL_Version) # This function gets the version of the dynamically linked SDL_mixer library. # It should NOT be used to fill a version structure, instead you should use the - # SDL_MIXER_VERSION() macro. + # SDL_MIXER_VERSION() macro. proc Mix_Linked_Version*(): PSDL_version{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Open the mixer with a certain audio format -proc Mix_OpenAudio*(frequency: int, format: Uint16, channels: int, + # Open the mixer with a certain audio format +proc Mix_OpenAudio*(frequency: int, format: Uint16, channels: int, chunksize: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # Dynamically change the number of channels managed by the mixer. # If decreasing the number of channels, the upper channels are # stopped. # This function returns the new number of allocated channels. - # -proc Mix_AllocateChannels*(numchannels: int): int{.cdecl, + # +proc Mix_AllocateChannels*(numchannels: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # Find out what the actual audio device parameters are. # This function returns 1 if the audio has been opened, 0 otherwise. - # + # proc Mix_QuerySpec*(frequency: var int, format: var Uint16, channels: var int): int{. cdecl, importc, dynlib: SDL_MixerLibName.} - # Load a wave file or a music (.mod .s3m .it .xm) file -proc Mix_LoadWAV_RW*(src: PSDL_RWops, freesrc: int): PMix_Chunk{.cdecl, + # Load a wave file or a music (.mod .s3m .it .xm) file +proc Mix_LoadWAV_RW*(src: PSDL_RWops, freesrc: int): PMix_Chunk{.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_LoadWAV*(filename: cstring): PMix_Chunk -proc Mix_LoadMUS*(filename: cstring): PMix_Music{.cdecl, +proc Mix_LoadMUS*(filename: cstring): PMix_Music{.cdecl, importc, dynlib: SDL_MixerLibName.} - ##if 0 { This hasn't been hooked into music.c yet } - #{ Load a music file from an SDL_RWop object (MikMod-specific currently) - # Matt Campbell (matt@campbellhome.dhs.org) April 2000 } - #function Mix_LoadMUS_RW(SDL_RWops *rw) : PMix_Music; cdecl; - ##endif - # Load a wave file of the mixer format from a memory buffer -proc Mix_QuickLoad_WAV*(mem: PUint8): PMix_Chunk{.cdecl, + # Load a wave file of the mixer format from a memory buffer +proc Mix_QuickLoad_WAV*(mem: PUint8): PMix_Chunk{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Free an audio chunk previously loaded + # Free an audio chunk previously loaded proc Mix_FreeChunk*(chunk: PMix_Chunk){.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_FreeMusic*(music: PMix_Music){.cdecl, importc, dynlib: SDL_MixerLibName.} # Find out the music format of a mixer music, or the currently playing # music, if 'music' is NULL. -proc Mix_GetMusicType*(music: PMix_Music): TMix_MusicType{.cdecl, +proc Mix_GetMusicType*(music: PMix_Music): TMix_MusicType{.cdecl, importc, dynlib: SDL_MixerLibName.} # Set a function that is called after all mixing is performed. # This can be used to provide real-time visual display of the audio stream # or add a custom mixer filter for the stream data. # -proc Mix_SetPostMix*(mix_func: TMixFunction, arg: Pointer){.cdecl, +proc Mix_SetPostMix*(mix_func: TMixFunction, arg: Pointer){.cdecl, importc, dynlib: SDL_MixerLibName.} # Add your own music player or additional mixer function. # If 'mix_func' is NULL, the default music player is re-enabled. - # -proc Mix_HookMusic*(mix_func: TMixFunction, arg: Pointer){.cdecl, + # +proc Mix_HookMusic*(mix_func: TMixFunction, arg: Pointer){.cdecl, importc, dynlib: SDL_MixerLibName.} # Add your own callback when the music has finished playing. - # -proc Mix_HookMusicFinished*(music_finished: Pointer){.cdecl, + # +proc Mix_HookMusicFinished*(music_finished: Pointer){.cdecl, importc, dynlib: SDL_MixerLibName.} - # Get a pointer to the user data for the current music hook + # Get a pointer to the user data for the current music hook proc Mix_GetMusicHookData*(): Pointer{.cdecl, importc, dynlib: SDL_MixerLibName.} #* Add your own callback when a channel has finished playing. NULL # * to disable callback.* -type +type TChannel_finished* = proc (channel: int){.cdecl.} -proc Mix_ChannelFinished*(channel_finished: TChannel_finished){.cdecl, +proc Mix_ChannelFinished*(channel_finished: TChannel_finished){.cdecl, importc, dynlib: SDL_MixerLibName.} -const +const MIX_CHANNEL_POST* = - 2 # This is the format of a special effect callback: # myeffect(int chan, void *stream, int len, void *udata); - # + # # (chan) is the channel number that your effect is affecting. (stream) is # the buffer of data to work upon. (len) is the size of (stream), and # (udata) is a user-defined bit of data, which you pass as the last arg of @@ -372,10 +367,10 @@ const # down the mixing pipeline, through any other effect functions, then finally # to be mixed with the rest of the channels and music for the final output # stream. - # + # -type - TMix_EffectFunc* = proc (chan: int, stream: Pointer, length: int, +type + TMix_EffectFunc* = proc (chan: int, stream: Pointer, length: int, udata: Pointer): Pointer{.cdecl.} # * This is a callback that signifies that a channel has finished all its # * loops and has completed playback. This gets called if the buffer @@ -428,7 +423,7 @@ type # * Error messages can be retrieved from Mix_GetError(). # * -proc Mix_RegisterEffect*(chan: int, f: TMix_EffectFunc, d: TMix_EffectDone, +proc Mix_RegisterEffect*(chan: int, f: TMix_EffectFunc, d: TMix_EffectDone, arg: Pointer): int{.cdecl, importc, dynlib: SDL_MixerLibName.} #* You may not need to call this explicitly, unless you need to stop an # * effect from processing in the middle of a chunk's playback. @@ -438,7 +433,7 @@ proc Mix_RegisterEffect*(chan: int, f: TMix_EffectFunc, d: TMix_EffectDone, # * returns zero if error (no such channel or effect), nonzero if removed. # * Error messages can be retrieved from Mix_GetError(). # * -proc Mix_UnregisterEffect*(channel: int, f: TMix_EffectFunc): int{.cdecl, +proc Mix_UnregisterEffect*(channel: int, f: TMix_EffectFunc): int{.cdecl, importc, dynlib: SDL_MixerLibName.} #* You may not need to call this explicitly, unless you need to stop all # * effects from processing in the middle of a chunk's playback. Note that @@ -451,17 +446,17 @@ proc Mix_UnregisterEffect*(channel: int, f: TMix_EffectFunc): int{.cdecl, # * returns zero if error( no such channel ), nonzero if all effects removed. # * Error messages can be retrieved from Mix_GetError( ). # * -proc Mix_UnregisterAllEffects*(channel: int): int{.cdecl, +proc Mix_UnregisterAllEffects*(channel: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} -const - MIX_EFFECTSMAXSPEED* = "MIX_EFFECTSMAXSPEED" +const + MIX_EFFECTSMAXSPEED* = "MIX_EFFECTSMAXSPEED" # * These are the internally - defined mixing effects.They use the same API that # * effects defined in the application use, but are provided here as a # * convenience.Some effects can reduce their quality or use more memory in # * the name of speed; to enable this, make sure the environment variable # * MIX_EFFECTSMAXSPEED( see above ) is defined before you call # * Mix_OpenAudio( ). - # * + # * #* set the panning of a channel.The left and right channels are specified # * as integers between 0 and 255, quietest to loudest, respectively. # * @@ -486,9 +481,9 @@ const # * nonzero if panning effect enabled.Note that an audio device in mono # * mode is a no - op, but this call will return successful in that case . # * Error messages can be retrieved from Mix_GetError( ). - # * + # * -proc Mix_SetPanning*(channel: int, left: Uint8, right: Uint8): int{.cdecl, +proc Mix_SetPanning*(channel: int, left: Uint8, right: Uint8): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # * set the position ofa channel.( angle ) is an integer from 0 to 360, that # * specifies the location of the sound in relation to the listener.( angle ) @@ -526,8 +521,8 @@ proc Mix_SetPanning*(channel: int, left: Uint8, right: Uint8): int{.cdecl, # * returns zero if error( no such channel or Mix_RegisterEffect( )fails ), # * nonzero if position effect is enabled. # * Error messages can be retrieved from Mix_GetError( ). - # * -proc Mix_SetPosition*(channel: int, angle: Sint16, distance: Uint8): int{.cdecl, + # * +proc Mix_SetPosition*(channel: int, angle: Sint16, distance: Uint8): int{.cdecl, importc, dynlib: SDL_MixerLibName.} #* set the "distance" of a channel.( distance ) is an integer from 0 to 255 # * that specifies the location of the sound in relation to the listener. @@ -555,8 +550,8 @@ proc Mix_SetPosition*(channel: int, angle: Sint16, distance: Uint8): int{.cdecl, # * returns zero if error( no such channel or Mix_RegisterEffect( )fails ), # * nonzero if position effect is enabled. # * Error messages can be retrieved from Mix_GetError( ). - # * -proc Mix_SetDistance*(channel: int, distance: Uint8): int{.cdecl, + # * +proc Mix_SetDistance*(channel: int, distance: Uint8): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # * # * !!! FIXME : Haven't implemented, since the effect goes past the @@ -600,39 +595,39 @@ proc Mix_SetDistance*(channel: int, distance: Uint8): int{.cdecl, # * nonzero if reversing effect is enabled.Note that an audio device in mono # * mode is a no - op, but this call will return successful in that case . # * Error messages can be retrieved from Mix_GetError( ). - # * -proc Mix_SetReverseStereo*(channel: int, flip: int): int{.cdecl, + # * +proc Mix_SetReverseStereo*(channel: int, flip: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # end of effects API. - -ryan. * # Reserve the first channels (0 -> n-1) for the application, i.e. don't allocate # them dynamically to the next sample if requested with a -1 value below. # Returns the number of reserved channels. - # + # proc Mix_ReserveChannels*(num: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Channel grouping functions + # Channel grouping functions # Attach a tag to a channel. A tag can be assigned to several mixer # channels, to form groups of channels. # If 'tag' is -1, the tag is removed (actually -1 is the tag used to # represent the group of all the channels). # Returns true if everything was OK. - # -proc Mix_GroupChannel*(which: int, tag: int): int{.cdecl, + # +proc Mix_GroupChannel*(which: int, tag: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Assign several consecutive channels to a group -proc Mix_GroupChannels*(`from`: int, `to`: int, tag: int): int{.cdecl, + # Assign several consecutive channels to a group +proc Mix_GroupChannels*(`from`: int, `to`: int, tag: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Finds the first available channel in a group of channels + # Finds the first available channel in a group of channels proc Mix_GroupAvailable*(tag: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # Returns the number of channels in a group. This is also a subtle # way to get the total number of channels when 'tag' is -1 - # + # proc Mix_GroupCount*(tag: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Finds the "oldest" sample playing in a group of channels + # Finds the "oldest" sample playing in a group of channels proc Mix_GroupOldest*(tag: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Finds the "most recent" (i.e. last) sample playing in a group of channels + # Finds the "most recent" (i.e. last) sample playing in a group of channels proc Mix_GroupNewer*(tag: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # The same as above, but the sound is played at most 'ticks' milliseconds -proc Mix_PlayChannelTimed*(channel: int, chunk: PMix_Chunk, loops: int, + # The same as above, but the sound is played at most 'ticks' milliseconds +proc Mix_PlayChannelTimed*(channel: int, chunk: PMix_Chunk, loops: int, ticks: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # Play an audio chunk on a specific channel. # If the specified channel is -1, play on the first free channel. @@ -641,13 +636,13 @@ proc Mix_PlayChannelTimed*(channel: int, chunk: PMix_Chunk, loops: int, # Returns which channel was used to play the sound. # proc Mix_PlayChannel*(channel: int, chunk: PMix_Chunk, loops: int): int -proc Mix_PlayMusic*(music: PMix_Music, loops: int): int{.cdecl, +proc Mix_PlayMusic*(music: PMix_Music, loops: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Fade in music or a channel over "ms" milliseconds, same semantics as the "Play" functions -proc Mix_FadeInMusic*(music: PMix_Music, loops: int, ms: int): int{.cdecl, + # Fade in music or a channel over "ms" milliseconds, same semantics as the "Play" functions +proc Mix_FadeInMusic*(music: PMix_Music, loops: int, ms: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} -proc Mix_FadeInChannelTimed*(channel: int, chunk: PMix_Chunk, loops: int, - ms: int, ticks: int): int{.cdecl, +proc Mix_FadeInChannelTimed*(channel: int, chunk: PMix_Chunk, loops: int, + ms: int, ticks: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_FadeInChannel*(channel: int, chunk: PMix_Chunk, loops: int, ms: int): int # Set the volume in the range of 0-128 of a specific channel or chunk. @@ -655,12 +650,12 @@ proc Mix_FadeInChannel*(channel: int, chunk: PMix_Chunk, loops: int, ms: int): i # Returns the original volume. # If the specified volume is -1, just return the current volume. # -proc Mix_Volume*(channel: int, volume: int): int{.cdecl, +proc Mix_Volume*(channel: int, volume: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} -proc Mix_VolumeChunk*(chunk: PMix_Chunk, volume: int): int{.cdecl, +proc Mix_VolumeChunk*(chunk: PMix_Chunk, volume: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_VolumeMusic*(volume: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Halt playing of a particular channel + # Halt playing of a particular channel proc Mix_HaltChannel*(channel: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_HaltGroup*(tag: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_HaltMusic*(): int{.cdecl, importc, dynlib: SDL_MixerLibName.} @@ -668,25 +663,25 @@ proc Mix_HaltMusic*(): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # The sample will stop playing after the 'ticks' milliseconds have elapsed, # or remove the expiration if 'ticks' is -1 # -proc Mix_ExpireChannel*(channel: int, ticks: int): int{.cdecl, +proc Mix_ExpireChannel*(channel: int, ticks: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # Halt a channel, fading it out progressively till it's silent # The ms parameter indicates the number of milliseconds the fading # will take. - # -proc Mix_FadeOutChannel*(which: int, ms: int): int{.cdecl, + # +proc Mix_FadeOutChannel*(which: int, ms: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_FadeOutGroup*(tag: int, ms: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_FadeOutMusic*(ms: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Query the fading status of a channel + # Query the fading status of a channel proc Mix_FadingMusic*(): TMix_Fading{.cdecl, importc, dynlib: SDL_MixerLibName.} -proc Mix_FadingChannel*(which: int): TMix_Fading{.cdecl, +proc Mix_FadingChannel*(which: int): TMix_Fading{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Pause/Resume a particular channel + # Pause/Resume a particular channel proc Mix_Pause*(channel: int){.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_Resume*(channel: int){.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_Paused*(channel: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Pause/Resume the music stream + # Pause/Resume the music stream proc Mix_PauseMusic*(){.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_ResumeMusic*(){.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_RewindMusic*(){.cdecl, importc, dynlib: SDL_MixerLibName.} @@ -697,16 +692,16 @@ proc Mix_PausedMusic*(): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # order number) and for OGG music (set position in seconds), at the # moment. # -proc Mix_SetMusicPosition*(position: float64): int{.cdecl, +proc Mix_SetMusicPosition*(position: float64): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # Check the status of a specific channel. # If the specified channel is -1, check all channels. # proc Mix_Playing*(channel: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_PlayingMusic*(): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Stop music and set external music playback command + # Stop music and set external music playback command proc Mix_SetMusicCMD*(command: cstring): int{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Synchro value is set by MikMod from modules while playing + # Synchro value is set by MikMod from modules while playing proc Mix_SetSynchroValue*(value: int): int{.cdecl, importc, dynlib: SDL_MixerLibName.} proc Mix_GetSynchroValue*(): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # @@ -714,29 +709,29 @@ proc Mix_GetSynchroValue*(): int{.cdecl, importc, dynlib: SDL_MixerLibName.} # Returns nil if it's an invalid channel, or there's no chunk associated. # proc Mix_GetChunk*(channel: int): PMix_Chunk{.cdecl, importc, dynlib: SDL_MixerLibName.} - # Close the mixer, halting all playing audio + # Close the mixer, halting all playing audio proc Mix_CloseAudio*(){.cdecl, importc, dynlib: SDL_MixerLibName.} - # We'll use SDL for reporting errors + # We'll use SDL for reporting errors proc Mix_SetError*(fmt: cstring) proc Mix_GetError*(): cstring # implementation -proc SDL_MIXER_VERSION(X: var TSDL_version) = +proc SDL_MIXER_VERSION(X: var TSDL_version) = X.major = SDL_MIXER_MAJOR_VERSION X.minor = SDL_MIXER_MINOR_VERSION X.patch = SDL_MIXER_PATCHLEVEL -proc Mix_LoadWAV(filename: cstring): PMix_Chunk = +proc Mix_LoadWAV(filename: cstring): PMix_Chunk = result = Mix_LoadWAV_RW(SDL_RWFromFile(filename, "rb"), 1) -proc Mix_PlayChannel(channel: int, chunk: PMix_Chunk, loops: int): int = +proc Mix_PlayChannel(channel: int, chunk: PMix_Chunk, loops: int): int = result = Mix_PlayChannelTimed(channel, chunk, loops, - 1) -proc Mix_FadeInChannel(channel: int, chunk: PMix_Chunk, loops: int, ms: int): int = +proc Mix_FadeInChannel(channel: int, chunk: PMix_Chunk, loops: int, ms: int): int = result = Mix_FadeInChannelTimed(channel, chunk, loops, ms, - 1) -proc Mix_SetError(fmt: cstring) = +proc Mix_SetError(fmt: cstring) = SDL_SetError(fmt) -proc Mix_GetError(): cstring = +proc Mix_GetError(): cstring = result = SDL_GetError() |