2009-04-26 Matthew Barnes * NEWS: Update for 0.6.7 * docs/reference: Update developer documentation. * src/gva-input-file.c: Document the new functions. 2009-04-13 Matthew Barnes * configure.ac: Post-release version bump. * src/Makefile.am: Add gva-input-file.[ch]. * src/gva-error.h: Add GVA_ERROR_FORMAT for file format errors. * src/gva-input-file.c: * src/gva-input-file.h: New GvaInputFile class for parsing input file headers. Knows about all header formats dating back to MAME 0.112. * src/gva-mame-common.c (gva_mame_get_input_files): Return a list of GvaInputFiles instead of a hash table of filenames and ROM names. * src/gva-play-back.c (play_back_add_input_file): Take a GvaInputFile instead of a filename and ROM name. * src/gva-play-back.c (gva_play_back_show): Adapt to new gva_mame_get_input_files() signature. * src/gva-util.c (gva_get_debug_flags): * src/gva-util.h (GvaDebugFlags): Add GVA_DEBUG_INP flag, which prints input file details. 2009-04-11 Matthew Barnes * src/gva-process.c (process_stdout_ready): Break out of the loop immediately if the status is not G_IO_STATUS_NORMAL. Avoids potentially getting stuck in the loop. 2009-04-11 Pierre Riteau The code reading the output of the SDLMAME child process was non-functional on OpenBSD because of differences of behavior for poll(2). When poll(2) monitors output from a pipe which reaches EOF, the revents flags returned by poll(2) differ between implementations. Linux only sets the POLLHUP flag, while OpenBSD sets both the POLLIN and the POLLHUP flags. Since the condition variable given as argument to process_stdout_ready() is partially derived from the revents flags, process_stdout_ready() on OpenBSD is called with G_IO_IN|G_IO_HUP when we hit EOF. With these flags, the event source is not removed, and process_stdout_ready() is called again and again. * src/gva-process.c (process_read_line), (process_stdout_ready), (process_stderr_ready): Modify the process_read_line() function to return the status reported by g_io_channel_read_line(). This makes is possible for process_stdout_ready() and process_stderr_ready() to remove the event source when the status is not G_IO_STATUS_NORMAL. 2009-04-10 Matthew Barnes * data/gnome-video-arcade.schemas: Remove empty tags. 2009-04-06 Matthew Barnes * src/gva-process.c (process_stdout_ready): Correctly handle the (G_IO_IN | G_IO_HUP) case. 2009-04-06 Matthew Barnes * src/gva-process.c (process_read_line): Remove the assertion before process_propagate_error(), since the function can handle NULL GErrors. Hopefully this fixes a crash on OpenBSD, but I'd still like to know why g_io_channel_read_line() returns G_IO_STATUS_ERROR without setting the GError.