C89_BUILD fixes

This commit is contained in:
twinaphex 2017-06-25 04:05:34 +02:00
parent aaa590c817
commit 5d1cfc47cc
4 changed files with 113 additions and 102 deletions

View File

@ -341,7 +341,7 @@ enum
{ {
SNDRV_PCM_TSTAMP_NONE = 0, SNDRV_PCM_TSTAMP_NONE = 0,
SNDRV_PCM_TSTAMP_ENABLE, SNDRV_PCM_TSTAMP_ENABLE,
SNDRV_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_ENABLE, SNDRV_PCM_TSTAMP_LAST = SNDRV_PCM_TSTAMP_ENABLE
}; };
/** Enumeration of a PCM's hardware parameters. /** Enumeration of a PCM's hardware parameters.
@ -374,7 +374,7 @@ enum pcm_param
PCM_PARAM_BUFFER_TIME, PCM_PARAM_BUFFER_TIME,
PCM_PARAM_BUFFER_SIZE, PCM_PARAM_BUFFER_SIZE,
PCM_PARAM_BUFFER_BYTES, PCM_PARAM_BUFFER_BYTES,
PCM_PARAM_TICK_TIME, PCM_PARAM_TICK_TIME
}; /* enum pcm_param */ }; /* enum pcm_param */
/* channel positions */ /* channel positions */
@ -420,22 +420,19 @@ enum
SNDRV_CHMAP_BC, /* bottom center */ SNDRV_CHMAP_BC, /* bottom center */
SNDRV_CHMAP_BLC, /* bottom left center */ SNDRV_CHMAP_BLC, /* bottom left center */
SNDRV_CHMAP_BRC, /* bottom right center */ SNDRV_CHMAP_BRC, /* bottom right center */
SNDRV_CHMAP_LAST = SNDRV_CHMAP_BRC, SNDRV_CHMAP_LAST = SNDRV_CHMAP_BRC
}; };
enum #define SNDRV_PCM_MMAP_OFFSET_DATA 0x00000000
{ #define SNDRV_PCM_MMAP_OFFSET_STATUS 0x80000000
SNDRV_PCM_MMAP_OFFSET_DATA = 0x00000000, #define SNDRV_PCM_MMAP_OFFSET_CONTROL 0x81000000
SNDRV_PCM_MMAP_OFFSET_STATUS = 0x80000000,
SNDRV_PCM_MMAP_OFFSET_CONTROL = 0x81000000,
};
enum enum
{ {
SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, /* gettimeofday equivalent */ SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, /* gettimeofday equivalent */
SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, /* posix_clock_monotonic equivalent */ SNDRV_PCM_TSTAMP_TYPE_MONOTONIC, /* posix_clock_monotonic equivalent */
SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW, /* monotonic_raw (no NTP) */ SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW, /* monotonic_raw (no NTP) */
SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW, SNDRV_PCM_TSTAMP_TYPE_LAST = SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW
}; };
typedef unsigned long snd_pcm_uframes_t; typedef unsigned long snd_pcm_uframes_t;
@ -443,7 +440,6 @@ typedef signed long snd_pcm_sframes_t;
typedef int snd_pcm_hw_param_t; typedef int snd_pcm_hw_param_t;
typedef int __bitwise snd_pcm_access_t; typedef int __bitwise snd_pcm_access_t;
typedef int __bitwise snd_pcm_subformat_t; typedef int __bitwise snd_pcm_subformat_t;
typedef int __bitwise snd_pcm_subformat_t;
typedef int __bitwise snd_pcm_state_t; typedef int __bitwise snd_pcm_state_t;
typedef int __bitwise snd_pcm_format_t; typedef int __bitwise snd_pcm_format_t;
@ -1124,42 +1120,44 @@ static int pcm_sync_ptr(struct pcm *pcm, int flags)
static int pcm_hw_mmap_status(struct pcm *pcm) static int pcm_hw_mmap_status(struct pcm *pcm)
{ {
if (pcm->sync_ptr) int page_size;
return 0; if (pcm->sync_ptr)
return 0;
int page_size = sysconf(_SC_PAGE_SIZE); page_size = sysconf(_SC_PAGE_SIZE);
pcm->mmap_status = mmap(NULL, page_size, PROT_READ, MAP_FILE | MAP_SHARED,
pcm->fd, SNDRV_PCM_MMAP_OFFSET_STATUS);
if (pcm->mmap_status == MAP_FAILED)
pcm->mmap_status = NULL;
if (!pcm->mmap_status)
goto mmap_error;
pcm->mmap_control = mmap(NULL, page_size, PROT_READ | PROT_WRITE, pcm->mmap_status = mmap(NULL, page_size, PROT_READ, MAP_FILE | MAP_SHARED,
MAP_FILE | MAP_SHARED, pcm->fd, SNDRV_PCM_MMAP_OFFSET_CONTROL); pcm->fd, SNDRV_PCM_MMAP_OFFSET_STATUS);
if (pcm->mmap_control == MAP_FAILED) if (pcm->mmap_status == MAP_FAILED)
pcm->mmap_control = NULL; pcm->mmap_status = NULL;
if (!pcm->mmap_control) if (!pcm->mmap_status)
{ goto mmap_error;
munmap(pcm->mmap_status, page_size);
pcm->mmap_status = NULL;
goto mmap_error;
}
pcm->mmap_control->avail_min = 1;
return 0; pcm->mmap_control = mmap(NULL, page_size, PROT_READ | PROT_WRITE,
MAP_FILE | MAP_SHARED, pcm->fd, SNDRV_PCM_MMAP_OFFSET_CONTROL);
if (pcm->mmap_control == MAP_FAILED)
pcm->mmap_control = NULL;
if (!pcm->mmap_control)
{
munmap(pcm->mmap_status, page_size);
pcm->mmap_status = NULL;
goto mmap_error;
}
pcm->mmap_control->avail_min = 1;
return 0;
mmap_error: mmap_error:
pcm->sync_ptr = calloc(1, sizeof(*pcm->sync_ptr)); pcm->sync_ptr = calloc(1, sizeof(*pcm->sync_ptr));
if (!pcm->sync_ptr) if (!pcm->sync_ptr)
return -ENOMEM; return -ENOMEM;
pcm->mmap_status = &pcm->sync_ptr->s.status; pcm->mmap_status = &pcm->sync_ptr->s.status;
pcm->mmap_control = &pcm->sync_ptr->c.control; pcm->mmap_control = &pcm->sync_ptr->c.control;
pcm->mmap_control->avail_min = 1; pcm->mmap_control->avail_min = 1;
pcm_sync_ptr(pcm, 0); pcm_sync_ptr(pcm, 0);
return 0; return 0;
} }
static void pcm_hw_munmap_status(struct pcm *pcm) static void pcm_hw_munmap_status(struct pcm *pcm)
@ -1541,7 +1539,7 @@ static int pcm_read(struct pcm *pcm, void *data, unsigned int count)
#endif #endif
static struct pcm bad_pcm = { static struct pcm bad_pcm = {
.fd = -1, -1 /* fd */
}; };
#if 0 #if 0

