From baeb11c98ce077e453d659fdd8a7624e3bf3c419 Mon Sep 17 00:00:00 2001 From: kichikuou Date: Sat, 25 Feb 2017 18:31:24 +0900 Subject: [PATCH] In-process music module --- Makefile.in | 1 + config.h.in | 3 + configure | 22 ++ configure.ac | 16 + macros/Makefile.in | 1 + modules/AliceLogo/Makefile.in | 1 + modules/Confirm/Makefile.in | 1 + modules/Gpx/Makefile.in | 1 + modules/Makefile.in | 1 + modules/Math/Makefile.in | 1 + modules/MsgSkip/Makefile.in | 1 + modules/NIGHTDLL/Makefile.in | 1 + modules/NightDemonDemo/Makefile.in | 1 + modules/RandMT/Makefile.in | 1 + modules/SACT/Makefile.in | 1 + modules/ShArray/Makefile.in | 1 + modules/ShCalc/Makefile.in | 1 + modules/ShGraph/Makefile.in | 1 + modules/ShPort/Makefile.in | 1 + modules/ShSound/Makefile.in | 1 + modules/ShString/Makefile.in | 1 + modules/dDemo/Makefile.in | 1 + modules/eDemo/Makefile.in | 1 + modules/eeDemo/Makefile.in | 1 + modules/lib/Makefile.in | 1 + modules/nDEMO/Makefile.in | 1 + modules/nDEMOE/Makefile.in | 1 + modules/oDEMO/Makefile.in | 1 + modules/oujimisc/Makefile.in | 1 + modules/tDemo/Makefile.in | 1 + src/Makefile.am | 4 +- src/Makefile.in | 22 +- src/menu.c | 1 - src/menu_callback.c | 1 - src/music.h | 80 +---- src/music_client.c | 2 +- src/music_client.h | 3 +- src/music_inprocess.c | 464 +++++++++++++++++++++++++++++ src/music_ipc.h | 104 +++++++ src/music_private.h | 82 +++++ src/music_server.c | 2 +- src/music_server.h | 57 +--- 42 files changed, 736 insertions(+), 154 deletions(-) create mode 100644 src/music_inprocess.c create mode 100644 src/music_ipc.h create mode 100644 src/music_private.h diff --git a/Makefile.in b/Makefile.in index bd1eaac..0aa9e8c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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@ diff --git a/config.h.in b/config.h.in index db868b1..68a8fa5 100644 --- a/config.h.in +++ b/config.h.in @@ -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 diff --git a/configure b/configure index 4ffb0e5..b63f06d 100755 --- a/configure +++ b/configure @@ -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 diff --git a/configure.ac b/configure.ac index 3fc0463..733cac6 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/macros/Makefile.in b/macros/Makefile.in index 981af34..1e75483 100644 --- a/macros/Makefile.in +++ b/macros/Makefile.in @@ -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@ diff --git a/modules/AliceLogo/Makefile.in b/modules/AliceLogo/Makefile.in index 4bece28..95e8be0 100644 --- a/modules/AliceLogo/Makefile.in +++ b/modules/AliceLogo/Makefile.in @@ -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@ diff --git a/modules/Confirm/Makefile.in b/modules/Confirm/Makefile.in index 55e474a..c364f0e 100644 --- a/modules/Confirm/Makefile.in +++ b/modules/Confirm/Makefile.in @@ -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@ diff --git a/modules/Gpx/Makefile.in b/modules/Gpx/Makefile.in index d9d49c9..9328ec4 100644 --- a/modules/Gpx/Makefile.in +++ b/modules/Gpx/Makefile.in @@ -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@ diff --git a/modules/Makefile.in b/modules/Makefile.in index 4229fe5..d9e15e3 100644 --- a/modules/Makefile.in +++ b/modules/Makefile.in @@ -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@ diff --git a/modules/Math/Makefile.in b/modules/Math/Makefile.in index dcc4683..13f2ac4 100644 --- a/modules/Math/Makefile.in +++ b/modules/Math/Makefile.in @@ -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@ diff --git a/modules/MsgSkip/Makefile.in b/modules/MsgSkip/Makefile.in index fc1ead4..8414354 100644 --- a/modules/MsgSkip/Makefile.in +++ b/modules/MsgSkip/Makefile.in @@ -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@ diff --git a/modules/NIGHTDLL/Makefile.in b/modules/NIGHTDLL/Makefile.in index 4f4957b..e68d117 100644 --- a/modules/NIGHTDLL/Makefile.in +++ b/modules/NIGHTDLL/Makefile.in @@ -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@ diff --git a/modules/NightDemonDemo/Makefile.in b/modules/NightDemonDemo/Makefile.in index 03574e6..de00eec 100644 --- a/modules/NightDemonDemo/Makefile.in +++ b/modules/NightDemonDemo/Makefile.in @@ -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@ diff --git a/modules/RandMT/Makefile.in b/modules/RandMT/Makefile.in index f132a7c..34d4f50 100644 --- a/modules/RandMT/Makefile.in +++ b/modules/RandMT/Makefile.in @@ -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@ diff --git a/modules/SACT/Makefile.in b/modules/SACT/Makefile.in index 74e9866..74cbcd5 100644 --- a/modules/SACT/Makefile.in +++ b/modules/SACT/Makefile.in @@ -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@ diff --git a/modules/ShArray/Makefile.in b/modules/ShArray/Makefile.in index fb2b3a6..e5ddfcf 100644 --- a/modules/ShArray/Makefile.in +++ b/modules/ShArray/Makefile.in @@ -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@ diff --git a/modules/ShCalc/Makefile.in b/modules/ShCalc/Makefile.in index db2b226..aa81209 100644 --- a/modules/ShCalc/Makefile.in +++ b/modules/ShCalc/Makefile.in @@ -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@ diff --git a/modules/ShGraph/Makefile.in b/modules/ShGraph/Makefile.in index 4ae7f4e..1ebc2b4 100644 --- a/modules/ShGraph/Makefile.in +++ b/modules/ShGraph/Makefile.in @@ -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@ diff --git a/modules/ShPort/Makefile.in b/modules/ShPort/Makefile.in index e5f4687..90927aa 100644 --- a/modules/ShPort/Makefile.in +++ b/modules/ShPort/Makefile.in @@ -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@ diff --git a/modules/ShSound/Makefile.in b/modules/ShSound/Makefile.in index 362c2fe..1aaadbb 100644 --- a/modules/ShSound/Makefile.in +++ b/modules/ShSound/Makefile.in @@ -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@ diff --git a/modules/ShString/Makefile.in b/modules/ShString/Makefile.in index 37968fd..7580565 100644 --- a/modules/ShString/Makefile.in +++ b/modules/ShString/Makefile.in @@ -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@ diff --git a/modules/dDemo/Makefile.in b/modules/dDemo/Makefile.in index 0104199..4f7521c 100644 --- a/modules/dDemo/Makefile.in +++ b/modules/dDemo/Makefile.in @@ -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@ diff --git a/modules/eDemo/Makefile.in b/modules/eDemo/Makefile.in index 8b23388..735e75a 100644 --- a/modules/eDemo/Makefile.in +++ b/modules/eDemo/Makefile.in @@ -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@ diff --git a/modules/eeDemo/Makefile.in b/modules/eeDemo/Makefile.in index 3f5fe2b..2d760d3 100644 --- a/modules/eeDemo/Makefile.in +++ b/modules/eeDemo/Makefile.in @@ -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@ diff --git a/modules/lib/Makefile.in b/modules/lib/Makefile.in index acba61e..0f4286b 100644 --- a/modules/lib/Makefile.in +++ b/modules/lib/Makefile.in @@ -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@ diff --git a/modules/nDEMO/Makefile.in b/modules/nDEMO/Makefile.in index ad867dd..752fd4c 100644 --- a/modules/nDEMO/Makefile.in +++ b/modules/nDEMO/Makefile.in @@ -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@ diff --git a/modules/nDEMOE/Makefile.in b/modules/nDEMOE/Makefile.in index 8f32704..52e8f02 100644 --- a/modules/nDEMOE/Makefile.in +++ b/modules/nDEMOE/Makefile.in @@ -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@ diff --git a/modules/oDEMO/Makefile.in b/modules/oDEMO/Makefile.in index ae66f08..7553700 100644 --- a/modules/oDEMO/Makefile.in +++ b/modules/oDEMO/Makefile.in @@ -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@ diff --git a/modules/oujimisc/Makefile.in b/modules/oujimisc/Makefile.in index 2e22066..276bf8f 100644 --- a/modules/oujimisc/Makefile.in +++ b/modules/oujimisc/Makefile.in @@ -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@ diff --git a/modules/tDemo/Makefile.in b/modules/tDemo/Makefile.in index 6754752..63d83ec 100644 --- a/modules/tDemo/Makefile.in +++ b/modules/tDemo/Makefile.in @@ -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@ diff --git a/src/Makefile.am b/src/Makefile.am index 9b81861..d5ac5e5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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) diff --git a/src/Makefile.in b/src/Makefile.in index 3216bcb..588c77c 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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@ diff --git a/src/menu.c b/src/menu.c index ff6c1bf..bf3f390 100644 --- a/src/menu.c +++ b/src/menu.c @@ -30,7 +30,6 @@ #include "menu_callback.h" #include "nact.h" #include "imput.h" -#include "music.h" static boolean menu_initilized = FALSE; diff --git a/src/menu_callback.c b/src/menu_callback.c index 58e8bf8..a0a0a1a 100644 --- a/src/menu_callback.c +++ b/src/menu_callback.c @@ -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 ã�ŒæŠ¼ã�•れã�Ÿã�‹ã�©ã�†ã�‹ */ diff --git a/src/music.h b/src/music.h index cecfdfb..d47637c 100644 --- a/src/music.h +++ b/src/music.h @@ -1,5 +1,5 @@ /* - * music.h music sever/client shared information + * music.h music interface * * Copyright (C) 1997-1998 Masaki Chikama (Wren) * 1998- @@ -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 - -/* 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(); diff --git a/src/music_client.c b/src/music_client.c index e05330d..4920dad 100644 --- a/src/music_client.c +++ b/src/music_client.c @@ -32,7 +32,7 @@ #include #include "portab.h" -#include "music.h" +#include "music_ipc.h" #include "music_client.h" #include "counter.h" #include "pcmlib.h" diff --git a/src/music_client.h b/src/music_client.h index d2cc0a4..9485aa9 100644 --- a/src/music_client.h +++ b/src/music_client.h @@ -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); diff --git a/src/music_inprocess.c b/src/music_inprocess.c new file mode 100644 index 0000000..aed8367 --- /dev/null +++ b/src/music_inprocess.c @@ -0,0 +1,464 @@ +/* + * music_inprocess.c In-process music module + * + * Copyright (C) 1997-1998 Masaki Chikama (Wren) + * 1998- + * + * 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¤Î¾ì¹ç¤Ï̵¸Â, ¤½¤ì°Ê³°¤Ï£±²ó¤Î¤ß) + */ +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; +} diff --git a/src/music_ipc.h b/src/music_ipc.h new file mode 100644 index 0000000..1d70047 --- /dev/null +++ b/src/music_ipc.h @@ -0,0 +1,104 @@ +/* + * music_ipc.h music sever/client shared information + * + * Copyright (C) 1997-1998 Masaki Chikama (Wren) + * 1998- + * + * 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 + +/* 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__ */ diff --git a/src/music_private.h b/src/music_private.h new file mode 100644 index 0000000..2fdcbf1 --- /dev/null +++ b/src/music_private.h @@ -0,0 +1,82 @@ +/* + * music_private.h music private data + * + * Copyright (C) 1997-1998 Masaki Chikama (Wren) + * 1998- + * + * 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 + +#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__ */ diff --git a/src/music_server.c b/src/music_server.c index dc70350..06d958c 100644 --- a/src/music_server.c +++ b/src/music_server.c @@ -33,7 +33,7 @@ #include #include "portab.h" -#include "music.h" +#include "music_ipc.h" #include "system.h" #include "music_server.h" #include "music_fader.h" diff --git a/src/music_server.h b/src/music_server.h index b447cbb..a7c7fc0 100644 --- a/src/music_server.h +++ b/src/music_server.h @@ -24,65 +24,10 @@ #ifndef __MUSIC_SERVER_H__ #define __MUSIC_SERVER_H__ -#include - -#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__ */