耳机或麦克风检测通过3.5毫米插孔linux连接

时间:2014-10-10 07:04:35

标签: linux

我写了一个小程序,通知何时连接了耳机或麦克风。 我提供了一个文件路径来识别,有没有办法通过C程序知道哪个文件路径是麦克风或耳机?

以下是该计划:

#include <linux/input.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>

int main()
{
    int fd = -1;
    char name[256]= {'\0'};
    struct input_event event;

    /*On my system 
        /dev/input/event6 for headphone
        /dev/input/event5 for mic
    */
    if ((fd = open("/dev/input/event6", O_RDONLY)) < 0) {
        perror("evdev open");
        exit(1);
    }


    if(ioctl(fd, EVIOCGNAME(sizeof(name)), name) < 0) {
        perror("evdev ioctl");
    }

    printf("The device name on path %s is ===  %s\n Now Plug in or Plug out the device\n",
             argv[1],name);


//    while(1)
    {

        read(fd, &event, sizeof(struct input_event));
        printf("Event type is %d\n", event.type);
        printf("Event code is %d\n", event.code);
        printf("Event value is %d\n", event.value);
    }
    close(fd);
    return 0;
}

这里我需要提供开放路径,我希望我的程序应该识别麦克风或耳机的路径。反正有没有这样做? 能得到一些帮助会很棒。 感谢,

0 个答案:

没有答案