View File

@ -1965,7 +1965,7 @@ static config_file_t *open_default_config_file(void)
skeleton_conf[0] = '\0'; skeleton_conf[0] = '\0';
// Build a retroarch.cfg path from the global config directory (/etc). /* Build a retroarch.cfg path from the global config directory (/etc). */
fill_pathname_join(skeleton_conf, GLOBAL_CONFIG_DIR, fill_pathname_join(skeleton_conf, GLOBAL_CONFIG_DIR,
file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(skeleton_conf)); file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(skeleton_conf));

View File

@ -73,7 +73,7 @@ static int16_t hidpad_psxadapter_get_axis(void *data, unsigned axis)
struct hidpad_psxadapter_data *device = (struct hidpad_psxadapter_data*)data; struct hidpad_psxadapter_data *device = (struct hidpad_psxadapter_data*)data;
if (!device || axis >= 4 || if (!device || axis >= 4 ||
(device->data[2]==0x7F) )//digital mode detection (device->data[2]==0x7F) ) /* digital mode detection */
return 0; return 0;
switch (axis) switch (axis)
@ -94,7 +94,7 @@ static int16_t hidpad_psxadapter_get_axis(void *data, unsigned axis)
val = (val << 8) - 0x8000; val = (val << 8) - 0x8000;
return (abs(val) > 0x1000) ? val : 0;//hard coded deadzone return (abs(val) > 0x1000) ? val : 0; /* hard coded deadzone */
} }
#define PSX_H_GET(a) (a & 0x0F) /*HAT MASK = 0x0F */ #define PSX_H_GET(a) (a & 0x0F) /*HAT MASK = 0x0F */
@ -143,7 +143,7 @@ static void hidpad_psxadapter_packet_handler(void *data, uint8_t *packet, uint16
if (button_mapping[i] != NO_BTN) if (button_mapping[i] != NO_BTN)
device->buttons |= (pressed_keys & (1 << i)) ? (UINT64_C(1) << button_mapping[i]) : 0; device->buttons |= (pressed_keys & (1 << i)) ? (UINT64_C(1) << button_mapping[i]) : 0;
if (device->data[2]==0x7F) //digital mode detection if (device->data[2]==0x7F) /* digital mode detection */
{ {
/* We're in digital mode, process the dpad values */ /* We're in digital mode, process the dpad values */
device->buttons |= (device->data[4]==0x00) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_LEFT) : 0; device->buttons |= (device->data[4]==0x00) ? (UINT64_C(1) << RETRO_DEVICE_ID_JOYPAD_LEFT) : 0;

View File

@ -629,35 +629,36 @@ int menu_hash_get_help_pt_br_enum(enum msg_hash_enums msg, char *s, size_t len)
"Bem-vindo ao RetroArch \n" "Bem-vindo ao RetroArch \n"
); );
break; break;
case MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: { case MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC:
/* Work around C89 limitations */ {
char u[501]; /* Work around C89 limitations */
const char *t = char u[501];
"O RetroArch utiliza uma forma única de \n" const char *t =
"sincronização de áudio/video aonde ele precisa \n" "O RetroArch utiliza uma forma única de \n"
"ser calibrado pela taxa de atualização da sua \n" "sincronização de áudio/video aonde ele precisa \n"
"tela para um melhor resultado no desempenho.\n" "ser calibrado pela taxa de atualização da sua \n"
" \n" "tela para um melhor resultado no desempenho.\n"
"Se você experimentar qualquer estalido no áudio \n" " \n"
"ou rasgo de vídeo, normalmente isto significa que você \n" "Se você experimentar qualquer estalido no áudio \n"
"precisa calibrar as configurações. Algumas escolhas abaixo:\n" "ou rasgo de vídeo, normalmente isto significa que você \n"
" \n"; "precisa calibrar as configurações. Algumas escolhas abaixo:\n"
snprintf(u, sizeof(u), /* can't inline this due to the printf arguments */ " \n";
snprintf(u, sizeof(u), /* can't inline this due to the printf arguments */
"a) Vá para '%s' -> '%s', e habilite \n" "a) Vá para '%s' -> '%s', e habilite \n"
"'Video Paralelizado'. A taxa de atualização não \n" "'Video Paralelizado'. A taxa de atualização não \n"
"vai importar neste modo, a taxa de quadros será maior, \n" "vai importar neste modo, a taxa de quadros será maior, \n"
"mas o vídeo será menos fluído. \n" "mas o vídeo será menos fluído. \n"
"b) Vá para '%s' -> '%s', e observe \n" "b) Vá para '%s' -> '%s', e observe \n"
"'%s'. Deixe executar até \n" "'%s'. Deixe executar até \n"
"2048 quadros, então pressione 'OK'.", "2048 quadros, então pressione 'OK'.",
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)); msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO));
strlcpy(s, t, len); strlcpy(s, t, len);
strlcat(s, u, len); strlcat(s, u, len);
} }
break; break;
case MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: case MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC:
snprintf(s, len, snprintf(s, len,
@ -1151,24 +1152,30 @@ int menu_hash_get_help_pt_br_enum(enum msg_hash_enums msg, char *s, size_t len)
"implementações de núcleo Libretro."); "implementações de núcleo Libretro.");
break; break;
case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO: case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO:
snprintf(s, len, {
"Taxa de Atualização Automática. \n" /* Work around C89 limitations */
" \n" const char *t =
"A taxa de atualização precisa da tela (Hz). \n" "Taxa de Atualização Automática. \n"
"É utilizado para calcular a taxa de entrada \n" " \n"
"de áudio com a fórmula: \n" "A taxa de atualização precisa da tela (Hz). \n"
" \n" "É utilizado para calcular a taxa de entrada \n"
"taxa de entrada de áudio = taxa de entrada do jogo * taxa \n" "de áudio com a fórmula: \n"
"de atualização da tela / taxa de atualização do jogo \n" " \n"
" \n" "taxa de entrada de áudio = taxa de entrada do jogo * taxa \n"
"Se a implementação não reportar nenhum \n" "de atualização da tela / taxa de atualização do jogo \n"
"valor, os padrões NTSC serão usados para \n" " \n";
"garantir compatibilidade.\n" const char *u =
" \n" "Se a implementação não reportar nenhum \n"
"Este valor deve ficar próximo de 60Hz para evitar \n" "valor, os padrões NTSC serão usados para \n"
"mudanças bruscas de timbre de som. Se seu monitor não \n" "garantir compatibilidade.\n"
"roda a 60Hz, ou próximo disso, \n" " \n"
"desative o VSync, e deixe este valor no padrão."); "Este valor deve ficar próximo de 60Hz para evitar \n"
"mudanças bruscas de timbre de som. Se seu monitor não \n"
"roda a 60Hz, ou próximo disso, \n"
"desative o VSync, e deixe este valor no padrão.";
strlcpy(s, t, len);
strlcat(s, u, len);
}
break; break;
case MENU_ENUM_LABEL_VIDEO_ROTATION: case MENU_ENUM_LABEL_VIDEO_ROTATION:
snprintf(s, len, snprintf(s, len,
@ -1580,20 +1587,26 @@ int menu_hash_get_help_pt_br_enum(enum msg_hash_enums msg, char *s, size_t len)
"haverá oscilação no Netplay. \n"); "haverá oscilação no Netplay. \n");
break; break;
case MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES: case MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES:
snprintf(s, len, {
"A frequência em quadros na qual o Netplay \n" /* Work around C89 limitations */
"irá verificar se o hospedeiro e o cliente \n" const char *t =
"estão sincronizados. \n" "A frequência em quadros na qual o Netplay \n"
" \n" "irá verificar se o hospedeiro e o cliente \n"
"Com a maioria dos núcleos, este valor não terá \n" "estão sincronizados. \n"
"efeito perceptível e pode ser ignorado. Com \n" " \n"
"núcleos não determinísticos, este valor define \n" "Com a maioria dos núcleos, este valor não terá \n"
"quão frequente os pares do Netplay serão colocados \n" "efeito perceptível e pode ser ignorado. Com \n";
"em sincronia. Com núcleos defeituosos, definir para \n" const char *u =
"qualquer valor que não zero irá causar problemas \n" "núcleos não determinísticos, este valor define \n"
"de desempenho severos. Defina como zero para desativar \n" "quão frequente os pares do Netplay serão colocados \n"
"verificações. Este valor é usado somente no \n" "em sincronia. Com núcleos defeituosos, definir para \n"
"hospedeiro de Netplay. \n"); "qualquer valor que não zero irá causar problemas \n"
"de desempenho severos. Defina como zero para desativar \n"
"verificações. Este valor é usado somente no \n"
"hospedeiro de Netplay. \n";
strlcpy(s, t, len);
strlcat(s, u, len);
}
break; break;
case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_MIN: case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_MIN:
snprintf(s, len, snprintf(s, len,