2014-12-05 3 views
1

내가 조이스틱 버튼을 포함 오디오 장치가 있습니다. (PLANTRONICS starset 헤드셋) 나는 동시에이 장치의 다수를 사용해야 내 응용 프로그램에서조이스틱 버튼으로 장치를 다루는 방법은 무엇입니까?

, 나는 한 목소리를 직접 클릭 할말을 테잎에 대한 정보를 얻을 수 있어야 . SDL 라이브러리가 모든 다른 장치에 대해 동일한 oemname을 갖기 때문에 오디오 장치를 조이스틱 단추와 연결할 수 없습니다. 다음 그림 (Controller Panel, Game Controllers)의 게임 컨트롤러 창에서 동일한 ID를 가진 컨트롤 패널에서 다른 ID를 볼 수 있습니다.

어떻게 장치를 연결할 수 있습니까? (이미 동일한 장치이지만 조이스틱 단추의 실제 이름을 얻을 수 없습니다.) C++로 조이스틱 (USB) 장치의 실제 이름을 얻으려면 어떻게해야합니까?

답변

0

이 문제는 regedit에서 장치를 추적 할 때 해결되었습니다. 내 장치는 오디오 - 마이크 - 조이스틱 장치이며 HID입니다. 그래서 windows는 각 장치를 별도로 식별합니다. regedit에서 사운드, 오디오 및 조이스틱의 동일한 장치 레코드는 동일한 parentID 값을 갖습니다. 그래서 조이스틱 장치를 그 parentID 값을 가진 사운드 장치와 일치시킬 수 있습니다.

SDL은 Directx를 사용하여 동일한 순서로 장치를 나열합니다. directx를 사용하면 directx 장치의 "DIPROP_GUIANDPATH"속성에서 "parentID"값을 얻을 수 있습니다. 그래서 나는 Directx에서 장치의 parentID 값을 얻고 그 장치 이름을 SDL과 동일한 색인을 가진 동일한 장치에 일치시킵니다. 그래서 나는 버튼이 눌려진 조이스틱의 이름을 얻을 수있다. 요구되는 경우 세부 정보를 제공 할 수 있습니다.