Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
inactive123 committed Mar 1, 2019
1 parent 8db94dd commit b506f65
Show file tree
Hide file tree
Showing 16 changed files with 255 additions and 133 deletions.
52 changes: 0 additions & 52 deletions audio/audio_mixer.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,6 @@
#include <formats/rwav.h>
#include <memalign.h>

#ifdef HAVE_THREADS
#include <rthreads/rthreads.h>
#endif

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Expand Down Expand Up @@ -191,10 +187,6 @@ struct audio_mixer_voice
static struct audio_mixer_voice s_voices[AUDIO_MIXER_MAX_VOICES] = {{0}};
static unsigned s_rate = 0;

#ifdef HAVE_THREADS
static slock_t* s_locker = NULL;
#endif

static bool wav2float(const rwav_t* wav, float** pcm, size_t samples_out)
{
size_t i;
Expand Down Expand Up @@ -316,24 +308,12 @@ void audio_mixer_init(unsigned rate)

for (i = 0; i < AUDIO_MIXER_MAX_VOICES; i++)
s_voices[i].type = AUDIO_MIXER_TYPE_NONE;

#ifdef HAVE_THREADS
if (s_locker)
slock_free(s_locker);
s_locker = slock_new();
#endif
}

void audio_mixer_done(void)
{
unsigned i;

#ifdef HAVE_THREADS
/* Dont call audio mixer functions after this point */
slock_free(s_locker);
s_locker = NULL;
#endif

for (i = 0; i < AUDIO_MIXER_MAX_VOICES; i++)
s_voices[i].type = AUDIO_MIXER_TYPE_NONE;
}
Expand Down Expand Up @@ -801,12 +781,6 @@ audio_mixer_voice_t* audio_mixer_play(audio_mixer_sound_t* sound, bool repeat,
if (!sound)
return NULL;

#ifdef HAVE_THREADS
slock_lock(s_locker);
#endif

audio_resampler_lock();

for (i = 0; i < AUDIO_MIXER_MAX_VOICES; i++, voice++)
{
if (voice->type != AUDIO_MIXER_TYPE_NONE)
Expand Down Expand Up @@ -855,12 +829,6 @@ audio_mixer_voice_t* audio_mixer_play(audio_mixer_sound_t* sound, bool repeat,
else
voice = NULL;

audio_resampler_unlock();

#ifdef HAVE_THREADS
slock_unlock(s_locker);
#endif

return voice;
}

Expand All @@ -871,19 +839,11 @@ void audio_mixer_stop(audio_mixer_voice_t* voice)

if (voice)
{
#ifdef HAVE_THREADS
slock_lock(s_locker);
#endif

stop_cb = voice->stop_cb;
sound = voice->sound;

voice->type = AUDIO_MIXER_TYPE_NONE;

#ifdef HAVE_THREADS
slock_unlock(s_locker);
#endif

if (stop_cb)
stop_cb(sound, AUDIO_MIXER_SOUND_STOPPED);
}
Expand Down Expand Up @@ -1239,12 +1199,6 @@ void audio_mixer_mix(float* buffer, size_t num_frames, float volume_override, bo
float* sample = NULL;
audio_mixer_voice_t* voice = s_voices;

#ifdef HAVE_THREADS
slock_lock(s_locker);
#endif

audio_resampler_lock();

for (i = 0; i < AUDIO_MIXER_MAX_VOICES; i++, voice++)
{
float volume = (override) ? volume_override : voice->volume;
Expand Down Expand Up @@ -1286,12 +1240,6 @@ void audio_mixer_mix(float* buffer, size_t num_frames, float volume_override, bo
else if (*sample > 1.0f)
*sample = 1.0f;
}

audio_resampler_unlock();

#ifdef HAVE_THREADS
slock_unlock(s_locker);
#endif
}

float audio_mixer_voice_get_volume(audio_mixer_voice_t *voice)
Expand Down
42 changes: 0 additions & 42 deletions audio/resampler/audio_resampler.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,6 @@

#include <audio/audio_resampler.h>

#ifdef HAVE_THREADS
#include <rthreads/rthreads.h>
#endif

#ifdef HAVE_THREADS
static slock_t* s_resampler_lock = NULL;
#endif

static const retro_resampler_t *resampler_drivers[] = {
&sinc_resampler,
#ifdef HAVE_CC_RESAMPLER
Expand Down Expand Up @@ -178,37 +170,3 @@ bool retro_resampler_realloc(void **re, const retro_resampler_t **backend,

return true;
}

void audio_resampler_lock_init(void)
{
#ifdef HAVE_THREADS
if (s_resampler_lock)
slock_free(s_resampler_lock);
s_resampler_lock = slock_new();
#endif
}

void audio_resampler_lock_free(void)
{
#ifdef HAVE_THREADS
if (s_resampler_lock)
slock_free(s_resampler_lock);
s_resampler_lock = NULL;
#endif
}

void audio_resampler_lock(void)
{
#ifdef HAVE_THREADS
if (s_resampler_lock)
slock_lock(s_resampler_lock);
#endif
}

void audio_resampler_unlock(void)
{
#ifdef HAVE_THREADS
if (s_resampler_lock)
slock_unlock(s_resampler_lock);
#endif
}
58 changes: 57 additions & 1 deletion features/features_cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ retro_time_t cpu_features_get_time_usec(void)
#endif
}

#if defined(__x86_64__) || defined(__i386__) || defined(__i486__) || defined(__i686__) || (defined(_M_X64) && _MSC_VER > 1310) || (defined(_M_IX86) && _MSC_VER > 1310)
#if defined(__x86_64__) || defined(__i386__) || defined(__i486__) || defined(__i686__) || (defined(_M_X64) && _MSC_VER > 1310) || (defined(_M_IX86) && _MSC_VER > 1310)
#define CPU_X86
#endif

Expand Down Expand Up @@ -827,3 +827,59 @@ uint64_t cpu_features_get(void)

return cpu;
}

void cpu_features_get_model_name(char *name, int len)
{
#if defined(CPU_X86) && !defined(__MACH__)
union {
int i[4];
unsigned char s[16];
} flags;
int i, j;
size_t pos = 0;
bool start = false;

if (!name)
return;

x86_cpuid(0x80000000, flags.i);

if (flags.i[0] < 0x80000004)
return;

for (i = 0; i < 3; i++)
{
memset(flags.i, 0, sizeof(flags.i));
x86_cpuid(0x80000002 + i, flags.i);

for (j = 0; j < sizeof(flags.s); j++)
{
if (!start && flags.s[j] == ' ')
continue;
else
start = true;

if (pos == len - 1)
{
/* truncate if we ran out of room */
name[pos] = '\0';
goto end;
}

name[pos++] = flags.s[j];
}
}
end:
/* terminate our string */
if (pos < len)
name[pos] = '\0';
#elif defined(__MACH__)
if (!name)
return;
sysctlbyname("machdep.cpu.brand_string", name, &len, NULL, 0);
#else
if (!name)
return;
return;
#endif
}
2 changes: 1 addition & 1 deletion file/file_path.c
Original file line number Diff line number Diff line change
Expand Up @@ -608,7 +608,7 @@ void fill_dated_filename(char *out_filename,
time_t cur_time = time(NULL);

strftime(out_filename, size,
"RetroArch-%m%d-%H%M%S.", localtime(&cur_time));
"RetroArch-%m%d-%H%M%S", localtime(&cur_time));
strlcat(out_filename, ext, size);
}

Expand Down

0 comments on commit b506f65

Please sign in to comment.