[C언어] 키보드 입력을 임의로 발생시킬수 있을까요?

overcrash의 이미지

임베디드 리눅스를 공부중인 학생입니다.

제가 사용하는 타겟보드에는 키패드가 있고, MPlayer를 이용한 어플리케이션을 C언어로 작성중입니다.

아시다시피 MPlayer는 x86 호스트상에서 화살표, p, q 등의 키를 이용해서 제어할수 있습니다.

그런데 임베디드 타겟보드에서는 그런키가 없죠.

그래서...키패드 입력을 받으면 해당 값에 따라 화살표 또는 p, q 등의 키입력 이벤트를 발생시키고 싶은데요.

자료를 찾아봐도 쉽지가 않네요, SIGINT 등은 Ctrl+C에만 해당하는것 같고..

아시는바가 있다면 예제소스와 함께 알려주시면 감사하겠습니다.

감사합니다.

drinkme의 이미지

1. 키패드가 , 해당하는 키코드를 생성하도록 고친다.
또는
2. xmodmap을 수정하여, x카 해당 키코드로 변환하도록 수정한다.
또는
3. XPutBackEvent()을 사용하여,key event를 X에 밀어 넣는다.

overcrash의 이미지

답변 감사합니다.
2번 xmodmap과 3번 XPutBackEvent()는 X-Window에 해당하는 이야기 아닌가요?
제가 가지고있는 타겟보드상의 임베디드 리눅스에는 X-Window가 없는데요,
그렇다면 2,3번은 해당사항 없는것 아닌가요?
1번이 접근방법일듯한데, 해당하는 키코드를 생성하도록 고치는게 정확히 어떤식인지 모르겠네요.

zwolf의 이미지

입력 드라이버(리눅스용 간단한 키보드 드라이버)를 만들어서 키보드 코드를 발생시키는 방법이 있습니다.

예제는 2.6 커널 보시면, drivers/input/keyboard/gpio_key.c 파일이 도움이 될 듯 합니다.

임베디드 보드에서 키패드를 누르면 보통 gpio를 통해서 인터럽트를 발생시키는데 이 때 키보드 코드를

각 키패드를 매칭시켜서 키보드처럼 동작시킵니다.

< ACK and you shall receive. >

< ACK and you shall receive. >

haze11의 이미지

mplayer라면 dbus로 조작하는 방법도..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.