CD Audio Support.

This commit is contained in:
Steven Fuller 2001-11-25 22:07:35 +00:00 committed by Patryk Obara
parent b4a55b2618
commit 4508748944
4 changed files with 132 additions and 59 deletions

125
src/cdplayer.c Normal file
View file

@ -0,0 +1,125 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <SDL/SDL.h>
#include "fixer.h"
#include "win95/cd_player.h"
static int HaveCDROM = 0;
static SDL_CD *cdrom = NULL;
void CDDA_Start()
{
/*
fprintf(stderr, "CDDA_Start()\n");
*/
int numdrives;
if (!HaveCDROM) {
HaveCDROM = 1;
SDL_Init(SDL_INIT_CDROM);
}
if (cdrom != NULL)
CDDA_End();
numdrives = SDL_CDNumDrives();
if (numdrives == 0)
return;
cdrom = SDL_CDOpen(0);
}
void CDDA_End()
{
/*
fprintf(stderr, "CDDA_End()\n");
*/
if (cdrom != NULL) {
CDDA_Stop();
SDL_CDClose(cdrom);
}
cdrom = NULL;
}
void CDDA_ChangeVolume(int volume)
{
fprintf(stderr, "CDDA_ChangeVolume(%d)\n", volume);
}
int CDDA_CheckNumberOfTracks()
{
/*
fprintf(stderr, "CDDA_CheckNumberOfTracks()\n");
*/
if (cdrom == NULL)
return 0;
return cdrom->numtracks;
}
int CDDA_IsOn()
{
/*
fprintf(stderr, "CDDA_IsOn()\n");
*/
return (cdrom != NULL);
}
int CDDA_IsPlaying()
{
/*
fprintf(stderr, "CDDA_IsPlaying()\n");
*/
if (cdrom == NULL)
return 0;
return (SDL_CDStatus(cdrom) == CD_PLAYING);
}
void CDDA_Play(int CDDATrack)
{
/*
fprintf(stderr, "CDDA_Play(%d)\n", CDDATrack);
*/
if (cdrom == NULL)
return;
if (CD_INDRIVE(SDL_CDStatus(cdrom)))
SDL_CDPlayTracks(cdrom, CDDATrack-1, 0, 1, 0);
}
void CDDA_PlayLoop(int CDDATrack)
{
fprintf(stderr, "CDDA_PlayLoop(%d)\n", CDDATrack);
/* can't loop with SDL without a thread, so just play the track */
CDDA_Play(CDDATrack);
}
void CDDA_Stop()
{
/*
fprintf(stderr, "CDDA_Stop()\n");
*/
if (cdrom == NULL)
return;
if (CD_INDRIVE(SDL_CDStatus(cdrom)))
SDL_CDStop(cdrom);
}
void CDDA_SwitchOn()
{
/*
fprintf(stderr, "CDDA_SwitchOn()\n");
*/
}

View file

@ -308,63 +308,6 @@ void GenerateDirectDrawSurface()
int use_mmx_math = 0;
/* cd_player.c */
void CDDA_Start()
{
fprintf(stderr, "CDDA_Start()\n");
}
void CDDA_End()
{
fprintf(stderr, "CDDA_End()\n");
}
void CDDA_ChangeVolume(int volume)
{
fprintf(stderr, "CDDA_ChangeVolume(%d)\n", volume);
}
int CDDA_CheckNumberOfTracks()
{
fprintf(stderr, "CDDA_CheckNumberOfTracks()\n");
return 0;
}
int CDDA_IsOn()
{
fprintf(stderr, "CDDA_IsOn()\n");
return 0;
}
int CDDA_IsPlaying()
{
fprintf(stderr, "CDDA_IsPlaying()\n");
return 0;
}
void CDDA_Play(int CDDATrack)
{
fprintf(stderr, "CDDA_Play(%d)\n", CDDATrack);
}
void CDDA_PlayLoop(int CDDATrack)
{
fprintf(stderr, "CDDA_PlayLoop(%d)\n", CDDATrack);
}
void CDDA_Stop()
{
fprintf(stderr, "CDDA_Stop()\n");
}
void CDDA_SwitchOn()
{
fprintf(stderr, "CDDA_SwitchOn()\n");
}
/* dxlog.c */
void dx_str_log(char const * str, int line, char const * file)

View file

@ -1,3 +1,6 @@
#ifndef __WIN95_CDPLAYER_H__
#define __WIN95_CDPLAYER_H__
/* KJL 12:40:35 07/05/98 - This is code derived from Patrick's original stuff &
moved into it's own file. */
@ -107,4 +110,6 @@ extern void PlatCDDAManagementCallBack(WPARAM flags, LONG deviceId);
extern int CDPlayerVolume;
extern int CDPlayerVolume;
#endif