2008-01-11 Matthew Barnes * NEWS: Update for 0.5.5 * data/gnome-video-arcade.glade: Don't show expanders in the main and play back tree views. * docs/reference/gnome-video-arcade-sections.txt: Add new symbols to the developer documentation. * src/main.c (start): Sensitize the "search" action after database construction. * src/gva-audit.c (gva_audit_detect_changes): Document this function. * src/gva-columns.c (columns_comment_edited_cb): New function gets called the user finishes editing a comment. Writes the new comment back into the tree model. * src/gva-columns.c (columns_time_set_properties): New function, formerly known as play_back_render_time(). * src/gva-columns.c: Add "comment" and "time" columns. * src/gva-db.c: Add a "playback" table to the game database that remembers user comments for recorded games. This table MUST survive a database rebuild! * src/gva-db.c (db_parser_bind_text): Improve error handling. * src/gva-db.c (gva_db_reset): Do NOT destroy the game database file. Instead, drop all the tables that will be rebuilt (not including the "playback" table). * src/gva-db.c (gva_db_get_table): New function is a thin wrapper for sqlite3_get_table(), which is a convenient way to execute short queries. * src/gva-db.c (gva_db_set_error): Prefix SQLite error messages with "(SQL)". * src/gva-game-store.c: * src/gva-game-store.h: Add GVA_GAME_STORE_COLUMN_COMMENT. Add GVA_GAME_STORE_COLUMN_INODE. * src/gva-main.c: Desensitize the "search" action on startup. * src/gva-play-back.c (play_back_render_time): Move this function over to gva-columns.c. * src/gva-play-back.c (play_back_add_input_file): Fetch the user comment for a recorded game from the game database, and if that doesn't work just use the game title. This is how new game recordings get picked up. Also, write inode values to the tree model so we can retrieve them later. * src/gva-play-back.c (gva_play_back_init): Move the GtkTreeViewColumn configuration over to gva-columns.c, and just ask for the tree view columns using gva_columns_new_from_id(). * src/gva-play-back.c (gva_play_back_window_hide_cb): New function saves the recorded game entries to the game database when the "Recorded Games" window is closed. 2008-01-08 Matthew Barnes * src/gva-mame-sdlmame.c (gva_mame_get_version), (gva_get_total_supported): * src/gva-mame-xmame.c (gva_mame_get_version), (gva_get_total_supported): Changed my mind about the caching. Might be better suited for a MAME initialization function if I ever decide to add one. * src/main.c (start): * src/gva-audit.c (audit_data_new): * src/gva-db.c (gva_db_needs_rebuilt): Revert changes for gva_mame_get_version(). 2008-01-08 Matthew Barnes Detecting fine-grained changes gets really hairy when dealing with split or merged ROM sets so I'm backing away from my "Quick Audit" idea and taking a simpler approach: if any of the directories in "rompath" or "samplepath" have been modified (i.e. the timestamps are more recent than the database timestamp), do a full audit. * src/main.c (start): Call gva_audit_detect_changes() instead of gva_quick_audit(). If it returns TRUE, run a full ROM file audit. * src/gva-audit.c (gva_quick_audit): Revert this function and all related support functions. * src/gva-audit.c (gva_audit_detect_changes): New function compare the timestamp of the games database against the various ROM and sample directories. Return TRUE if any of the directories have been updated since the last database modification. * src/gva-error.h: Revert GVA_ERROR_LIMIT. * src/gva-ui.c: Reword documentation for actions that present a window. 2008-01-06 Matthew Barnes * src/gva-error.h: Add GVA_ERROR_LIMIT. * src/gva-audit.c (gva_quick_audit): Return a boolean instead of GvaAuditResult. If too many files have changed to proceed with the quick-audit, set the GError to GVA_ERROR_LIMIT and return FALSE. Eliminates the need for the GvaAuditResult enumeration. * src/gva-main (start): Deal with gva_quick_audit()'s new semantics. * src/gva-ui.c: Add a tooltip for Help->Contents. 2008-01-06 Matthew Barnes * docs/reference/gnome-video-arcade-sections.txt: Add new symbols to the developer documentation. * src/main.c (start): If we're not rebuilding the game database, check for changed ROM or sample files and either do a quick or full audit, depending on the extent of the changes. * src/main.c (start): * src/gva-audit.c (gva_audit_save_errors): * src/gva-db.c (gva_db_needs_rebuilt): gva_mame_get_version() now returns a const string. * src/gva-audit.c (gva_quick_audit): New function (and a bunch of supporting private functions and refactoring work) detects new or changed ROM and sample files and tries to quickly verify them and update the game database. If the changes are too extensive for a quick update, it recommends a full audit. * src/gva-audit.c (gva_audit_roms): Call gva_mame_verify_all_roms() (renamed function). * src/gva-audit.c (gva_audit_samples): Call gva_mame_verify_all_samples() (renamed function). * src/gva-main.c (main_build_database_progress_cb): Use gva_main_progress_bar_set_fraction(). * src/gva-main.c (gva_main_build_database): Break this into smaller pieces. Do not show the progress bar. Do not change the mouse cursor. Do not analyze ROMS. * src/gva-main.c (gva_main_analyze_roms): New function analyses ROM files, as gva_main_build_database() used to do. * src/gva-main.c (gva_main_progress_bar_show): New function shows the progress bar in the main window and changes the mouse cursor to busy, as gva_main_build_database() used to do. * src/gva-main.c (gva_main_progress_bar_hide): New function hides the progress bar in the main window and changes the mouse cursor to normal, as gva_main_build_database() used to do. * src/gva-main.c (gva_main_progress_bar_set_fraction): New function updates the main window's progress bar using a cached widget pointer for better performance. * src/gva-mame-common.c (gva_mame_command): Set process->error to NULL after propagating it. * src/gva-mame-common.c (gva_mame_get_search_paths): New function returns a configuration value as an ordered list of search paths. Useful for keys like "rompath" and "samplepath". * src/gva-mame-common.c (gva_mame_verify_all_roms): Renamed from gva_mame_verify_roms(). * src/gva-mame-common.c (gva_mame_verify_roms): New function (sort of) verifies an individual ROM set. * src/gva-mame-common.c (gva_mame_verify_all_samples): Renamed from gva_mame_verify_samples(). * src/gva-mame-common.c (gva_mame_verify_samples): New function (sort of) verifies an individual sample set. * src/gva-mame-common.c (gva_mame_verify_parse): New function attempts to extract a status from a line of output from a "MAME -verifyroms" or "MAME -verifysamples" command. * src/gva-mame-sdlmame.c (gva_mame_get_path_sep): * src/gva-mame-xmame.c (gva_mame_get_path_sep): New function returns the delimiter used in search paths. * src/gva-mame-sdlmame.c (gva_mame_get_version), (gva_mame_get_total_supported): * src/gva-mame-xmame.c (gva_mame_get_version), (gva_mame_get_total_supported): If successful, cache the result for subsequent calls. 2008-01-03 Matthew Barnes * Update copyright notices on source files. 2007-12-28 Matthew Barnes * src/gva-mame-common.c (gva_mame_has_config_value): Remove the assertion and make the logic more forgiving. 2007-12-28 Matthew Barnes * configure.ac: Post-release version bump.