📄 mikmod.bash
字号:
#!/bin/bash## And now for something completely different. :-)## With the GTK-server it is possible to open any library from a shellscript,# without using configfile, as is shown below.## Enjoy nice music from www.modarchive.org!## September 2008, PvE - tested with GTK-server 2.2.8 on Linux.##---------------------------------------------------------------------# Name of PIPE filedeclare PI=/tmp/bash.gtk.$$# File to load and playFILE="welcome.mod"#---------------------------------------------------------------------# Communication function; assignment function#---------------------------------------------------------------------function mikmod() { echo $1 > $PI; read MIKMOD < $PI; }function define() { $2 "$3"; eval $1="\"$MIKMOD\""; }# Start GTK-server in PIPE modegtk-server -fifo=$PI &while [ ! -p $PI ]; do continue; done# Open MikMod librarydefine MM mikmod "gtk_server_require libmikmod.so"if [[ $MM != "ok" ]]then echo "No MikMod found on this system! Please install from http://mikmod.raphnet.net/. Exiting..." mikmod "gtk_server_exit" exitfi# Define some mikmod callsmikmod "gtk_server_define MikMod_Init NONE BOOL 1 STRING"mikmod "gtk_server_define MikMod_RegisterAllDrivers NONE NONE 0"mikmod "gtk_server_define MikMod_RegisterAllLoaders NONE NONE 0"mikmod "gtk_server_define MikMod_Update NONE NONE 0"mikmod "gtk_server_define MikMod_Exit NONE NONE 0"mikmod "gtk_server_define Player_Load NONE POINTER 3 STRING INT BOOL"mikmod "gtk_server_define Player_Start NONE NONE 1 POINTER"mikmod "gtk_server_define Player_Active NONE BOOL 0"mikmod "gtk_server_define Player_Stop NONE NONE 0"mikmod "gtk_server_define Player_Free NONE NONE 1 POINTER"# Register all the driversmikmod "MikMod_RegisterAllDrivers"# Register all the module loadersmikmod "MikMod_RegisterAllLoaders"# initialize the librarydefine init mikmod "MikMod_Init ''"if [[ $init -ne 0 ]]then echo "Could not initialize sound." mikmod "gtk_server_exit" exitfi# Load module using 64 channelsdefine module mikmod "Player_Load $FILE 64 0"# Play musicif [[ $module -gt 0 ]]then # Start module mikmod "Player_Start $module" define active mikmod "Player_Active" # We're playing while [[ $active -gt 0 ]] do define active mikmod "Player_Active" # Lower the sleep value if your sound stutters #sleep 1 mikmod "MikMod_Update" done mikmod "Player_Stop" mikmod "Player_Free $module"else echo "Could not play module!"fi# Give upmikmod "MikMod_Exit"# Exit GTK-servermikmod "gtk_server_exit"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -