void GUI_ModulesLoaded_hook(void* kernelEntry, void* arg2, void* arg3, void* arg4) { // Start the gui useGUI = true; // Override useGUI default getBoolForKey(kGUIKey, &useGUI, &bootInfo->bootConfig); if (useGUI && initGUI()) { // initGUI() returned with an error, disabling GUI. useGUI = false; } else if(useGUI) { replace_function("_initGraphicsMode", &GUI_initGraphicsMode); replace_function("_getBootOptions", &GUI_getBootOptions); replace_function("_clearBootArgs", &GUI_clearBootArgs); replace_function("_showHelp", &GUI_showHelp); replace_function("_printf", &GUI_printf); replace_function("_verbose", &GUI_verbose); replace_function("_error", &GUI_error); replace_function("_stop", &GUI_stop); setVideoMode( GRAPHICS_MODE, 0 ); drawBackground(); } // DBG("GUI loaded\n"); }
void Keylayout_start() { char layoutPath[512]; const char *val; int len; if (getValueForKey("KeyLayout", &val, &len, &bootInfo->chameleonConfig)) { sprintf(layoutPath, "/Extra/Keymaps/%s", val); // Add the extension if needed if (len <= 4 || strcmp(val+len-4,".lyt") != 0) strncat(layoutPath, ".lyt", sizeof(layoutPath) - strlen(layoutPath) - 1); if (!load_keyboard_layout_file(layoutPath)) { printf("Can't load %s keyboard layout file. Keylayout will not be used !\n", layoutPath); sleep(2); } else if (!replace_function("_getchar", &getchar_replacement)) { printf("Can't replace function getchar: Keylayout module can't be used !\n"); sleep(2); } } }
/** ** A boot option has been selected, disable the graphical elements on screen. **/ void GUI_PreBoot_hook(void* arg1, void* arg2, void* arg3, void* arg4) { // Turn off any GUI elements if( useGUI ) { gui.devicelist.draw = false; gui.bootprompt.draw = false; gui.menu.draw = false; gui.infobox.draw = false; gui.logo.draw = false; drawBackground(); //updateVRAM(); if(!gVerboseMode) { // Disable outputs, they will still show in the boot log. replace_function("_printf", &GUI_verbose); // drawBootGraphics(); } } }
void test_broken_foo_makes_fooify_return_subzero() { replace_function(&foo, &negative_foo); assert_equals(-1, fooify(3)); }
void test_stringify_cannot_malloc_returns_sane_result() { replace_function(&malloc, &always_failing_malloc); char *h = stringify('h'); assert_string_equals("cannot_stringify", h); }
void music_init() { music_lib = LoadLibraryA(music_plugin); music = driver_calloc(1, sizeof(*music)); music->music_init = (void *)GetProcAddress(music_lib, "music_init"); music->play_music = (void *)GetProcAddress(music_lib, "play_music"); music->cross_fade_music = (void *)GetProcAddress(music_lib, "cross_fade_music"); music->pause_music = (void *)GetProcAddress(music_lib, "pause_music"); music->resume_music = (void *)GetProcAddress(music_lib, "resume_music"); music->stop_music = (void *)GetProcAddress(music_lib, "stop_music"); music->music_status = (void *)GetProcAddress(music_lib, "music_status"); music->set_master_music_volume = (void *)GetProcAddress(music_lib, "set_master_music_volume"); music->set_music_volume = (void *)GetProcAddress(music_lib, "set_music_volume"); music->set_music_volume_trans = (void *)GetProcAddress(music_lib, "set_music_volume_trans"); music->set_music_tempo = (void *)GetProcAddress(music_lib, "set_music_tempo"); if(!(music->music_init && music->play_music && music->cross_fade_music && music->pause_music && music->resume_music && music->stop_music && music->music_status && music->set_master_music_volume && music->set_music_volume && music->set_music_volume_trans && music->set_music_tempo)) { MessageBoxA(hwnd, "Error loading music plugin.", "Error", 0); error("could not load music plugin: %s\n", music_plugin); return; } replace_function(common_externals.midi_init, midi_init); replace_function(common_externals.play_midi, play_midi); replace_function(common_externals.cross_fade_midi, cross_fade_midi); replace_function(common_externals.pause_midi, pause_midi); replace_function(common_externals.restart_midi, restart_midi); replace_function(common_externals.stop_midi, stop_midi); replace_function(common_externals.midi_status, midi_status); replace_function(common_externals.set_master_midi_volume, set_master_midi_volume); replace_function(common_externals.set_midi_volume, set_midi_volume); replace_function(common_externals.set_midi_volume_trans, set_midi_volume_trans); replace_function(common_externals.set_midi_tempo, set_midi_tempo); music->music_init(plugin_trace, plugin_info, plugin_glitch, plugin_error, common_externals.directsound, basedir); }