From a33f98d90779740c49987bd825ceb560c0ffb1f5 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sat, 24 Dec 2011 17:27:39 +0100 Subject: Avoid struct padding where possible Pointed out by -Wpadding. Does not decrease memory usage/binary size though. --- src/libwaitress/waitress.h | 21 ++++++++++------ src/player.h | 38 ++++++++++++++--------------- src/settings.h | 2 +- src/ui_dispatch.h | 61 +++++++++++++++++++++++----------------------- 4 files changed, 64 insertions(+), 58 deletions(-) diff --git a/src/libwaitress/waitress.h b/src/libwaitress/waitress.h index b988591..f91985d 100644 --- a/src/libwaitress/waitress.h +++ b/src/libwaitress/waitress.h @@ -83,30 +83,37 @@ typedef enum { /* reusable handle */ typedef struct { - WaitressUrl_t url; + int timeout; WaitressMethod_t method; + const char *extraHeaders; const char *postData; - WaitressUrl_t proxy; /* extra data handed over to callback function */ void *data; WaitressCbReturn_t (*callback) (void *, size_t, void *); - int timeout; const char *tlsFingerprint; + + WaitressUrl_t url; + WaitressUrl_t proxy; + gnutls_certificate_credentials_t tlsCred; /* per-request data */ struct { - size_t contentLength, contentReceived, chunkSize; int sockfd; + + /* temporary return value storage */ + WaitressReturn_t readWriteRet; + + size_t contentLength, contentReceived, chunkSize; + char *buf; - gnutls_session_t tlsSession; /* first argument is WaitressHandle_t, but that's not defined yet */ WaitressHandlerReturn_t (*dataHandler) (void *, char *, const size_t); WaitressReturn_t (*read) (void *, char *, const size_t, size_t *); WaitressReturn_t (*write) (void *, const char *, const size_t); - /* temporary return value storage */ - WaitressReturn_t readWriteRet; + + gnutls_session_t tlsSession; } request; } WaitressHandle_t; diff --git a/src/player.h b/src/player.h index 248519f..070ac0f 100644 --- a/src/player.h +++ b/src/player.h @@ -47,11 +47,9 @@ THE SOFTWARE. #define BAR_PLAYER_MS_TO_S_FACTOR 1000 struct audioPlayer { - /* buffer; should be large enough */ - unsigned char buffer[WAITRESS_BUFFER_SIZE*2]; - size_t bufferFilled; - size_t bufferRead; - size_t bytesReceived; + char doQuit; + unsigned char channels; + unsigned char aoError; enum { PLAYER_FREED = 0, /* thread is not running */ @@ -64,20 +62,28 @@ struct audioPlayer { PLAYER_RECV_DATA, /* playing track */ PLAYER_FINISHED_PLAYBACK } mode; - PianoAudioFormat_t audioFormat; + unsigned int scale; + float gain; + /* duration and already played time; measured in milliseconds */ unsigned long int songDuration; unsigned long int songPlayed; + unsigned long samplerate; + + size_t bufferFilled; + size_t bufferRead; + size_t bytesReceived; + /* aac */ #ifdef ENABLE_FAAD - NeAACDecHandle aacHandle; /* stsz atom: sample sizes */ - unsigned int *sampleSize; size_t sampleSizeN; size_t sampleSizeCurr; + unsigned int *sampleSize; + NeAACDecHandle aacHandle; #endif /* mp3 */ @@ -87,22 +93,14 @@ struct audioPlayer { struct mad_synth mp3Synth; #endif - unsigned long samplerate; - unsigned char channels; - - float gain; - unsigned int scale; - /* audio out */ ao_device *audioOutDevice; - unsigned char aoError; - - WaitressHandle_t waith; + const BarSettings_t *settings; - char doQuit; pthread_mutex_t pauseMutex; - - const BarSettings_t *settings; + WaitressHandle_t waith; + /* buffer; should be large enough */ + unsigned char buffer[WAITRESS_BUFFER_SIZE*2]; }; enum {PLAYER_RET_OK = 0, PLAYER_RET_ERR = 1}; diff --git a/src/settings.h b/src/settings.h index 8ce1225..b975b23 100644 --- a/src/settings.h +++ b/src/settings.h @@ -86,7 +86,6 @@ typedef struct { char *password; char *controlProxy; /* non-american listeners need this */ char *proxy; - char keys[BAR_KS_COUNT]; char *autostartStation; char *eventCmd; char *loveIcon; @@ -97,6 +96,7 @@ typedef struct { char *listSongFormat; char *fifo; char tlsFingerprint[20]; + char keys[BAR_KS_COUNT]; BarMsgFormatStr_t msgFormat[MSG_COUNT]; } BarSettings_t; diff --git a/src/ui_dispatch.h b/src/ui_dispatch.h index 4a5f791..e8c9944 100644 --- a/src/ui_dispatch.h +++ b/src/ui_dispatch.h @@ -39,10 +39,10 @@ typedef void (*BarKeyShortcutFunc_t) (BarApp_t *, PianoStation_t *, PianoSong_t *, BarUiDispatchContext_t); typedef struct { + char defaultKey; BarUiDispatchContext_t context; BarKeyShortcutFunc_t function; const char * const helpText; - char defaultKey; const char * const configKey; } BarUiDispatchAction_t; @@ -50,49 +50,50 @@ typedef struct { /* see settings.h */ static const BarUiDispatchAction_t dispatchActions[BAR_KS_COUNT] = { - {BAR_DC_UNDEFINED, BarUiActHelp, NULL, '?', "act_help"}, - {BAR_DC_SONG, BarUiActLoveSong, "love song", '+', + {'?', BAR_DC_UNDEFINED, BarUiActHelp, NULL, "act_help"}, + {'+', BAR_DC_SONG, BarUiActLoveSong, "love song", "act_songlove"}, - {BAR_DC_SONG, BarUiActBanSong, "ban song", '-', "act_songban"}, - {BAR_DC_STATION, BarUiActAddMusic, "add music to station", 'a', + {'-', BAR_DC_SONG, BarUiActBanSong, "ban song", "act_songban"}, + {'a', BAR_DC_STATION, BarUiActAddMusic, "add music to station", "act_stationaddmusic"}, - {BAR_DC_GLOBAL, BarUiActCreateStation, "create new station", 'c', + {'c', BAR_DC_GLOBAL, BarUiActCreateStation, "create new station", "act_stationcreate"}, - {BAR_DC_STATION, BarUiActDeleteStation, "delete station", 'd', + {'d', BAR_DC_STATION, BarUiActDeleteStation, "delete station", "act_stationdelete"}, - {BAR_DC_SONG, BarUiActExplain, "explain why this song is played", 'e', + {'e', BAR_DC_SONG, BarUiActExplain, "explain why this song is played", "act_songexplain"}, - {BAR_DC_GLOBAL, BarUiActStationFromGenre, "add genre station", 'g', + {'g', BAR_DC_GLOBAL, BarUiActStationFromGenre, "add genre station", "act_stationaddbygenre"}, - {BAR_DC_GLOBAL, BarUiActHistory, "song history", 'h', "act_history"}, - {BAR_DC_GLOBAL | BAR_DC_STATION | BAR_DC_SONG, BarUiActSongInfo, - "print information about song/station", 'i', - "act_songinfo"}, - {BAR_DC_GLOBAL, BarUiActAddSharedStation, "add shared station", 'j', + {'h', BAR_DC_GLOBAL, BarUiActHistory, "song history", "act_history"}, + {'i', BAR_DC_GLOBAL | BAR_DC_STATION | BAR_DC_SONG, BarUiActSongInfo, + "print information about song/station", "act_songinfo"}, + {'j', BAR_DC_GLOBAL, BarUiActAddSharedStation, "add shared station", "act_addshared"}, - {BAR_DC_SONG, BarUiActMoveSong, "move song to different station", 'm', + {'m', BAR_DC_SONG, BarUiActMoveSong, "move song to different station", "act_songmove"}, - {BAR_DC_GLOBAL | BAR_DC_STATION, BarUiActSkipSong, "next song", 'n', "act_songnext"}, - {BAR_DC_GLOBAL | BAR_DC_STATION, BarUiActPause, "pause/continue", 'p', "act_songpause"}, - {BAR_DC_GLOBAL, BarUiActQuit, "quit", 'q', "act_quit"}, - {BAR_DC_STATION, BarUiActRenameStation, "rename station", 'r', + {'n', BAR_DC_GLOBAL | BAR_DC_STATION, BarUiActSkipSong, "next song", + "act_songnext"}, + {'p', BAR_DC_GLOBAL | BAR_DC_STATION, BarUiActPause, "pause/continue", + "act_songpause"}, + {'q', BAR_DC_GLOBAL, BarUiActQuit, "quit", "act_quit"}, + {'r', BAR_DC_STATION, BarUiActRenameStation, "rename station", "act_stationrename"}, - {BAR_DC_GLOBAL, BarUiActSelectStation, "change station", 's', + {'s', BAR_DC_GLOBAL, BarUiActSelectStation, "change station", "act_stationchange"}, - {BAR_DC_SONG, BarUiActTempBanSong, "tired (ban song for 1 month)", 't', + {'t', BAR_DC_SONG, BarUiActTempBanSong, "tired (ban song for 1 month)", "act_songtired"}, - {BAR_DC_GLOBAL | BAR_DC_STATION, BarUiActPrintUpcoming, "upcoming songs", 'u', - "act_upcoming"}, - {BAR_DC_STATION, BarUiActSelectQuickMix, "select quickmix stations", - 'x', "act_stationselectquickmix"}, - {BAR_DC_GLOBAL, BarUiActDebug, NULL, '$', "act_debug"}, - {BAR_DC_SONG, BarUiActBookmark, "bookmark song/artist", 'b', + {'u', BAR_DC_GLOBAL | BAR_DC_STATION, BarUiActPrintUpcoming, + "upcoming songs", "act_upcoming"}, + {'x', BAR_DC_STATION, BarUiActSelectQuickMix, "select quickmix stations", + "act_stationselectquickmix"}, + {'$', BAR_DC_GLOBAL, BarUiActDebug, NULL, "act_debug"}, + {'b', BAR_DC_SONG, BarUiActBookmark, "bookmark song/artist", "act_bookmark"}, - {BAR_DC_GLOBAL, BarUiActVolDown, "decrease volume", '(', + {'(', BAR_DC_GLOBAL, BarUiActVolDown, "decrease volume", "act_voldown"}, - {BAR_DC_GLOBAL, BarUiActVolUp, "increase volume", ')', + {')', BAR_DC_GLOBAL, BarUiActVolUp, "increase volume", "act_volup"}, - {BAR_DC_STATION, BarUiActManageStation, "delete seeds/feedback", '=', + {'=', BAR_DC_STATION, BarUiActManageStation, "delete seeds/feedback", "act_managestation"}, }; -- cgit v1.2.3