기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요...

 

제가 지금 AudioFlinger에서 Har 단 연결 부분을 보고 있는데요....

이 부분에  

 int err = hw_get_module(ALSA_HARDWARE_MODULE_ID,
            (hw_module_t const**)&module);

 

라는 구문이 있더라구요....구글링을 해보니...

 

hw_get_module()함수를 사용하여 "alsa"라는 이름을 가진  module을 가져온다.

err = module->methods->open(module, ALSA_HARDWARE_NAME, &device);
==> module의 open함수를 실행하면 driver의 구조체를 획득할 수 있다.

 

뭐 이렇게 말하는데...도무지 제 실력으로는 감이 안 옵니다..

 

여기서 말하는 hw_module_t 구조체의 맵버들의 의미를 알게 되면 어느 정도 궁금증이 해소 될 듯한데요...

특히, audio Flinger와 har 연결 부분에 왜 이 구문이 등장하는지.... 원....

 

다음,,,hw_module_t 구조체 입니다... 각 맵버들의 의미를  아시는 분 설명 좀 부탁 드려요..

typedef struct hw_module_t {
    /** tag must be initialized to HARDWARE_MODULE_TAG */
    uint32_t tag;

    /** major version number for the module */
    uint16_t version_major;

    /** minor version number of the module */
    uint16_t version_minor;

    /** Identifier of module */
    const char *id;

    /** Name of this module */
    const char *name;

    /** Author/owner/implementor of the module */
    const char *author;

    /** Modules methods */
    struct hw_module_methods_t* methods;

    /** module's dso */
    void* dso;

    /** padding to 128 bytes, reserved for future use */
    uint32_t reserved[32-7];

} hw_module_t;

typedef struct hw_module_methods_t {
    /** Open a specific device */
    int (*open)(const struct hw_module_t* module, const char* id,
            struct hw_device_t** device);

} hw_module_methods_t;


고도리

2011.05.19 09:40:06
*.200.239.234

워낙 다양하게 적용되도록 구성이 된 structure입니다.


소스를 그냥 분석하시는게 가장 빠를 듯 하고요.

간단하게 말씀드리면.....


case by case입니다.


관련 소스는


hardware/libhardware/hardware.c와

hardware/libhardware/modules/overlay/overlay.cpp


를 참고하시면 될겁니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
6368 flow control에 관해서 여쭤 보고자 합니다. 열심히 2015-06-17 113
6367 android uenvt에 내용을 추가 했는데요 맞는 방법인가요? [1] pedor11 2015-05-20 121
6366 input device에 할당된 버튼키를 제거하고 터미널에서 키보드로 대... [1] 김민욱 2017-05-25 122
6365 camera HAL시 퍼미션을 얻을 수 있는가요? [2] 조신 2015-11-18 147
6364 압력센서 신호처리 관련하여 문의드립니다. [3] kernel_study 2016-11-03 148
6363 [apt pkg server 관련] [2] 밥줘잉 2016-10-20 150
6362 nfs 서버 구축 질문 [4] 김민욱 2017-06-10 164
6361 ACPI Shutdown Signal이 들어갈때의 동작을 변경하고 싶습니다. +... [4] 겟페우스 2017-06-08 165
6360 SoM GPIO 제어 문의 [1] 단순최고 2021-01-25 168
6359 USB GPS를 재부팅 후에도 자동으로 동작하게 하려고 합니다. [3] 겟페우스 2017-06-03 172
6358 touch screen관련 여쭤봅니다. [1] 열심히 2015-07-25 173
6357 virtualbox에 안드로이드가 잘 안도네요 [1] 더미원 2017-03-20 180
6356 2440 보드의 address 신호와 소스상의 주소를 어떻게 이해 하고 있... [2] DavidKim 2015-07-29 181
6355 i.mx6q에서 libvpu.so 라이브러리를 사용하여 link시에 undefined ... [1] 이동희 2019-08-09 182
6354 udev 를 이용하여 /dev 사용권한을 변경할수 있나요? [1] pedor11 2015-11-18 185
6353 키이벤트 관련 질문드립니다. [3] 하하호호하하 2015-10-06 188
6352 Alto 4330 보드에서 sdcard의 리눅스 커널로 부팅하는 방법 [2] 포도씨 2016-11-18 192
6351 밑의 LCD 포팅 질문드렸었는데 추가 질문이 있습니다. [2] ImYeol 2015-08-13 193
6350 check_usb_vfs("/dev/bus/usb") 에러 [1] 생생맥주 2015-01-25 200
6349 smsc9220 질문 file [2] *김종원 2015-07-24 203

사용자 로그인