Better integration of XMMS-CTL, compile with 'make BASE_CFLAGS=-DXMMSCTL build_release'

This commit is contained in:
eukos 2015-08-23 03:16:34 +02:00
parent 3594406e45
commit 8fce28734b
5 changed files with 55 additions and 17 deletions

View file

@ -36,7 +36,7 @@ BUILD_RELEASE_DIR=.release
CC=gcc -m32
BASE_CFLAGS=-Dstricmp=strcasecmp -Wunused -I./include/
override BASE_CFLAGS += -Dstricmp=strcasecmp -Wunused -I./include/
RELEASE_CFLAGS=$(BASE_CFLAGS) -O2 -funroll-loops -ffast-math -fomit-frame-pointer -funsigned-char -fno-strength-reduce
DEBUG_CFLAGS=$(BASE_CFLAGS) -g
LDFLAGS=-lm -ldl
@ -181,6 +181,7 @@ NGUNIX_OBJS = \
$(BUILDDIR)/wad.o \
$(BUILDDIR)/world.o \
$(BUILDDIR)/tracker_linux.o \
$(BUILDDIR)/xmms-ctl.o \
$(BUILDDIR)/cd_null.o \
$(BUILDDIR)/sys_linux.o \
$(BUILDDIR)/vid_x.o \
@ -534,6 +535,9 @@ $(BUILDDIR)/world.o : $(MOUNT_DIR)/world.c
$(BUILDDIR)/tracker_linux.o : $(MOUNT_DIR)/../tracker/tracker_linux.c
$(DO_DUMB)
$(BUILDDIR)/xmms-ctl.o : $(MOUNT_DIR)/../audio/xmms-ctl.c
$(DO_DUMB)
$(BUILDDIR)/cd_null.o : $(MOUNT_DIR)/../audio/cd_null.c
$(DO_CC)

View file

@ -315,6 +315,10 @@ void S_Shutdown(void)
#endif
Tracker_Shutdown();
#ifdef XMMSCTL
XMMS_Shutdown();
#endif
shm = 0;
sound_started = 0;

View file

@ -20,6 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "globaldef.h"
#ifdef XMMSCTL
static int xmms_loop = 1;
static int xmms_track;
@ -53,7 +54,7 @@ int XMMS_GetValue(char *parm)
return value;
}
void Tracker_Play(byte track, qboolean looping)
void XMMS_Play(byte track, qboolean looping)
{
char buffer [32];
int ctltemp;
@ -81,7 +82,7 @@ void Tracker_Play(byte track, qboolean looping)
Con_Printf("XMMS: Now playing song %i, looping %i\n", xmms_track, xmms_loop);
}
void Tracker_Stop(void)
void XMMS_Stop(void)
{
system("xmms-ctl -stop");
xmms_wasplaying = false;
@ -91,7 +92,7 @@ void Tracker_Stop(void)
}
void Tracker_Pause(void)
void XMMS_Pause(void)
{
system("xmms-ctl -pause");
xmms_wasplaying = xmms_playing;
@ -101,7 +102,7 @@ void Tracker_Pause(void)
}
void Tracker_Resume(void)
void XMMS_Resume(void)
{
if (!xmms_wasplaying)
return;
@ -111,7 +112,7 @@ void Tracker_Resume(void)
Con_Printf("XMMS: Resuming track %i\n", xmms_track);
}
void Tracker_Update(void)
void XMMS_Update(void)
{
}
@ -127,25 +128,25 @@ static void XMMS_f (void)
if (Q_strcasecmp(command, "play") == 0)
{
Tracker_Play((byte)Q_atoi(Cmd_Argv (2)), false);
XMMS_Play((byte)Q_atoi(Cmd_Argv (2)), false);
return;
}
if (Q_strcasecmp(command, "stop") == 0)
{
Tracker_Stop();
XMMS_Stop();
return;
}
if (Q_strcasecmp(command, "pause") == 0)
{
Tracker_Pause();
XMMS_Pause();
return;
}
if (Q_strcasecmp(command, "resume") == 0)
{
Tracker_Resume();
XMMS_Resume();
return;
}
@ -156,7 +157,7 @@ static void XMMS_f (void)
}
}
int Tracker_Init(void)
int XMMS_Init(void)
{
FILE *fp;
fp = popen("/usr/local/bin/xmms-ctl", "r");
@ -177,12 +178,13 @@ int Tracker_Init(void)
}
void Tracker_Shutdown(void)
void XMMS_Shutdown(void)
{
if(XMMS_GetValue("-get-advance") != xmms_old_advance)
system("xmms-ctl -set-advance");
if(!XMMS_GetValue("-get-repeat") != xmms_old_repeat)
system("xmms-ctl -set-repeat");
Tracker_Stop(); // Because requested
XMMS_Stop(); // Because requested
}
#endif

View file

@ -1460,6 +1460,10 @@ void CL_ParseServerMessage (void)
if (cl.paused)
{
Tracker_Pause ();
#ifdef XMMSCTL
XMMS_Pause();
#endif
#ifdef _WIN32
VID_HandlePause (true);
#endif
@ -1467,6 +1471,10 @@ void CL_ParseServerMessage (void)
else
{
Tracker_Resume ();
#ifdef XMMSCTL
XMMS_Resume();
#endif
#ifdef _WIN32
VID_HandlePause (false);
#endif
@ -1527,9 +1535,19 @@ void CL_ParseServerMessage (void)
cl.cdtrack = MSG_ReadByte ();
cl.looptrack = MSG_ReadByte ();
if ( (cls.demoplayback || cls.demorecording) && (cls.forcetrack != -1) )
{
Tracker_Play ((byte)cls.forcetrack, true);
#ifdef XMMSCTL
XMMS_Play ((byte)cls.forcetrack, true);
#endif
}
else
{
Tracker_Play ((byte)cl.cdtrack, true);
#ifdef XMMSCTL
XMMS_Play ((byte)cl.cdtrack, true);
#endif
}
break;
#endif

View file

@ -1333,11 +1333,16 @@ void Host_Init (quakeparms_t *parms)
#endif
#ifndef BENCH
CDAudio_Init ();
Tracker_Init ();
Sbar_Init ();
CDAudio_Init ();
Tracker_Init ();
#ifdef XMMSCTL
XMMS_Init();
#endif
CL_Init ();
Sbar_Init ();
#endif
CL_Init ();
#if defined(_WIN32) || defined(DOSQUAKE) // on non dos/win32, mouse comes before video for security reasons
IN_Init ();
@ -1387,6 +1392,11 @@ void Host_Shutdown(void)
#endif
CDAudio_Shutdown ();
Tracker_Shutdown ();
#ifdef XMMSCTL
XMMS_Shutdown();
#endif
NET_Shutdown ();
S_Shutdown();
IN_Shutdown ();