From ac5ec35a6e222f635912f6a7eaf3c036c71367b6 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:02 +0200 Subject: enable -Wpointer-arith, -Wstrict-prototypes Also enable -Wunused-parameter - this forces us to add the gcc "unused" attribute to a lot of parameters (mostly library callback functions), but it's worth it during code refactorizations. --- src/audioOutputs/audioOutput_ao.c | 2 +- src/audioOutputs/audioOutput_jack.c | 4 ++-- src/audioOutputs/audioOutput_null.c | 5 +++-- src/audioOutputs/audioOutput_oss.c | 3 ++- 4 files changed, 8 insertions(+), 6 deletions(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_ao.c b/src/audioOutputs/audioOutput_ao.c index 65ffa2c27..e7e201add 100644 --- a/src/audioOutputs/audioOutput_ao.c +++ b/src/audioOutputs/audioOutput_ao.c @@ -158,7 +158,7 @@ static void audioOutputAo_finishDriver(AudioOutput * audioOutput) ao_shutdown(); } -static void audioOutputAo_dropBufferedAudio(AudioOutput * audioOutput) +static void audioOutputAo_dropBufferedAudio(mpd_unused AudioOutput * audioOutput) { /* not supported by libao */ } diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c index ed0bceb46..c8aa4dcb6 100644 --- a/src/audioOutputs/audioOutput_jack.c +++ b/src/audioOutputs/audioOutput_jack.c @@ -102,7 +102,7 @@ static void jack_finishDriver(AudioOutput *audioOutput) freeJackData(audioOutput); } -static int srate(jack_nframes_t rate, void *data) +static int srate(mpd_unused jack_nframes_t rate, void *data) { JackData *jd = (JackData *) ((AudioOutput*) data)->data; AudioFormat *audioFormat = &(((AudioOutput*) data)->outAudioFormat); @@ -366,7 +366,7 @@ static void jack_closeDevice(AudioOutput * audioOutput) DEBUG("jack_closeDevice (pid=%d)\n", getpid()); } -static void jack_dropBufferedAudio (AudioOutput * audioOutput) +static void jack_dropBufferedAudio (mpd_unused AudioOutput * audioOutput) { } diff --git a/src/audioOutputs/audioOutput_null.c b/src/audioOutputs/audioOutput_null.c index 37ff7194a..d63004645 100644 --- a/src/audioOutputs/audioOutput_null.c +++ b/src/audioOutputs/audioOutput_null.c @@ -19,7 +19,8 @@ #include "../audioOutput.h" #include "../timer.h" -static int null_initDriver(AudioOutput *audioOutput, ConfigParam *param) +static int null_initDriver(AudioOutput *audioOutput, + mpd_unused ConfigParam *param) { audioOutput->data = NULL; return 0; @@ -43,7 +44,7 @@ static void null_closeDevice(AudioOutput *audioOutput) } static int null_playAudio(AudioOutput *audioOutput, - const char *playChunk, size_t size) + mpd_unused const char *playChunk, size_t size) { Timer *timer = audioOutput->data; diff --git a/src/audioOutputs/audioOutput_oss.c b/src/audioOutputs/audioOutput_oss.c index 2a6a4876b..2df7d5728 100644 --- a/src/audioOutputs/audioOutput_oss.c +++ b/src/audioOutputs/audioOutput_oss.c @@ -334,7 +334,8 @@ static int oss_testDefault(void) return -1; } -static int oss_open_default(AudioOutput *ao, ConfigParam *param, OssData *od) +static int oss_open_default(mpd_unused AudioOutput *ao, ConfigParam *param, + OssData *od) { int i; int err[ARRAY_SIZE(default_devices)]; -- cgit v1.2.3 From 29eba419627437fb6f20714bb553d39a58305c5e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:09 +0200 Subject: converted MpdTagItem.type to an enum Don't use CPP macros when you can use C enum... this also allows better type checking. --- src/audioOutputs/audioOutput_shout.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_shout.c b/src/audioOutputs/audioOutput_shout.c index 9ed5b4e7e..49d69eebd 100644 --- a/src/audioOutputs/audioOutput_shout.c +++ b/src/audioOutputs/audioOutput_shout.c @@ -413,6 +413,8 @@ static void copyTagToVorbisComment(ShoutData * sd) case TAG_ITEM_TITLE: addTag(sd, "TITLE", sd->tag->items[i].value); break; + default: + break; } } } -- cgit v1.2.3 From 8e0b55596ee1b33457b14f757eb50a69caeab60e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:15 +0200 Subject: jack: eliminate superfluous freeJackData() calls connect_jack() invokes freeJackData() in every error handler, although its caller also invokes this function after a failure. We can save a lot of lines in connect_jack() by removing these redundant freeJackData() invocations. --- src/audioOutputs/audioOutput_jack.c | 6 ------ 1 file changed, 6 deletions(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c index c8aa4dcb6..a62c0a0e9 100644 --- a/src/audioOutputs/audioOutput_jack.c +++ b/src/audioOutputs/audioOutput_jack.c @@ -257,7 +257,6 @@ static int connect_jack(AudioOutput *audioOutput) if ( (jd->client = jack_client_new(name)) == NULL ) { ERROR("jack server not running?\n"); - freeJackData(audioOutput); return -1; } @@ -269,7 +268,6 @@ static int connect_jack(AudioOutput *audioOutput) if ( jack_activate(jd->client) ) { ERROR("cannot activate client\n"); - freeJackData(audioOutput); return -1; } @@ -278,7 +276,6 @@ static int connect_jack(AudioOutput *audioOutput) JackPortIsOutput, 0); if ( !jd->ports[0] ) { ERROR("Cannot register left output port.\n"); - freeJackData(audioOutput); return -1; } @@ -287,7 +284,6 @@ static int connect_jack(AudioOutput *audioOutput) JackPortIsOutput, 0); if ( !jd->ports[1] ) { ERROR("Cannot register right output port.\n"); - freeJackData(audioOutput); return -1; } @@ -315,7 +311,6 @@ static int connect_jack(AudioOutput *audioOutput) output_ports[0])) != 0 ) { ERROR("%s is not a valid Jack Client / Port\n", output_ports[0]); - freeJackData(audioOutput); free(port_name); return -1; } @@ -324,7 +319,6 @@ static int connect_jack(AudioOutput *audioOutput) output_ports[1])) != 0 ) { ERROR("%s is not a valid Jack Client / Port\n", output_ports[1]); - freeJackData(audioOutput); free(port_name); return -1; } -- cgit v1.2.3 From 641e530f447771642ac627c91e8bff67fcb71fd3 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:15 +0200 Subject: jack: initialize jd->client after !jd check Prepare the next patch: make the "!jd" check independent of the jd->client initialization. This way we can change the "jd" initialization semantics later. --- src/audioOutputs/audioOutput_jack.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c index a62c0a0e9..4a30e897e 100644 --- a/src/audioOutputs/audioOutput_jack.c +++ b/src/audioOutputs/audioOutput_jack.c @@ -337,12 +337,12 @@ static int jack_openDevice(AudioOutput *audioOutput) DEBUG("connect!\n"); jd = newJackData(); audioOutput->data = jd; + } - if (connect_jack(audioOutput) < 0) { - freeJackData(audioOutput); - audioOutput->open = 0; - return -1; - } + if (jd->client == NULL && connect_jack(audioOutput) < 0) { + freeJackData(audioOutput); + audioOutput->open = 0; + return -1; } set_audioformat(audioOutput); -- cgit v1.2.3 From 8c419bb006e376cd0b78453a988976d96027a9f4 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:15 +0200 Subject: jack: added freeJackClient() No need to destroy the JackData object when an error occurs, since jack_finishDriver() already frees it. Only deinitialize the jack library, introduce freeJackClient() for that, and move code from freeJackData(). --- src/audioOutputs/audioOutput_jack.c | 38 ++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c index 4a30e897e..47997df01 100644 --- a/src/audioOutputs/audioOutput_jack.c +++ b/src/audioOutputs/audioOutput_jack.c @@ -63,14 +63,32 @@ static JackData *newJackData(void) return ret; } +static void freeJackClient(JackData *jd) +{ + assert(jd != NULL); + + if (jd->client != NULL) { + jack_deactivate(jd->client); + jack_client_close(jd->client); + jd->client = NULL; + } + + if (jd->ringbuffer[0] != NULL) { + jack_ringbuffer_free(jd->ringbuffer[0]); + jd->ringbuffer[0] = NULL; + } + + if (jd->ringbuffer[1] != NULL) { + jack_ringbuffer_free(jd->ringbuffer[1]); + jd->ringbuffer[1] = NULL; + } +} + static void freeJackData(AudioOutput *audioOutput) { JackData *jd = audioOutput->data; if (jd) { - if (jd->ringbuffer[0]) - jack_ringbuffer_free(jd->ringbuffer[0]); - if (jd->ringbuffer[1]) - jack_ringbuffer_free(jd->ringbuffer[1]); + freeJackClient(jd); free(jd); audioOutput->data = NULL; } @@ -78,13 +96,9 @@ static void freeJackData(AudioOutput *audioOutput) static void jack_finishDriver(AudioOutput *audioOutput) { - JackData *jd = audioOutput->data; int i; - if ( jd && jd->client ) { - jack_deactivate(jd->client); - jack_client_close(jd->client); - } + freeJackData(audioOutput); DEBUG("disconnect_jack (pid=%d)\n", getpid ()); if ( strcmp(name, "mpd") ) { @@ -98,8 +112,6 @@ static void jack_finishDriver(AudioOutput *audioOutput) free(output_ports[i]); output_ports[i] = NULL; } - - freeJackData(audioOutput); } static int srate(mpd_unused jack_nframes_t rate, void *data) @@ -340,7 +352,7 @@ static int jack_openDevice(AudioOutput *audioOutput) } if (jd->client == NULL && connect_jack(audioOutput) < 0) { - freeJackData(audioOutput); + freeJackClient(jd); audioOutput->open = 0; return -1; } @@ -378,7 +390,7 @@ static int jack_playAudio(AudioOutput * audioOutput, if ( jd->shutdown ) { ERROR("Refusing to play, because there is no client thread.\n"); - freeJackData(audioOutput); + freeJackClient(jd); audioOutput->open = 0; return 0; } -- cgit v1.2.3 From 25b5471f415db926e8b4ebe1a02e209d70757191 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:15 +0200 Subject: jack: initialize JackData in jack_initDriver() Over the lifetime of the jack AudioOutput object, we want a single valid JackData object, so we can persistently store data there (configuration etc.). Allocate JackData in jack_initDriver(). After that, we can safely remove all audioOutput->data==NULL checks (and replace them with assertions). --- src/audioOutputs/audioOutput_jack.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c index 47997df01..9fc52055f 100644 --- a/src/audioOutputs/audioOutput_jack.c +++ b/src/audioOutputs/audioOutput_jack.c @@ -205,7 +205,7 @@ static int jack_initDriver(AudioOutput *audioOutput, ConfigParam *param) int val; char *cp = NULL; - audioOutput->data = NULL; + audioOutput->data = newJackData(); DEBUG("jack_initDriver (pid=%d)\n", getpid()); if ( ! param ) return 0; @@ -345,11 +345,7 @@ static int jack_openDevice(AudioOutput *audioOutput) { JackData *jd = audioOutput->data; - if ( !jd ) { - DEBUG("connect!\n"); - jd = newJackData(); - audioOutput->data = jd; - } + assert(jd != NULL); if (jd->client == NULL && connect_jack(audioOutput) < 0) { freeJackClient(jd); -- cgit v1.2.3 From 5742bc42d061b7f60c6ed3dbd71c64f12c77f91f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:15 +0200 Subject: jack: don't set audioOutput->data=NULL There is only one caller of freeJackData() left: jack_finishDriver(). This function is called by the mpd core, and is called exactly once for every successful jack_initDriver(). We do not need to clear audioOutput->data, since this variable is invalidated anyway. --- src/audioOutputs/audioOutput_jack.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c index 9fc52055f..5e0b1b599 100644 --- a/src/audioOutputs/audioOutput_jack.c +++ b/src/audioOutputs/audioOutput_jack.c @@ -87,11 +87,11 @@ static void freeJackClient(JackData *jd) static void freeJackData(AudioOutput *audioOutput) { JackData *jd = audioOutput->data; - if (jd) { - freeJackClient(jd); - free(jd); - audioOutput->data = NULL; - } + + assert(jd != NULL); + + freeJackClient(jd); + free(jd); } static void jack_finishDriver(AudioOutput *audioOutput) -- cgit v1.2.3 From 22454dc6c9bf87c0c565d20d1f48b97877197f6e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:15 +0200 Subject: jack: removed unused macros --- src/audioOutputs/audioOutput_jack.c | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c index 5e0b1b599..708b0e4ad 100644 --- a/src/audioOutputs/audioOutput_jack.c +++ b/src/audioOutputs/audioOutput_jack.c @@ -30,16 +30,6 @@ pthread_mutex_t play_audio_lock = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t play_audio = PTHREAD_COND_INITIALIZER; -/*#include "dmalloc.h"*/ - -#ifdef MIN -# undef MIN -# define MIN(a, b) ((a) < (b) ? (a) : (b)) -#endif - -/*#define SAMPLE_SIZE sizeof(jack_default_audio_sample_t);*/ - - static char *name = "mpd"; static char *output_ports[2]; static int ringbuf_sz = 32768; -- cgit v1.2.3 From 070b952ae48da684461a3efa039be3b081f90f4d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:16 +0200 Subject: moved jack configuration to the JackData struct Storing local configuration in global (static) variables is obviously a bad idea. Move all those variables into the JackData struct, including the locks. --- src/audioOutputs/audioOutput_jack.c | 113 ++++++++++++++++++++---------------- 1 file changed, 64 insertions(+), 49 deletions(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c index 708b0e4ad..955eccd0b 100644 --- a/src/audioOutputs/audioOutput_jack.c +++ b/src/audioOutputs/audioOutput_jack.c @@ -27,15 +27,19 @@ #include #include -pthread_mutex_t play_audio_lock = PTHREAD_MUTEX_INITIALIZER; -pthread_cond_t play_audio = PTHREAD_COND_INITIALIZER; - -static char *name = "mpd"; -static char *output_ports[2]; -static int ringbuf_sz = 32768; size_t sample_size = sizeof(jack_default_audio_sample_t); typedef struct _JackData { + /* configuration */ + char *name; + char *output_ports[2]; + int ringbuf_sz; + + /* locks */ + pthread_mutex_t play_audio_lock; + pthread_cond_t play_audio; + + /* jack library stuff */ jack_port_t *ports[2]; jack_client_t *client; jack_ringbuffer_t *ringbuffer[2]; @@ -50,6 +54,12 @@ static JackData *newJackData(void) JackData *ret; ret = xcalloc(sizeof(JackData), 1); + ret->name = "mpd"; + ret->ringbuf_sz = 32768; + + pthread_mutex_init(&ret->play_audio_lock, NULL); + pthread_cond_init(&ret->play_audio, NULL); + return ret; } @@ -72,36 +82,36 @@ static void freeJackClient(JackData *jd) jack_ringbuffer_free(jd->ringbuffer[1]); jd->ringbuffer[1] = NULL; } + + pthread_mutex_destroy(&jd->play_audio_lock); + pthread_cond_destroy(&jd->play_audio); } static void freeJackData(AudioOutput *audioOutput) { JackData *jd = audioOutput->data; + int i; assert(jd != NULL); freeJackClient(jd); + + if (strcmp(jd->name, "mpd") != 0) + free(jd->name); + + for ( i = ARRAY_SIZE(jd->output_ports); --i >= 0; ) { + if (!jd->output_ports[i]) + continue; + free(jd->output_ports[i]); + } + free(jd); } static void jack_finishDriver(AudioOutput *audioOutput) { - int i; - freeJackData(audioOutput); DEBUG("disconnect_jack (pid=%d)\n", getpid ()); - - if ( strcmp(name, "mpd") ) { - free(name); - name = "mpd"; - } - - for ( i = ARRAY_SIZE(output_ports); --i >= 0; ) { - if (!output_ports[i]) - continue; - free(output_ports[i]); - output_ports[i] = NULL; - } } static int srate(mpd_unused jack_nframes_t rate, void *data) @@ -152,9 +162,9 @@ static int process(jack_nframes_t nframes, void *arg) nframes = 0; } - if (pthread_mutex_trylock (&play_audio_lock) == 0) { - pthread_cond_signal (&play_audio); - pthread_mutex_unlock (&play_audio_lock); + if (pthread_mutex_trylock (&jd->play_audio_lock) == 0) { + pthread_cond_signal (&jd->play_audio); + pthread_mutex_unlock (&jd->play_audio_lock); } } @@ -190,12 +200,14 @@ static void error_callback(const char *msg) static int jack_initDriver(AudioOutput *audioOutput, ConfigParam *param) { + JackData *jd; BlockParam *bp; char *endptr; int val; char *cp = NULL; audioOutput->data = newJackData(); + jd = audioOutput->data; DEBUG("jack_initDriver (pid=%d)\n", getpid()); if ( ! param ) return 0; @@ -209,18 +221,19 @@ static int jack_initDriver(AudioOutput *audioOutput, ConfigParam *param) bp->name, bp->line, bp->value); *cp = '\0'; - output_ports[0] = xstrdup(bp->value); + jd->output_ports[0] = xstrdup(bp->value); *cp++ = ','; if (!*cp) FATAL("expected a second value for '%s' at line %d: " "%s\n", bp->name, bp->line, bp->value); - output_ports[1] = xstrdup(cp); + jd->output_ports[1] = xstrdup(cp); if (strchr(cp,',')) FATAL("Only %d values are supported for '%s' " - "at line %d\n", (int)ARRAY_SIZE(output_ports), + "at line %d\n", + (int)ARRAY_SIZE(jd->output_ports), bp->name, bp->line); } @@ -229,18 +242,18 @@ static int jack_initDriver(AudioOutput *audioOutput, ConfigParam *param) val = strtol(bp->value, &endptr, 10); if ( errno == 0 && endptr != bp->value) { - ringbuf_sz = val < 32768 ? 32768 : val; - DEBUG("ringbuffer_size=%d\n", ringbuf_sz); + jd->ringbuf_sz = val < 32768 ? 32768 : val; + DEBUG("ringbuffer_size=%d\n", jd->ringbuf_sz); } else { FATAL("%s is not a number; ringbuf_size=%d\n", - bp->value, ringbuf_sz); + bp->value, jd->ringbuf_sz); } } if ( (bp = getBlockParam(param, "name")) && (strcmp(bp->value, "mpd") != 0) ) { - name = xstrdup(bp->value); - DEBUG("name=%s\n", name); + jd->name = xstrdup(bp->value); + DEBUG("name=%s\n", jd->name); } return 0; @@ -257,7 +270,7 @@ static int connect_jack(AudioOutput *audioOutput) char **jports; char *port_name; - if ( (jd->client = jack_client_new(name)) == NULL ) { + if ( (jd->client = jack_client_new(jd->name)) == NULL ) { ERROR("jack server not running?\n"); return -1; } @@ -290,37 +303,38 @@ static int connect_jack(AudioOutput *audioOutput) } /* hay que buscar que hay */ - if ( !output_ports[1] + if ( !jd->output_ports[1] && (jports = (char **)jack_get_ports(jd->client, NULL, NULL, JackPortIsPhysical| JackPortIsInput)) ) { - output_ports[0] = jports[0]; - output_ports[1] = jports[1] ? jports[1] : jports[0]; - DEBUG("output_ports: %s %s\n", output_ports[0], output_ports[1]); + jd->output_ports[0] = jports[0]; + jd->output_ports[1] = jports[1] ? jports[1] : jports[0]; + DEBUG("output_ports: %s %s\n", + jd->output_ports[0], jd->output_ports[1]); free(jports); } - if ( output_ports[1] ) { - jd->ringbuffer[0] = jack_ringbuffer_create(ringbuf_sz); - jd->ringbuffer[1] = jack_ringbuffer_create(ringbuf_sz); + if ( jd->output_ports[1] ) { + jd->ringbuffer[0] = jack_ringbuffer_create(jd->ringbuf_sz); + jd->ringbuffer[1] = jack_ringbuffer_create(jd->ringbuf_sz); memset(jd->ringbuffer[0]->buf, 0, jd->ringbuffer[0]->size); memset(jd->ringbuffer[1]->buf, 0, jd->ringbuffer[1]->size); - port_name = xmalloc(sizeof(char)*(7+strlen(name))); + port_name = xmalloc(sizeof(char)*(7+strlen(jd->name))); - sprintf(port_name, "%s:left", name); + sprintf(port_name, "%s:left", jd->name); if ( (jack_connect(jd->client, port_name, - output_ports[0])) != 0 ) { + jd->output_ports[0])) != 0 ) { ERROR("%s is not a valid Jack Client / Port\n", - output_ports[0]); + jd->output_ports[0]); free(port_name); return -1; } - sprintf(port_name, "%s:right", name); + sprintf(port_name, "%s:right", jd->name); if ( (jack_connect(jd->client, port_name, - output_ports[1])) != 0 ) { + jd->output_ports[1])) != 0 ) { ERROR("%s is not a valid Jack Client / Port\n", - output_ports[1]); + jd->output_ports[1]); free(port_name); return -1; } @@ -406,9 +420,10 @@ static int jack_playAudio(AudioOutput * audioOutput, samples=0; } else { - pthread_mutex_lock(&play_audio_lock); - pthread_cond_wait(&play_audio, &play_audio_lock); - pthread_mutex_unlock(&play_audio_lock); + pthread_mutex_lock(&jd->play_audio_lock); + pthread_cond_wait(&jd->play_audio, + &jd->play_audio_lock); + pthread_mutex_unlock(&jd->play_audio_lock); } } -- cgit v1.2.3 From e4db015707016978b6a478e06a908fb1a1577601 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 26 Aug 2008 08:27:16 +0200 Subject: jack: made "sample_size" static const sample_size is a variable which is computed at compile time. Declare it "static const", so the compiler can optimize it away. --- src/audioOutputs/audioOutput_jack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/audioOutputs') diff --git a/src/audioOutputs/audioOutput_jack.c b/src/audioOutputs/audioOutput_jack.c index 955eccd0b..8818bb739 100644 --- a/src/audioOutputs/audioOutput_jack.c +++ b/src/audioOutputs/audioOutput_jack.c @@ -27,7 +27,7 @@ #include #include -size_t sample_size = sizeof(jack_default_audio_sample_t); +static const size_t sample_size = sizeof(jack_default_audio_sample_t); typedef struct _JackData { /* configuration */ -- cgit v1.2.3