예제 #1
0
파일: SDL.cpp 프로젝트: BhaaLseN/dolphin
void Init( std::vector<Core::Device*>& devices )
{
	// this is used to number the joysticks
	// multiple joysticks with the same name shall get unique ids starting at 0
	std::map<std::string, int> name_counts;

#ifdef USE_SDL_HAPTIC
	if (SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC) >= 0)
	{
		// Correctly initialized
	}
	else
#endif
	if (SDL_Init(SDL_INIT_JOYSTICK) < 0)
	{
		// Failed to initialize
		return;
	}

	// joysticks
	for (int i = 0; i < SDL_NumJoysticks(); ++i)
	{
		SDL_Joystick* dev = SDL_JoystickOpen(i);
		if (dev)
		{
			Joystick* js = new Joystick(dev, i, name_counts[GetJoystickName(i)]++);
			// only add if it has some inputs/outputs
			if (js->Inputs().size() || js->Outputs().size())
				devices.push_back( js );
			else
				delete js;
		}
	}
}
예제 #2
0
파일: SDL.cpp 프로젝트: Zombiebest/Dolphin
void Init( std::vector<ControllerInterface::Device*>& devices )
{	
	// this is used to number the joysticks
	// multiple joysticks with the same name shall get unique ids starting at 0
	std::map<std::string, int>	name_counts;

	if (SDL_Init( SDL_INIT_FLAGS ) >= 0)
    {
		// joysticks
		for(int i = 0; i < SDL_NumJoysticks(); ++i)
		{
			SDL_Joystick* dev = SDL_JoystickOpen(i);
			if (dev)
			{
				Joystick* js = new Joystick(dev, i, name_counts[SDL_JoystickName(i)]++);
				// only add if it has some inputs/outputs
				if (js->Inputs().size() || js->Outputs().size())
					devices.push_back( js );
				else
					delete js;
			}
		}
    }
}