Update of /project/pal/cvsroot/pal In directory clnet:/tmp/cvs-serv13419
Modified Files: ffi.lisp package.lisp pal.lisp todo.txt Log Message: Added fading arguments to play-music/halt-music.
--- /project/pal/cvsroot/pal/ffi.lisp 2007/08/30 21:11:23 1.19 +++ /project/pal/cvsroot/pal/ffi.lisp 2007/09/07 07:55:16 1.20 @@ -639,9 +639,15 @@
(cffi:defcfun ("Mix_HaltMusic" halt-music) :int)
+(cffi:defcfun ("Mix_FadeOutMusic" fade-out-music) :int + (fade :int)) + (cffi:defcfun ("Mix_LoadMUS" load-music) :pointer (file :string))
+(cffi:defcfun ("Mix_FadeInMusic" fade-in-music) :int + (music :pointer) (loops :int) (fade :int)) + (cffi:defcfun ("Mix_PlayMusic" play-music) :int (music :pointer) (loops :int))
--- /project/pal/cvsroot/pal/package.lisp 2007/08/30 09:22:19 1.16 +++ /project/pal/cvsroot/pal/package.lisp 2007/09/07 07:55:16 1.17 @@ -4,6 +4,8 @@ (:use :common-lisp) (:export #:+NO-EVENT+ #:+gl-line-smooth+ + #:fade-out-music + #:fade-in-music #:make-font #:+gl-pack-alignment+ #:gl-flush --- /project/pal/cvsroot/pal/pal.lisp 2007/08/30 21:11:23 1.29 +++ /project/pal/cvsroot/pal/pal.lisp 2007/09/07 07:55:16 1.30 @@ -56,7 +56,7 @@ (when *pal-running* (close-pal)) (pal-ffi:init (logior pal-ffi:+init-video+ pal-ffi:+init-audio+)) - (pal-ffi:open-audio 22050 pal-ffi:+audio-s16+ 0 2048) + (pal-ffi:open-audio 22050 pal-ffi:+audio-s16+ 0 1024) (pal-ffi:gl-set-attribute pal-ffi:+gl-depth-size+ 0) (pal-ffi:gl-set-attribute pal-ffi:+gl-doublebuffer+ 1) (let ((surface (pal-ffi::set-video-mode @@ -762,19 +762,26 @@ (let ((music (pal-ffi::make-music :music music))) (pal-ffi:register-resource music))))
-(defun play-music (music &key (loops t) (volume 255)) +(defun play-music (music &key (loops t) (volume 255) (fade 0)) "Volume 0-255. Loops is: t = forever, nil = once, number = number of loops" (pal-ffi:volume-music (1+ (truncate volume 2))) - (pal-ffi:play-music (pal-ffi:music-music music) (cond ((eq loops t) -1) - ((null loops) 0) - (t (truncate loops))))) + (if (> fade 0) + (pal-ffi:fade-in-music (pal-ffi:music-music music) (cond ((eq loops t) -1) + ((null loops) 0) + (t (truncate loops))) + fade) + (pal-ffi:play-music (pal-ffi:music-music music) (cond ((eq loops t) -1) + ((null loops) 0) + (t (truncate loops))))))
(defun set-music-volume (volume) "Volume 0-255" (pal-ffi:volume-music (1+ (truncate volume 2))))
-(defun halt-music () - (pal-ffi:halt-music)) +(defun halt-music (&optional fade) + (if fade + (pal-ffi:fade-out-music fade) + (pal-ffi:halt-music)))
--- /project/pal/cvsroot/pal/todo.txt 2007/08/30 09:02:24 1.17 +++ /project/pal/cvsroot/pal/todo.txt 2007/09/07 07:55:16 1.18 @@ -4,9 +4,6 @@
- Implement image mirroring, tiles and animation.
-- Add more complex sound/music handling functions, channel set volume/dir, - fade/etc. music. - - Box/box/line/circle etc. overlap functions, faster v-dist.
- Correct aspect ratio when fullscreen on widescreen displays.