In-process music module

This commit is contained in:
kichikuou
2017-02-26 18:24:23 +09:00
parent 956f78d1b7
commit baeb11c98c
42 changed files with 736 additions and 154 deletions
+1
View File
@@ -329,6 +329,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+3
View File
@@ -57,6 +57,9 @@
/* define this if you want to use MMX instructions */
#undef ENABLE_MMX
/* define this if you use music server */
#undef ENABLE_MUSIC_SERVER
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#undef ENABLE_NLS
Vendored
+22
View File
@@ -670,6 +670,7 @@ ESD_CFLAGS
ESD_CONFIG
ALSA_LIBS
ALSA_CFLAGS
SRC_MUSIC
SRC_GRAPHDEV
SDL
SDL2_CONFIG
@@ -874,6 +875,7 @@ enable_sdl
with_sdl_prefix
with_sdl_exec_prefix
enable_sdltest
enable_music_server
enable_audio
with_alsa_prefix
with_alsa_inc_prefix
@@ -1569,6 +1571,7 @@ Optional Features:
--disable-gtktest do not try to compile and run a test GTK+ program
--enable-sdl SDL default=no
--disable-sdltest Do not try to compile and run a test SDL program
--enable-music-server Server/client music architecture default=yes
--enable-audio=mode_list Enable audio (Specify comma separated mode list):
default: Automatically select audio device.
oss: OSS (Open Sound System) device
@@ -16494,6 +16497,25 @@ fi
# Check whether --enable-music-server was given.
if test "${enable_music_server+set}" = set; then :
enableval=$enable_music_server;
else
enable_music_server=yes
fi
SRC_MUSIC=
if test "x$enable_music_server" = xyes ; then
$as_echo "#define ENABLE_MUSIC_SERVER 1" >>confdefs.h
SRC_MUSIC="music.c music_client.c music_server.c"
else
SRC_MUSIC="music_inprocess.c"
fi
# Check whether --enable-audio was given.
if test "${enable_audio+set}" = set; then :
enableval=$enable_audio; enable_audio=$enableval
+16
View File
@@ -199,6 +199,22 @@ fi
AC_SUBST(SRC_GRAPHDEV)
dnl
dnl music architecture
dnl
AC_ARG_ENABLE(music-server,
[ --enable-music-server Server/client music architecture [default=yes] ],,
[ enable_music_server=yes ])
SRC_MUSIC=
if test "x$enable_music_server" = xyes ; then
AC_DEFINE(ENABLE_MUSIC_SERVER,1,[define this if you use music server])
SRC_MUSIC="music.c music_client.c music_server.c"
else
SRC_MUSIC="music_inprocess.c"
fi
AC_SUBST(SRC_MUSIC)
dnl
dnl audio check
dnl
+1
View File
@@ -243,6 +243,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -303,6 +303,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -329,6 +329,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -326,6 +326,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -329,6 +329,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -330,6 +330,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -308,6 +308,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+1
View File
@@ -323,6 +323,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
+3 -1
View File
@@ -14,7 +14,7 @@ AM_CFLAGS = @DEBUG_CFLAGS@ @X_CFLAGS@ @GTK_CFLAGS@ @ESD_CFLAGS@ @SDL_CFLAGS@ @EX
SRC_SYS35CMD = cmdb.c cmdc.c cmdd.c cmde.c cmdf.c cmdg.c cmdh.c cmdi.c cmdj.c cmdk.c cmdl.c cmdm.c cmdn.c cmdo.c cmdp.c cmdq.c cmds.c cmdt.c cmdu.c cmdv.c cmdw.c cmdy.c cmdz.c cmd2F.c cmd2F60.c
SRC_CG = pms.c vsp.c bmp.c qnt.c
SRC_MUS = music.c music_client.c music_server.c music_cdrom.c music_midi.c music_pcm.c music_fader.c wavfile.c wavmix.c audio.c midi.c cdrom.c sndcnv.c musstream.c pcmlib.c music_bgm.c musstream_wav.c musstream_ogg.c musstream_wav_ima.c
SRC_MUS = music_cdrom.c music_midi.c music_pcm.c music_fader.c wavfile.c wavmix.c audio.c midi.c cdrom.c sndcnv.c musstream.c pcmlib.c music_bgm.c musstream_wav.c musstream_ogg.c musstream_wav_ima.c
SRC_MISC = LittleEndian.c counter.c imput.c profile.c mt19937-1.c @JOY_S@.c utfsjis.c filecheck.c tempname.c list.c
SRC_SCO = cali.c scenario.c variable.c cmd_check.c hankana2sjis.c nact.c selection.c message.c savedata.c hankaku.c s39ain.c
SRC_GRAPH = ags.c font.c flood.c cg.c ecopy.c antialiase.c alpha_plane.c cursor.c
@@ -40,6 +40,7 @@ xsystem35_DEPENDENCIES = \
$(SRC_AUDIO:.c=.o) \
$(SRC_CDROM:.c=.o) \
$(SRC_MIDI:.c=.o) \
$(SRC_MUSIC:.c=.o) \
$(SRC_GRAPHDEV:.c=.o) \
$(SRC_FONT:.c=.o) \
$(SRC_ABLEND:.s=.o) \
@@ -61,6 +62,7 @@ xsystem35_LDADD = \
$(SRC_AUDIO:.c=.o) \
$(SRC_CDROM:.c=.o) \
$(SRC_MIDI:.c=.o) \
$(SRC_MUSIC:.c=.o) \
$(SRC_GRAPHDEV:.c=.o) \
$(SRC_FONT:.c=.o) \
$(SRC_MENU:.c=.o)
+10 -12
View File
@@ -125,14 +125,12 @@ am__objects_3 = cali.$(OBJEXT) scenario.$(OBJEXT) variable.$(OBJEXT) \
cmd_check.$(OBJEXT) hankana2sjis.$(OBJEXT) nact.$(OBJEXT) \
selection.$(OBJEXT) message.$(OBJEXT) savedata.$(OBJEXT) \
hankaku.$(OBJEXT) s39ain.$(OBJEXT)
am__objects_4 = music.$(OBJEXT) music_client.$(OBJEXT) \
music_server.$(OBJEXT) music_cdrom.$(OBJEXT) \
music_midi.$(OBJEXT) music_pcm.$(OBJEXT) music_fader.$(OBJEXT) \
wavfile.$(OBJEXT) wavmix.$(OBJEXT) audio.$(OBJEXT) \
midi.$(OBJEXT) cdrom.$(OBJEXT) sndcnv.$(OBJEXT) \
musstream.$(OBJEXT) pcmlib.$(OBJEXT) music_bgm.$(OBJEXT) \
musstream_wav.$(OBJEXT) musstream_ogg.$(OBJEXT) \
musstream_wav_ima.$(OBJEXT)
am__objects_4 = music_cdrom.$(OBJEXT) music_midi.$(OBJEXT) \
music_pcm.$(OBJEXT) music_fader.$(OBJEXT) wavfile.$(OBJEXT) \
wavmix.$(OBJEXT) audio.$(OBJEXT) midi.$(OBJEXT) \
cdrom.$(OBJEXT) sndcnv.$(OBJEXT) musstream.$(OBJEXT) \
pcmlib.$(OBJEXT) music_bgm.$(OBJEXT) musstream_wav.$(OBJEXT) \
musstream_ogg.$(OBJEXT) musstream_wav_ima.$(OBJEXT)
am__objects_5 = ags.$(OBJEXT) font.$(OBJEXT) flood.$(OBJEXT) \
cg.$(OBJEXT) ecopy.$(OBJEXT) antialiase.$(OBJEXT) \
alpha_plane.$(OBJEXT) cursor.$(OBJEXT)
@@ -335,6 +333,7 @@ SRC_FONT = @SRC_FONT@
SRC_GRAPHDEV = @SRC_GRAPHDEV@
SRC_MENU = @SRC_MENU@
SRC_MIDI = @SRC_MIDI@
SRC_MUSIC = @SRC_MUSIC@
STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
@@ -416,7 +415,7 @@ xsystem35_LDFLAGS = @EXTRALDFLAGS@
AM_CFLAGS = @DEBUG_CFLAGS@ @X_CFLAGS@ @GTK_CFLAGS@ @ESD_CFLAGS@ @SDL_CFLAGS@ @EXTRACFLAGS@ @VORBIS_CFLAGS@ -DMODULE_PATH=\"$(libdir)/@PACKAGE@\" -DLOCALEDIR=\""$(datadir)/locale"\"
SRC_SYS35CMD = cmdb.c cmdc.c cmdd.c cmde.c cmdf.c cmdg.c cmdh.c cmdi.c cmdj.c cmdk.c cmdl.c cmdm.c cmdn.c cmdo.c cmdp.c cmdq.c cmds.c cmdt.c cmdu.c cmdv.c cmdw.c cmdy.c cmdz.c cmd2F.c cmd2F60.c
SRC_CG = pms.c vsp.c bmp.c qnt.c
SRC_MUS = music.c music_client.c music_server.c music_cdrom.c music_midi.c music_pcm.c music_fader.c wavfile.c wavmix.c audio.c midi.c cdrom.c sndcnv.c musstream.c pcmlib.c music_bgm.c musstream_wav.c musstream_ogg.c musstream_wav_ima.c
SRC_MUS = music_cdrom.c music_midi.c music_pcm.c music_fader.c wavfile.c wavmix.c audio.c midi.c cdrom.c sndcnv.c musstream.c pcmlib.c music_bgm.c musstream_wav.c musstream_ogg.c musstream_wav_ima.c
SRC_MISC = LittleEndian.c counter.c imput.c profile.c mt19937-1.c @JOY_S@.c utfsjis.c filecheck.c tempname.c list.c
SRC_SCO = cali.c scenario.c variable.c cmd_check.c hankana2sjis.c nact.c selection.c message.c savedata.c hankaku.c s39ain.c
SRC_GRAPH = ags.c font.c flood.c cg.c ecopy.c antialiase.c alpha_plane.c cursor.c
@@ -440,6 +439,7 @@ xsystem35_DEPENDENCIES = \
$(SRC_AUDIO:.c=.o) \
$(SRC_CDROM:.c=.o) \
$(SRC_MIDI:.c=.o) \
$(SRC_MUSIC:.c=.o) \
$(SRC_GRAPHDEV:.c=.o) \
$(SRC_FONT:.c=.o) \
$(SRC_ABLEND:.s=.o) \
@@ -461,6 +461,7 @@ xsystem35_LDADD = \
$(SRC_AUDIO:.c=.o) \
$(SRC_CDROM:.c=.o) \
$(SRC_MIDI:.c=.o) \
$(SRC_MUSIC:.c=.o) \
$(SRC_GRAPHDEV:.c=.o) \
$(SRC_FONT:.c=.o) \
$(SRC_MENU:.c=.o)
@@ -611,14 +612,11 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/message.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mt19937-1.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/music.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/music_bgm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/music_cdrom.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/music_client.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/music_fader.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/music_midi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/music_pcm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/music_server.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/musstream.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/musstream_ogg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/musstream_wav.Po@am__quote@
-1
View File
@@ -30,7 +30,6 @@
#include "menu_callback.h"
#include "nact.h"
#include "imput.h"
#include "music.h"
static boolean menu_initilized = FALSE;
-1
View File
@@ -30,7 +30,6 @@
#include "menu_gui.h"
#include "nact.h"
#include "imput.h"
#include "music.h"
#include "s39init.h"
boolean menu_ok_exit; /* exit window で OK が押されたかどうか */
+1 -79
View File
@@ -1,5 +1,5 @@
/*
* music.h music sever/client shared information
* music.h music interface
*
* Copyright (C) 1997-1998 Masaki Chikama (Wren) <chikama@kasumi.ipl.mech.nagoya-u.ac.jp>
* 1998- <masaki-c@is.aist-nara.ac.jp>
@@ -19,88 +19,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
/* $Id: music.h,v 1.25 2003/11/16 15:29:52 chikama Exp $ */
#ifndef __MUSIC_H__
#define __MUSIC_H__
#include <stdint.h>
/* music command */
enum {
MUS_CDROM_START, /* 0 */
MUS_CDROM_STOP,
MUS_CDROM_GETPOSITION,
MUS_CDROM_GETMAXTRACK,
MUS_PCM_START,
MUS_PCM_STOP,
MUS_PCM_LOAD_NO,
MUS_PCM_LOAD_MEM,
MUS_PCM_LOAD_LRSW,
MUS_PCM_UNLOAD,
MUS_PCM_GETPOSITION,
MUS_PCM_WAITEND,
MUS_PCM_WAITTIME,
MUS_PCM_GETWAVETIME,
MUS_FADE_START,
MUS_FADE_STOP,
MUS_FADE_GETSTATE,
MUS_FADE_GETLEVEL,
MUS_MIDI_START,
MUS_MIDI_STOP,
MUS_MIDI_PAUSE,
MUS_MIDI_UNPAUSE,
MUS_MIDI_GETPOSITION,
MUS_MIDI_GETFLAG,
MUS_MIDI_SETFLAG,
MUS_MIXER_GETLEVEL,
MUS_MIXER_SETVOLVAL,
MUS_BGM_PLAY,
MUS_BGM_STOP,
MUS_BGM_STOPALL,
MUS_BGM_FADE,
MUS_BGM_GETPOS,
MUS_BGM_GETLEN,
MUS_BGM_WAIT,
MUS_BGM_WAITPOS,
MUS_GET_VALIDSUBSYSTEM,
MUS_EXIT
};
/* socket file */
#define XSYS35MUSSOCK "/xsystem35_sock"
#define XSYS35_PROTOCOL_VERSION 1
typedef struct {
uint16_t version;
uint16_t command;
uint32_t data_length;
} ClientPktHeader;
typedef struct {
uint16_t version;
uint32_t data_length;
} ServerPktHeader;
typedef struct {
ClientPktHeader hdr;
void* data;
int fd;
} PacketNode;
typedef struct {
boolean cdrom;
boolean midi;
boolean pcm;
} ValidSubsystem;
/* init and exit */
extern int mus_init();
extern int mus_exit();
+1 -1
View File
@@ -32,7 +32,7 @@
#include <stdint.h>
#include "portab.h"
#include "music.h"
#include "music_ipc.h"
#include "music_client.h"
#include "counter.h"
#include "pcmlib.h"
+1 -2
View File
@@ -86,10 +86,9 @@ extern int mus_bgm_stop(int no, int time);
extern int mus_bgm_stopall(int time);
extern int mus_bgm_fade(int no, int time, int vol);
extern int mus_bgm_getpos(int no);
extern int mus_bgm_getlen(int no);
extern int mus_bgm_getlength(int no);
extern int mus_bgm_wait(int no, int timeout);
extern int mus_bgm_waitpos(int no, int index);
extern int mus_bgm_getlength(int no);
/* volume valaner */
extern int mus_vol_set_valance(int *vols, int num);
+464
View File
@@ -0,0 +1,464 @@
/*
* music_inprocess.c In-process music module
*
* Copyright (C) 1997-1998 Masaki Chikama (Wren) <chikama@kasumi.ipl.mech.nagoya-u.ac.jp>
* 1998- <masaki-c@is.aist-nara.ac.jp>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "portab.h"
#include "music.h"
#include "music_client.h"
#include "music_private.h"
struct _musprvdat musprv;
int mus_init() {
return OK;
}
int mus_exit() {
return OK;
}
/*
* cdrom の演奏開始
* track: トラック番号 (第一トラックは 1)
* loop : 繰り返し回数 (0の場合は無限)
*/
int mus_cdrom_start(int track, int loop) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* cdrom の演奏停止
*/
int mus_cdrom_stop() {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* cdrom の演奏状態の取得
* info: 演奏時間(track/min/sec/frame)の状態を格納する場所
* 停止している場合は 999/999/999/999 が返る
*/
int mus_cdrom_get_playposition(cd_time *tm) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* cdrom の最大トラック数の取得
*
*/
int mus_cdrom_get_maxtrack() {
printf("%s not implemented\n", __func__);
return 0;
}
/*
* CDROM の有効/無効 フラグの取得
* return: FALASE -> 無効
* TRUE -> 有効
*/
boolean mus_cdrom_get_state() {
printf("%s not implemented\n", __func__);
return FALSE;
}
/*
* midi の演奏開始
* no : ファイル番号( no >= 1)
* loop: 繰り返し回数 (0の場合は無限)
*/
int mus_midi_start(int no, int loop) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* midi の演奏停止
*/
int mus_midi_stop(void) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* midi の一時停止
*/
int mus_midi_pause(void) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* midi の一時停止解除
*/
int mus_midi_unpause(void) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* midi の演奏状態の取得
* state: 演奏時間や番号の状態を格納する場所
* 停止している場合は 0 が入る
*/
int mus_midi_get_playposition(midiplaystate *state) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* midi の演奏 flag/variable の状態を設定する
* mode : 0 -> flag mode
* 1 -> variable mode
* index: flag/variable 番号
* val : 書き込む値
*/
int mus_midi_set_flag(int mode, int index, int val) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* midi の演奏 flag/variable の状態を取得する
* mode : 0 -> flag mode
* 1 -> variable mode
* index: flag/variable 番号
*
* return : flag/variable の値
*/
int mus_midi_get_flag(int mode, int index) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* MIDI の有効/無効 フラグの取得
* return: FALASE -> 無効
* TRUE -> 有効
*/
boolean mus_midi_get_state() {
printf("%s not implemented\n", __func__);
return FALSE;
}
/*
* WAV の演奏開始 (command S?)
* no : ファイル番号( no >= 1)
* loop: 繰り返し回数 (0の場合は無限)
*/
int mus_pcm_start(int no, int loop) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* WAV を左右 mix して演奏
* noL : 左用のファイル番号(noL >= 1)
* noR : 右用のファイル番号(noR >= 1)
* loop: 繰り返し数(0の場合は無限ループ)
*/
int mus_pcm_mix(int noL, int noR, int loop) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* WAV の演奏停止 (command S?)
* msec: 止まるまでの時間(msec), 0の場合はすぐに止まる
*/
int mus_pcm_stop(int msec) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* WAV ファイルをメモリ上に載せる
* no : ファイル番号( no >= 1)
*/
int mus_pcm_load(int no) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* WAV の演奏状態の取得
* pos: 演奏時間を格納する場所(msec)
* 停止している場合は 0 が入る
* loopしている場合は合計時間
*/
int mus_pcm_get_playposition(int *pos) {
printf("%s not implemented\n", __func__);
return NG;
}
/* pcm (Scommand) related function */
/*
* 指定のフォーマットで再生可能かどうか調べる
* bit : 8 or 16 bit
* rate: frequency
* ch : Mono or Stereo
* able: 可能かどうかの状態を受け取る場所
*/
int mus_pcm_check_ability(int bit, int rate, int ch, boolean *able) {
printf("%s not implemented\n", __func__);
*able = FALSE;
return NG;
}
/*
* PCM の有効/無効 フラグの取得
* return: FALASE -> 無効
* TRUE -> 有効
*/
boolean mus_pcm_get_state() {
printf("%s not implemented\n", __func__);
return FALSE;
}
/*
* フェード開始
* device: フェードするデバイス(MIX_MAXTER/MIX_PCM/....)
* time : 最終ボリュームまでに達する時間(msec)
* volume: 最終ボリューム
* stop: フェード終了時に演奏をストップするかどうか?
* 0: しない
* 1: する
*/
int mus_mixer_fadeout_start(int device, int time, int volume, int stop) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のデバイスが現在フェード中かどうかを調べる
* device: 指定デバイス
*
* return: TRUE -> フェード中
* FALSE -> フェード中でない
*/
boolean mus_mixer_fadeout_get_state(int device) {
printf("%s not implemented\n", __func__);
return FALSE;
}
/*
* 指定のデバイスのフェードを途中で止める
* device: 指定デバイス
*/
int mus_mixer_fadeout_stop(int device) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のデバイスのミキサーレベルを取得する
* device: 指定デバイス
*
* return: ミキサーレベル(0 - 100) (ゲーム内で設定された値)
*/
int mus_mixer_get_level(int device) {
printf("%s not implemented\n", __func__);
return 0;
}
/*
* 指定のチャンネルに wave file をロード
* ch : channel (0-127)
* num: ファイル番号 (1-65535)
*/
int mus_wav_load(int ch, int num) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のチャンネルから wave file を破棄
* ch : channel
*/
int mus_wav_unload(int ch) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* WAV の演奏開始 (wavXXXX)
* ch : 再生するチャンネル (0-127)
(あらかじめ mus_wav_loadでloadしておく)
* loop: 繰り返し回数 (0の場合は無限, それ以外は1回のみ)
*/
int mus_wav_play(int ch, int loop) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のチャンネルのWAVの演奏停止 (wavXXX)
* ch: channel
*/
int mus_wav_stop(int ch) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のチャンネルの演奏状態の取得
* ch: channel (0-127)
*
* return: 演奏時間(msec) 65535ms で飽和
*/
int mus_wav_get_playposition(int ch) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のチャンネルのWAVのフェード
* ch: channel(0-127)
* time : 最終ボリュームまでに達する時間(msec)
* volume: 最終ボリューム
* stop : フェード終了時に演奏をストップするかどうか?
* 0: しない
* 1: する
*/
int mus_wav_fadeout_start(int ch, int time, int volume, int stop) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のチャンネルのフェードを途中で止める
* ch: channel (0-127)
*/
int mus_wav_fadeout_stop(int ch) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のチャンネルが現在フェード中かどうかを調べる
* ch: channel
*
* return: TRUE -> フェード中
* FALSE -> フェード中でない
*/
boolean mus_wav_fadeout_get_state(int ch) {
printf("%s not implemented\n", __func__);
return FALSE;
}
/*
* 指定のチャンネルの再生が終了するまで待つ
* ch: channel (0-127)
*/
int mus_wav_waitend(int ch) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のチャンネルで時間待ち
* 再生していないならすぐに戻る。コマンドが発行された瞬間に演奏中で
* あれば、演奏が終っても指定時間経過するまで待つ。
* ch : channel (0-127)
* time: 待ち時間(msec)
*/
int mus_wav_waittime(int ch, int time) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のチャンネルのWAVデータの演奏時間の取得
* ch: channel
*
* return: 時間(msec) 65535ms で飽和
*/
int mus_wav_wavtime(int ch) {
printf("%s not implemented\n", __func__);
return 0;
}
/*
* 指定の channel に WAVFILE をセット
* ch: channel
* wfile: WAVFILE
*/
int mus_wav_sendfile(int ch, WAVFILE *wfile) {
printf("%s not implemented\n", __func__);
return NG;
}
/*
* 指定のチャンネルに wave file をLR反転してロード
* ch : channel (0-127)
* num: ファイル番号 (1-65535)
*/
int mus_wav_load_lrsw(int ch, int num) {
printf("%s not implemented\n", __func__);
return NG;
}
int mus_bgm_play(int no, int time, int vol) {
printf("%s not implemented\n", __func__);
return NG;
}
int mus_bgm_stop(int no, int time) {
printf("%s not implemented\n", __func__);
return NG;
}
int mus_bgm_stopall(int time) {
printf("%s not implemented\n", __func__);
return NG;
}
int mus_bgm_fade(int no, int time, int vol) {
printf("%s not implemented\n", __func__);
return NG;
}
int mus_bgm_getpos(int no) {
printf("%s not implemented\n", __func__);
return 0;
}
int mus_bgm_getlength(int no) {
printf("%s not implemented\n", __func__);
return 0;
}
int mus_bgm_wait(int no, int timeout) {
printf("%s not implemented\n", __func__);
return NG;
}
int mus_bgm_waitpos(int no, int index) {
printf("%s not implemented\n", __func__);
return NG;
}
int mus_vol_set_valance(int *vols, int num) {
printf("%s not implemented\n", __func__);
return NG;
}
+104
View File
@@ -0,0 +1,104 @@
/*
* music_ipc.h music sever/client shared information
*
* Copyright (C) 1997-1998 Masaki Chikama (Wren) <chikama@kasumi.ipl.mech.nagoya-u.ac.jp>
* 1998- <masaki-c@is.aist-nara.ac.jp>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
/* $Id: music.h,v 1.25 2003/11/16 15:29:52 chikama Exp $ */
#ifndef __MUSIC_IPC_H__
#define __MUSIC_IPC_H__
#include <stdint.h>
/* music command */
enum {
MUS_CDROM_START, /* 0 */
MUS_CDROM_STOP,
MUS_CDROM_GETPOSITION,
MUS_CDROM_GETMAXTRACK,
MUS_PCM_START,
MUS_PCM_STOP,
MUS_PCM_LOAD_NO,
MUS_PCM_LOAD_MEM,
MUS_PCM_LOAD_LRSW,
MUS_PCM_UNLOAD,
MUS_PCM_GETPOSITION,
MUS_PCM_WAITEND,
MUS_PCM_WAITTIME,
MUS_PCM_GETWAVETIME,
MUS_FADE_START,
MUS_FADE_STOP,
MUS_FADE_GETSTATE,
MUS_FADE_GETLEVEL,
MUS_MIDI_START,
MUS_MIDI_STOP,
MUS_MIDI_PAUSE,
MUS_MIDI_UNPAUSE,
MUS_MIDI_GETPOSITION,
MUS_MIDI_GETFLAG,
MUS_MIDI_SETFLAG,
MUS_MIXER_GETLEVEL,
MUS_MIXER_SETVOLVAL,
MUS_BGM_PLAY,
MUS_BGM_STOP,
MUS_BGM_STOPALL,
MUS_BGM_FADE,
MUS_BGM_GETPOS,
MUS_BGM_GETLEN,
MUS_BGM_WAIT,
MUS_BGM_WAITPOS,
MUS_GET_VALIDSUBSYSTEM,
MUS_EXIT
};
/* socket file */
#define XSYS35MUSSOCK "/xsystem35_sock"
#define XSYS35_PROTOCOL_VERSION 1
typedef struct {
uint16_t version;
uint16_t command;
uint32_t data_length;
} ClientPktHeader;
typedef struct {
uint16_t version;
uint32_t data_length;
} ServerPktHeader;
typedef struct {
ClientPktHeader hdr;
void* data;
int fd;
} PacketNode;
typedef struct {
boolean cdrom;
boolean midi;
boolean pcm;
} ValidSubsystem;
#endif /* __MUSIC_IPC_H__ */
+82
View File
@@ -0,0 +1,82 @@
/*
* music_private.h music private data
*
* Copyright (C) 1997-1998 Masaki Chikama (Wren) <chikama@kasumi.ipl.mech.nagoya-u.ac.jp>
* 1998- <masaki-c@is.aist-nara.ac.jp>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef __MUSIC_PRIVATE_H__
#define __MUSIC_PRIVATE_H__
#include <sys/poll.h>
#include "portab.h"
#include "list.h"
#include "cdrom.h"
#include "midi.h"
#include "audio.h"
#include "music_cdrom.h"
#include "music_midi.h"
#include "music_pcm.h"
struct _musprvdat {
boolean cd_valid;
boolean midi_valid;
boolean pcm_valid;
cdromdevice_t cddev;
mididevice_t mididev;
audiodevice_t audiodev;
chanfmt_t ofmt; /* audio output format */
cdobj_t cdrom; // cdrom object
midiobj_t midi; // midi object
// pcm object
/*
0: S comman 用
1-128: wavXXX 用
129: cdrom pipe 用
130: midi pipe 用
*/
pcmobj_t *pcm[128 + 1 + 2];
// ゲーム内での volume 設定 (%値)
int vol_master;
int vol_pcm;
int vol_midi;
int vol_cd;
int vol_pcm_sub[128 + 1 + 2]; // volval の channel
int volval[16]; // 各channel 毎の volume valance
// 最大トラック数
int cd_maxtrk;
List *pcmplist; // PCM多重再生用リスト
List *fadelist; // Faderリスト
// for polling
int nfds;
struct pollfd ufds[2];
};
#define prv musprv
extern struct _musprvdat musprv;
#endif /* __MUSIC_PRIVATE_H__ */
+1 -1
View File
@@ -33,7 +33,7 @@
#include <signal.h>
#include "portab.h"
#include "music.h"
#include "music_ipc.h"
#include "system.h"
#include "music_server.h"
#include "music_fader.h"
+1 -56
View File
@@ -24,65 +24,10 @@
#ifndef __MUSIC_SERVER_H__
#define __MUSIC_SERVER_H__
#include <sys/poll.h>
#include "portab.h"
#include "list.h"
#include "cdrom.h"
#include "midi.h"
#include "audio.h"
#include "music_cdrom.h"
#include "music_midi.h"
#include "music_pcm.h"
struct _musprvdat {
boolean cd_valid;
boolean midi_valid;
boolean pcm_valid;
cdromdevice_t cddev;
mididevice_t mididev;
audiodevice_t audiodev;
chanfmt_t ofmt; /* audio output format */
cdobj_t cdrom; // cdrom object
midiobj_t midi; // midi object
// pcm object
/*
0: S comman 用
1-128: wavXXX 用
129: cdrom pipe 用
130: midi pipe 用
*/
pcmobj_t *pcm[128 + 1 + 2];
// ゲーム内での volume 設定 (%値)
int vol_master;
int vol_pcm;
int vol_midi;
int vol_cd;
int vol_pcm_sub[128 + 1 + 2]; // volval の channel
int volval[16]; // 各channel 毎の volume valance
// 最大トラック数
int cd_maxtrk;
List *pcmplist; // PCM多重再生用リスト
List *fadelist; // Faderリスト
// for polling
int nfds;
struct pollfd ufds[2];
};
#include "music_private.h"
extern int musserv_init();
extern int musserv_exit();
extern void musserv_send_ack(int);
#define prv musprv
extern struct _musprvdat musprv;
#endif /* __MUSIC_SERVER_H__ */