add --disable-audio configure option
git-svn-id: https://svn.musicpd.org/mpd/trunk@679 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
20
src/audio.c
20
src/audio.c
@@ -25,6 +25,9 @@
|
||||
#include <assert.h>
|
||||
#include <signal.h>
|
||||
|
||||
#ifdef HAVE_AUDIO
|
||||
#include <ao/ao.h>
|
||||
|
||||
int audio_write_size;
|
||||
|
||||
int audio_ao_driver_id;
|
||||
@@ -32,8 +35,10 @@ ao_option * audio_ao_options;
|
||||
|
||||
AudioFormat audio_format;
|
||||
ao_device * audio_device = NULL;
|
||||
#endif
|
||||
|
||||
void initAudioDriver() {
|
||||
#ifdef HAVE_AUDIO
|
||||
ao_info * ai;
|
||||
char * dup;
|
||||
char * stk1;
|
||||
@@ -107,15 +112,19 @@ void initAudioDriver() {
|
||||
}
|
||||
}
|
||||
free(dup);
|
||||
#endif
|
||||
}
|
||||
|
||||
void finishAudioDriver() {
|
||||
#ifdef HAVE_AUDIO
|
||||
ao_free_options(audio_ao_options);
|
||||
|
||||
ao_shutdown();
|
||||
#endif
|
||||
}
|
||||
|
||||
int isCurrentAudioFormat(AudioFormat * audioFormat) {
|
||||
#ifdef HAVE_AUDIO
|
||||
if(!audio_device || !audioFormat) return 0;
|
||||
|
||||
if(audio_format.bits!=audioFormat->bits ||
|
||||
@@ -124,11 +133,12 @@ int isCurrentAudioFormat(AudioFormat * audioFormat) {
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
int initAudio(AudioFormat * audioFormat) {
|
||||
#ifdef HAVE_AUDIO
|
||||
ao_sample_format format;
|
||||
|
||||
if(audio_device && !isCurrentAudioFormat(audioFormat)) {
|
||||
@@ -154,12 +164,13 @@ int initAudio(AudioFormat * audioFormat) {
|
||||
|
||||
if(audio_device==NULL) return -1;
|
||||
}
|
||||
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int playAudio(char * playChunk, int size) {
|
||||
#ifdef HAVE_AUDIO
|
||||
int send;
|
||||
|
||||
if(audio_device==NULL) {
|
||||
@@ -181,19 +192,23 @@ int playAudio(char * playChunk, int size) {
|
||||
size-=send;
|
||||
}
|
||||
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
void finishAudio() {
|
||||
#ifdef HAVE_AUDIO
|
||||
if(audio_device) {
|
||||
blockSignals();
|
||||
ao_close(audio_device);
|
||||
audio_device = NULL;
|
||||
unblockSignals();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void audioError() {
|
||||
#ifdef HAVE_AUDIO
|
||||
if(errno==AO_ENOTLIVE) {
|
||||
ERROR("not a live ao device\n");
|
||||
}
|
||||
@@ -203,4 +218,5 @@ void audioError() {
|
||||
else if(errno==AO_EBADOPTION) {
|
||||
ERROR("bad driver option\n");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@@ -24,7 +24,6 @@
|
||||
#include "mpd_types.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <ao/ao.h>
|
||||
|
||||
#define AUDIO_AO_DRIVER_DEFAULT "default"
|
||||
|
||||
@@ -34,9 +33,6 @@ typedef struct _AudioFormat {
|
||||
mpd_sint8 bits;
|
||||
} AudioFormat;
|
||||
|
||||
extern int audio_ao_driver_id;
|
||||
extern ao_option * audio_ao_options;
|
||||
|
||||
void initAudioDriver();
|
||||
|
||||
void finishAudioDriver();
|
||||
|
@@ -45,7 +45,6 @@ typedef struct {
|
||||
/* this code is based on flac123, from flac-tools */
|
||||
|
||||
int flacSendChunk(FlacData * data);
|
||||
void flacPlayfile(const char * file, Buffer * cb, ao_sample_format * format);
|
||||
void flacError(const FLAC__FileDecoder *, FLAC__StreamDecoderErrorStatus, void *);
|
||||
void flacPrintErroredState(FLAC__FileDecoderState state, char * file);
|
||||
void flacMetadata(const FLAC__FileDecoder *, const FLAC__StreamMetadata *, void *);
|
||||
|
@@ -42,6 +42,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
#define FRAMES_CUSHION 2000
|
||||
|
||||
|
Reference in New Issue
Block a user