Commit 226d52b3 authored by Max Kellermann's avatar Max Kellermann

switch to C99 types, part II

Do full C99 integer type conversion in all modules which were not touched by Eric's merged patch.
parent 0352766d
......@@ -153,7 +153,7 @@ static int shout_mp3_encoder_encode(struct shout_data *sd,
for (i = 0; i < samples; i++) {
for (j = 0; j < sd->audio_format.channels; j++) {
lamebuf[j][i] = *((const mpd_sint16 *) chunk);
lamebuf[j][i] = *((const int16_t *) chunk);
chunk += bytes;
}
}
......
......@@ -267,7 +267,7 @@ static int shout_ogg_encoder_encode(struct shout_data *sd,
for (i = 0; i < samples; i++) {
for (j = 0; j < sd->audio_format.channels; j++) {
vorbbuf[j][i] = (*((const mpd_sint16 *) chunk)) / 32768.0;
vorbbuf[j][i] = (*((const int16_t *) chunk)) / 32768.0;
chunk += bytes;
}
}
......
......@@ -22,9 +22,9 @@
#include "mpd_types.h"
struct audio_format {
mpd_uint32 sampleRate;
mpd_sint8 bits;
mpd_sint8 channels;
uint32_t sampleRate;
int8_t bits;
int8_t channels;
};
static inline void audio_format_clear(struct audio_format *af)
......
......@@ -197,7 +197,7 @@ mpd_fprintf_ void command_error(struct client *client, int error,
va_end(args);
}
static int mpd_fprintf__ check_uint32(struct client *client, mpd_uint32 *dst,
static int mpd_fprintf__ check_uint32(struct client *client, uint32_t *dst,
const char *s, const char *fmt, ...)
{
char *test;
......@@ -627,7 +627,7 @@ static int handleRename(struct client *client,
static int handlePlaylistChanges(struct client *client,
mpd_unused int argc, char *argv[])
{
mpd_uint32 version;
uint32_t version;
if (check_uint32(client, &version, argv[1], need_positive) < 0)
return -1;
......@@ -637,7 +637,7 @@ static int handlePlaylistChanges(struct client *client,
static int handlePlaylistChangesPosId(struct client *client,
mpd_unused int argc, char *argv[])
{
mpd_uint32 version;
uint32_t version;
if (check_uint32(client, &version, argv[1], need_positive) < 0)
return -1;
......
......@@ -152,7 +152,7 @@ need_chunks(struct decoder *decoder, InputStream * inStream, int seekable)
enum decoder_command
decoder_data(struct decoder *decoder, InputStream * inStream, int seekable,
void *dataIn, size_t dataInLen,
float data_time, mpd_uint16 bitRate,
float data_time, uint16_t bitRate,
ReplayGainInfo * replayGainInfo)
{
size_t nbytes;
......
......@@ -149,7 +149,7 @@ size_t decoder_read(struct decoder *decoder,
*/
enum decoder_command
decoder_data(struct decoder *decoder, InputStream * inStream, int seekable,
void *data, size_t datalen, float data_time, mpd_uint16 bitRate,
void *data, size_t datalen, float data_time, uint16_t bitRate,
ReplayGainInfo * replayGainInfo);
void decoder_flush(struct decoder *decoder);
......
......@@ -44,9 +44,9 @@ struct decoder_control {
volatile enum decoder_state state;
volatile enum decoder_command command;
volatile mpd_uint16 error;
volatile mpd_sint8 seekError;
volatile mpd_sint8 seekable;
volatile uint16_t error;
volatile int8_t seekError;
volatile int8_t seekable;
volatile double seekWhere;
struct audio_format audioFormat;
Song *current_song;
......
......@@ -161,9 +161,9 @@ void flac_metadata_common_cb(const FLAC__StreamMetadata * block,
switch (block->type) {
case FLAC__METADATA_TYPE_STREAMINFO:
data->audio_format.bits = (mpd_sint8)si->bits_per_sample;
data->audio_format.bits = (int8_t)si->bits_per_sample;
data->audio_format.sampleRate = si->sample_rate;
data->audio_format.channels = (mpd_sint8)si->channels;
data->audio_format.channels = (int8_t)si->channels;
data->total_time = ((float)si->total_samples) / (si->sample_rate);
break;
case FLAC__METADATA_TYPE_VORBIS_COMMENT:
......
......@@ -50,7 +50,7 @@ static int audiofile_decode(struct decoder * decoder, char *path)
int bits;
struct audio_format audio_format;
float total_time;
mpd_uint16 bitRate;
uint16_t bitRate;
struct stat st;
int ret, current = 0;
char chunk[CHUNK_SIZE];
......@@ -69,17 +69,17 @@ static int audiofile_decode(struct decoder * decoder, char *path)
afSetVirtualSampleFormat(af_fp, AF_DEFAULT_TRACK,
AF_SAMPFMT_TWOSCOMP, 16);
afGetVirtualSampleFormat(af_fp, AF_DEFAULT_TRACK, &fs, &bits);
audio_format.bits = (mpd_uint8)bits;
audio_format.bits = (uint8_t)bits;
audio_format.sampleRate =
(unsigned int)afGetRate(af_fp, AF_DEFAULT_TRACK);
audio_format.channels =
(mpd_uint8)afGetVirtualChannels(af_fp, AF_DEFAULT_TRACK);
(uint8_t)afGetVirtualChannels(af_fp, AF_DEFAULT_TRACK);
frame_count = afGetFrameCount(af_fp, AF_DEFAULT_TRACK);
total_time = ((float)frame_count / (float)audio_format.sampleRate);
bitRate = (mpd_uint16)(st.st_size * 8.0 / total_time / 1000.0 + 0.5);
bitRate = (uint16_t)(st.st_size * 8.0 / total_time / 1000.0 + 0.5);
if (audio_format.bits != 8 && audio_format.bits != 16) {
ERROR("Only 8 and 16-bit files are supported. %s is %i-bit\n",
......
......@@ -66,10 +66,10 @@ static mpc_int32_t mpc_getsize_cb(void *vdata)
}
/* this _looks_ performance-critical, don't de-inline -- eric */
static inline mpd_sint16 convertSample(MPC_SAMPLE_FORMAT sample)
static inline int16_t convertSample(MPC_SAMPLE_FORMAT sample)
{
/* only doing 16-bit audio for now */
mpd_sint32 val;
int32_t val;
const int clip_min = -1 << (16 - 1);
const int clip_max = (1 << (16 - 1)) - 1;
......@@ -114,7 +114,7 @@ static int mpc_decode(struct decoder * mpd_decoder, InputStream * inStream)
char chunk[MPC_CHUNK_SIZE];
int chunkpos = 0;
long bitRate = 0;
mpd_sint16 *s16 = (mpd_sint16 *) chunk;
int16_t *s16 = (int16_t *) chunk;
unsigned long samplePos = 0;
mpc_uint32_t vbrUpdateAcc;
mpc_uint32_t vbrUpdateBits;
......@@ -171,7 +171,7 @@ static int mpc_decode(struct decoder * mpd_decoder, InputStream * inStream)
audio_format.sampleRate;
if (mpc_decoder_seek_sample(&decoder, samplePos)) {
decoder_clear(mpd_decoder);
s16 = (mpd_sint16 *) chunk;
s16 = (int16_t *) chunk;
chunkpos = 0;
decoder_command_finished(mpd_decoder);
} else
......@@ -213,7 +213,7 @@ static int mpc_decode(struct decoder * mpd_decoder, InputStream * inStream)
bitRate, replayGainInfo);
chunkpos = 0;
s16 = (mpd_sint16 *) chunk;
s16 = (int16_t *) chunk;
if (decoder_get_command(mpd_decoder) == DECODE_COMMAND_STOP) {
eof = 1;
break;
......
......@@ -21,24 +21,49 @@
#include "../config.h"
typedef unsigned char mpd_uint8;
typedef signed char mpd_sint8;
#if defined(HAVE_INTTYPES_H)
/*
* inttypes.h pulls in stdint.h on C99 systems, needed for older systems
* that didn't provide stdint.h but still defined equivalent types.
*/
# include <inttypes.h>
#elif defined(HAVE_STDINT_H)
# include <stdint.h>
#elif defined(HAVE_SYS_INTTYPES_H)
# include <sys/inttypes.h> /* some ancient systems had this, untested */
#endif /* C99-ish type headers */
#include <sys/types.h>
#if (!defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H))
/*
* this only includes a partial subset of what is expected in a C99
* stdint.h or inttypes.h; but includes enough of what is needed for mpd
* to function on older platforms
* (especially Linux ones still using gcc 2.95)
*/
typedef unsigned char uint8_t;
typedef signed char int8_t;
#if SIZEOF_SHORT == 2
typedef unsigned short mpd_uint16;
typedef signed short mpd_sint16;
typedef unsigned short uint16_t;
typedef signed short int16_t;
#elif SIZEOF_INT == 2
typedef unsigned int mpd_uint16;
typedef signed int mpd_sint16;
#endif
typedef unsigned int uint16_t;
typedef signed int int16_t;
#endif /* (u)int_16_t */
#if SIZEOF_INT == 4
typedef unsigned int mpd_uint32;
typedef signed int mpd_sint32;
typedef unsigned int uint32_t;
typedef signed int int32_t;
#elif SIZEOF_LONG == 4
typedef unsigned long mpd_uint32;
typedef signed long mpd_sint32;
#endif
typedef unsigned long uint32_t;
typedef signed long int32_t;
#endif /* (u)int_32 */
#endif /* !HAVE_STDINT_H && !HAVE_INTTYPES_H */
union const_hack {
const char *in;
......
......@@ -153,7 +153,7 @@ ob_chunk * ob_get_chunk(const unsigned i)
* @return the chunk which has room for more data; NULL if there is no
* room.
*/
static ob_chunk *tail_chunk(float data_time, mpd_uint16 bitRate)
static ob_chunk *tail_chunk(float data_time, uint16_t bitRate)
{
unsigned int next;
ob_chunk *chunk;
......@@ -184,7 +184,7 @@ static ob_chunk *tail_chunk(float data_time, mpd_uint16 bitRate)
}
size_t ob_append(const void *data0, size_t datalen,
float data_time, mpd_uint16 bitRate)
float data_time, uint16_t bitRate)
{
const unsigned char *data = data0;
size_t ret = 0, dataToSend;
......
......@@ -26,8 +26,8 @@
#define CHUNK_SIZE 1020
typedef struct _OutputBufferChunk {
mpd_uint16 chunkSize;
mpd_uint16 bitRate;
uint16_t chunkSize;
uint16_t bitRate;
float times;
char data[CHUNK_SIZE];
} ob_chunk;
......@@ -102,9 +102,8 @@ ob_chunk * ob_get_chunk(const unsigned i);
* @return the number of bytes actually written
*/
size_t ob_append(const void *data, size_t datalen,
float data_time, mpd_uint16 bitRate);
float data_time, uint16_t bitRate);
void ob_skip(unsigned num);
#endif
......@@ -85,21 +85,21 @@ struct player_control {
Notify notify;
volatile enum player_command command;
volatile enum player_state state;
volatile mpd_sint8 error;
volatile mpd_uint16 bitRate;
volatile mpd_sint8 bits;
volatile mpd_sint8 channels;
volatile mpd_uint32 sampleRate;
volatile int8_t error;
volatile uint16_t bitRate;
volatile int8_t bits;
volatile int8_t channels;
volatile uint32_t sampleRate;
volatile float totalTime;
volatile float elapsedTime;
volatile float fileTime;
Song *volatile next_song;
Song *errored_song;
volatile enum player_queue_state queueState;
volatile mpd_sint8 queueLockState;
volatile int8_t queueLockState;
volatile double seekWhere;
volatile float crossFade;
volatile mpd_uint16 softwareVolume;
volatile uint16_t softwareVolume;
volatile double totalPlayTime;
};
......
......@@ -73,7 +73,7 @@ static void randomizeOrder(int start, int end);
static void incrPlaylistVersion(void)
{
static unsigned long max = ((mpd_uint32) 1 << 31) - 1;
static unsigned long max = ((uint32_t) 1 << 31) - 1;
playlist.version++;
if (playlist.version >= max) {
int i;
......@@ -141,7 +141,7 @@ void initPlaylist(void)
DEFAULT_PLAYLIST_SAVE_ABSOLUTE_PATHS;
playlist.songs = xmalloc(sizeof(Song *) * playlist_max_length);
playlist.songMod = xmalloc(sizeof(mpd_uint32) * playlist_max_length);
playlist.songMod = xmalloc(sizeof(uint32_t) * playlist_max_length);
playlist.order = xmalloc(sizeof(int) * playlist_max_length);
playlist.idToPosition = xmalloc(sizeof(int) * playlist_max_length *
PLAYLIST_HASH_MULT);
......@@ -369,7 +369,7 @@ static void printPlaylistSongInfo(struct client *client, int song)
client_printf(client, "Pos: %i\nId: %i\n", song, playlist.positionToId[song]);
}
int playlistChanges(struct client *client, mpd_uint32 version)
int playlistChanges(struct client *client, uint32_t version)
{
int i;
......@@ -384,7 +384,7 @@ int playlistChanges(struct client *client, mpd_uint32 version)
return 0;
}
int playlistChangesPosId(struct client *client, mpd_uint32 version)
int playlistChangesPosId(struct client *client, uint32_t version)
{
int i;
......
......@@ -39,7 +39,7 @@ enum playlist_result {
typedef struct _Playlist {
Song **songs;
/* holds version a song was modified on */
mpd_uint32 *songMod;
uint32_t *songMod;
int *order;
int *positionToId;
int *idToPosition;
......@@ -48,7 +48,7 @@ typedef struct _Playlist {
int queued;
int repeat;
int random;
mpd_uint32 version;
uint32_t version;
} Playlist;
extern int playlist_saveAbsolutePaths;
......@@ -137,9 +137,9 @@ enum playlist_result seekSongInPlaylistById(int id, float seek_time);
void playlistVersionChange(void);
int playlistChanges(struct client *client, mpd_uint32 version);
int playlistChanges(struct client *client, uint32_t version);
int playlistChangesPosId(struct client *client, mpd_uint32 version);
int playlistChangesPosId(struct client *client, uint32_t version);
int PlaylistInfo(struct client *client, const char *utf8file, int detail);
......
......@@ -35,7 +35,7 @@ struct client;
typedef struct _Song {
char *url;
mpd_sint8 type;
int8_t type;
struct tag *tag;
struct _Directory *parentDir;
time_t mtime;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment