wodndb / RhythmPi

Rhythm game for Raspberry pi
8 stars 0 forks source link

Keyboard supporting #2

Open wodndb opened 6 years ago

wodndb commented 6 years ago

Keyboard should be supported for gaming controller!

wodndb commented 6 years ago

현재 사용하고 있는 방식이 키보드에서 발생하는 이벤트를 read로 하나씩 읽는 방식인데 블록 방식이라 키가 입력될 때까지 계속 프로세스가 대기를 타는 문제가 발생함. fork를 사용하던 따로 프로세스를 생성하던 키보드 입력 부분은 프로세스 독립 후 통신하는 방식으로 처리해야 할 것 같음...

wodndb commented 6 years ago

키보드 이벤트는 프로세스 분리보다 쓰레드를 만들어서 해결하자. 그리고 쓰레드 간에 키보드 입력 상태를 공유하는 메모리 영역을 따로 만들자. 키보드 이벤트를 확인하는 쓰레드는 키 입력이 들어올 때마다 뮤텍스를 잠금으로 키 입력을 기록하고, 주 쓰레드는 1/60초 마다 뮤텍스에서 입력된 키를 확인하고 초기화 하는 작업을 하는 것으로 테스트를 진행해보자. 문제는 음악 재생도 쓰레드로 관리가 필요하다는 점을 고려했을 때 쓰레드를 관리하는 기능이 본격적으로 도입이 되어야 하므로 쓰레드에 관한 깊이 있는 공부를 해야 한다.