Some fixes here and there. Do not build FFmpeg by default.

This commit is contained in:
Themaister 2011-01-23 13:34:41 +01:00
parent 9cf25dcb67
commit c4f78912a1
4 changed files with 26 additions and 12 deletions

View File

@ -43,7 +43,6 @@ msg_queue_t *msg_queue_new(size_t size)
queue->size = size + 1;
queue->elems = calloc(queue->size, sizeof(struct queue_elem*));
// Allocate one extra for scratch space when finding lowest prio elem.
if (!queue->elems)
{
@ -56,16 +55,8 @@ msg_queue_t *msg_queue_new(size_t size)
void msg_queue_free(msg_queue_t *queue)
{
for (size_t i = 1; i < queue->ptr; i++)
{
if (queue->elems[i])
{
free(queue->elems[i]->msg);
free(queue->elems[i]);
}
}
msg_queue_clear(queue);
free(queue->elems);
free(queue->tmp_msg);
free(queue);
}
@ -98,6 +89,22 @@ void msg_queue_push(msg_queue_t *queue, const char *msg, unsigned prio, unsigned
}
}
void msg_queue_clear(msg_queue_t *queue)
{
for (size_t i = 1; i < queue->ptr; i++)
{
if (queue->elems[i])
{
free(queue->elems[i]->msg);
free(queue->elems[i]);
queue->elems[i] = NULL;
}
}
queue->ptr = 1;
free(queue->tmp_msg);
queue->tmp_msg = NULL;
}
const char *msg_queue_pull(msg_queue_t *queue)
{
if (queue->ptr == 1) // Nothing in queue. :(
@ -109,6 +116,7 @@ const char *msg_queue_pull(msg_queue_t *queue)
return front->msg;
else
{
free(queue->tmp_msg);
queue->tmp_msg = front->msg;
front->msg = NULL;

View File

@ -33,6 +33,9 @@ void msg_queue_push(msg_queue_t *queue, const char *msg, unsigned prio, unsigned
// Pulls highest prio message in queue. Returns NULL if no message in queue.
const char *msg_queue_pull(msg_queue_t *queue);
// Clear out everything in queue.
void msg_queue_clear(msg_queue_t *queue);
void msg_queue_free(msg_queue_t *queue);
#endif

View File

@ -9,7 +9,7 @@ PACKAGE_VERSION=0.1
# $3: Default arg. auto implies that HAVE_ALSA will be set according to library checks later on.
add_command_line_enable DYNAMIC "Enable dynamic loading of libsnes library." no
add_command_line_string LIBSNES "libsnes library used" "-lsnes"
add_command_line_enable FFMPEG "Enable FFmpeg recording support" auto
add_command_line_enable FFMPEG "Enable FFmpeg recording support" no
add_command_line_enable FILTER "Disable CPU filter support" yes
add_command_line_enable CONFIGFILE "Disable support for config file" yes
add_command_line_enable CG "Enable Cg shader support" auto

View File

@ -97,6 +97,8 @@ static void video_frame(const uint16_t *data, unsigned width, unsigned height)
}
#endif
const char *msg = msg_queue_pull(g_extern.msg_queue);
#ifdef HAVE_FILTER
uint16_t output_filter[width * height * 4 * 4];
uint16_t output[width * height];
@ -104,7 +106,6 @@ static void video_frame(const uint16_t *data, unsigned width, unsigned height)
if (g_settings.video.filter != FILTER_NONE)
process_frame(output, data, width, height);
const char *msg = msg_queue_pull(g_extern.msg_queue);
switch (g_settings.video.filter)
{
@ -676,6 +677,7 @@ int main(int argc, char *argv[])
bool should_savestate = driver.input->key_pressed(driver.input_data, SSNES_SAVE_STATE_KEY);
if (should_savestate && !old_should_savestate)
{
msg_queue_clear(g_extern.msg_queue);
msg_queue_push(g_extern.msg_queue, "Saving state! ^_^", 1, 180);
save_state(g_extern.savestate_name);
}
@ -685,6 +687,7 @@ int main(int argc, char *argv[])
bool should_loadstate = driver.input->key_pressed(driver.input_data, SSNES_LOAD_STATE_KEY);
if (!should_savestate && should_loadstate && !old_should_loadstate)
{
msg_queue_clear(g_extern.msg_queue);
msg_queue_push(g_extern.msg_queue, "Loading state! ^_^", 1, 180);
load_state(g_extern.savestate_name);
}