Mercurial > pub > dyncall > bindings
view R/rdyncall/demo/playtune.R @ 29:6cc2b7fc7ea2
bigger pydc update:
- cleanups and refactoring
- python 2 fixes in var conversions (especially w/ respect to int vs long)
- fix to pydc.free() which didn't work at all
- fix to return python bool as actual bool
- test lib covering all conversions (manual verification, though :-/)
author | Tassilo Philipp |
---|---|
date | Wed, 08 Apr 2020 22:17:43 +0200 |
parents | 0cfcc391201f |
children |
line wrap: on
line source
# 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()