diff R/rdyncall/demo/playtune.R @ 0:0cfcc391201f

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:26:28 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/R/rdyncall/demo/playtune.R	Thu Mar 19 22:26:28 2015 +0100
@@ -0,0 +1,35 @@
+
+# Package: rdyncall 
+# File: demo/playtune.R
+# Description: play a nice oldsch00l tune.
+# Uses: SDL/audio, SDL_mixer
+
+rsrc <- function(name) system.file(paste("demo-files",name,sep=.Platform$file.sep), package="rdyncall")
+music <- NULL
+init <- function()
+{
+  require(rdyncall)
+  dynport(SDL)
+  SDL_Init(SDL_INIT_AUDIO)
+  dynport(SDL_mixer)
+  Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, 2, 4096)
+  music <<- Mix_LoadMUS(rsrc("external.xm"))
+}
+cleanup <- function()
+{
+  stopTune()
+  Mix_FreeMusic(music)
+  Mix_CloseAudio()
+  SDL_Quit()
+}
+
+playTune <- function() {
+  Mix_PlayMusic(music, 1) 
+  cat("playing music... [to stop, call 'stopTune()']\n")
+}
+pauseTune <- function() Mix_PauseMusic()
+stopTune <- function() Mix_HaltMusic()  
+
+init()
+playTune()
+