示例#1
0
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");
}
示例#2
0
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);
		}
	}
}
示例#3
0
/**
 ** 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();
		}
		
	}
}
示例#4
0
void test_broken_foo_makes_fooify_return_subzero() {
  replace_function(&foo, &negative_foo);
  assert_equals(-1, fooify(3));
}
示例#5
0
void test_stringify_cannot_malloc_returns_sane_result() {
  replace_function(&malloc, &always_failing_malloc);
  char *h = stringify('h');
  assert_string_equals("cannot_stringify", h);
}
示例#6
0
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);
}