Mercurial > sdl-ios-xcode
comparison src/audio/alsa/SDL_alsa_audio.c @ 1161:05d4b93b911e
Placate gcc's strict aliasing rules with an extra cast.
Casts to (char *) will disable strict aliasing when the compiler sees it.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Thu, 20 Oct 2005 06:53:56 +0000 |
parents | 41a59de7f2ed |
children | 1cbaeee565b1 |
comparison
equal
deleted
inserted
replaced
1160:72c6c3e5bb85 | 1161:05d4b93b911e |
---|---|
91 static unsigned int (*SDL_NAME(snd_pcm_hw_params_set_periods_near))(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int *dir); | 91 static unsigned int (*SDL_NAME(snd_pcm_hw_params_set_periods_near))(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val, int *dir); |
92 static int (*SDL_NAME(snd_pcm_hw_params))(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); | 92 static int (*SDL_NAME(snd_pcm_hw_params))(snd_pcm_t *pcm, snd_pcm_hw_params_t *params); |
93 static int (*SDL_NAME(snd_pcm_nonblock))(snd_pcm_t *pcm, int nonblock); | 93 static int (*SDL_NAME(snd_pcm_nonblock))(snd_pcm_t *pcm, int nonblock); |
94 #define snd_pcm_hw_params_sizeof SDL_NAME(snd_pcm_hw_params_sizeof) | 94 #define snd_pcm_hw_params_sizeof SDL_NAME(snd_pcm_hw_params_sizeof) |
95 | 95 |
96 /* cast funcs to char* first, to please GCC's strict aliasing rules. */ | |
96 static struct { | 97 static struct { |
97 const char *name; | 98 const char *name; |
98 void **func; | 99 void **func; |
99 } alsa_functions[] = { | 100 } alsa_functions[] = { |
100 { "snd_pcm_open", (void**)&SDL_NAME(snd_pcm_open) }, | 101 { "snd_pcm_open", (void**)(char*)&SDL_NAME(snd_pcm_open) }, |
101 { "snd_pcm_close", (void**)&SDL_NAME(snd_pcm_close) }, | 102 { "snd_pcm_close", (void**)(char*)&SDL_NAME(snd_pcm_close) }, |
102 { "snd_pcm_writei", (void**)&SDL_NAME(snd_pcm_writei) }, | 103 { "snd_pcm_writei", (void**)(char*)&SDL_NAME(snd_pcm_writei) }, |
103 { "snd_pcm_resume", (void**)&SDL_NAME(snd_pcm_resume) }, | 104 { "snd_pcm_resume", (void**)(char*)&SDL_NAME(snd_pcm_resume) }, |
104 { "snd_pcm_prepare", (void**)&SDL_NAME(snd_pcm_prepare) }, | 105 { "snd_pcm_prepare", (void**)(char*)&SDL_NAME(snd_pcm_prepare) }, |
105 { "snd_pcm_drain", (void**)&SDL_NAME(snd_pcm_drain) }, | 106 { "snd_pcm_drain", (void**)(char*)&SDL_NAME(snd_pcm_drain) }, |
106 { "snd_strerror", (void**)&SDL_NAME(snd_strerror) }, | 107 { "snd_strerror", (void**)(char*)&SDL_NAME(snd_strerror) }, |
107 { "snd_pcm_hw_params_sizeof", (void**)&SDL_NAME(snd_pcm_hw_params_sizeof) }, | 108 { "snd_pcm_hw_params_sizeof", (void**)(char*)&SDL_NAME(snd_pcm_hw_params_sizeof) }, |
108 { "snd_pcm_hw_params_any", (void**)&SDL_NAME(snd_pcm_hw_params_any) }, | 109 { "snd_pcm_hw_params_any", (void**)(char*)&SDL_NAME(snd_pcm_hw_params_any) }, |
109 { "snd_pcm_hw_params_set_access", (void**)&SDL_NAME(snd_pcm_hw_params_set_access) }, | 110 { "snd_pcm_hw_params_set_access", (void**)(char*)&SDL_NAME(snd_pcm_hw_params_set_access) }, |
110 { "snd_pcm_hw_params_set_format", (void**)&SDL_NAME(snd_pcm_hw_params_set_format) }, | 111 { "snd_pcm_hw_params_set_format", (void**)(char*)&SDL_NAME(snd_pcm_hw_params_set_format) }, |
111 { "snd_pcm_hw_params_set_channels", (void**)&SDL_NAME(snd_pcm_hw_params_set_channels) }, | 112 { "snd_pcm_hw_params_set_channels", (void**)(char*)&SDL_NAME(snd_pcm_hw_params_set_channels) }, |
112 { "snd_pcm_hw_params_get_channels", (void**)&SDL_NAME(snd_pcm_hw_params_get_channels) }, | 113 { "snd_pcm_hw_params_get_channels", (void**)(char*)&SDL_NAME(snd_pcm_hw_params_get_channels) }, |
113 { "snd_pcm_hw_params_set_rate_near", (void**)&SDL_NAME(snd_pcm_hw_params_set_rate_near) }, | 114 { "snd_pcm_hw_params_set_rate_near", (void**)(char*)&SDL_NAME(snd_pcm_hw_params_set_rate_near) }, |
114 { "snd_pcm_hw_params_set_period_size_near", (void**)&SDL_NAME(snd_pcm_hw_params_set_period_size_near) }, | 115 { "snd_pcm_hw_params_set_period_size_near", (void**)(char*)&SDL_NAME(snd_pcm_hw_params_set_period_size_near) }, |
115 { "snd_pcm_hw_params_set_periods_near", (void**)&SDL_NAME(snd_pcm_hw_params_set_periods_near) }, | 116 { "snd_pcm_hw_params_set_periods_near", (void**)(char*)&SDL_NAME(snd_pcm_hw_params_set_periods_near) }, |
116 { "snd_pcm_hw_params", (void**)&SDL_NAME(snd_pcm_hw_params) }, | 117 { "snd_pcm_hw_params", (void**)(char*)&SDL_NAME(snd_pcm_hw_params) }, |
117 { "snd_pcm_nonblock", (void**)&SDL_NAME(snd_pcm_nonblock) }, | 118 { "snd_pcm_nonblock", (void**)(char*)&SDL_NAME(snd_pcm_nonblock) }, |
118 }; | 119 }; |
119 | 120 |
120 static void UnloadALSALibrary(void) { | 121 static void UnloadALSALibrary(void) { |
121 if (alsa_loaded) { | 122 if (alsa_loaded) { |
122 /* SDL_UnloadObject(alsa_handle);*/ | 123 /* SDL_UnloadObject(alsa_handle);*/ |