Tag Archives: USB

대한항공 비행기의 엔터테인먼트 시스템 – 터치가 가능하고 유선 리모컨도 지원하지만 터치는 스마트폰에 비해 감도가 떨어져

우리 집 식구가 여행을 떠나게 되었습니다. 대한항공 비행기를 탑승했는데, 엔터테인먼트 시스템이 업그래이드 되어져 있더군요.

저는 최근에는 아시아나항공을 주로 이용했었습니다. 회사의 정책에 따라서요…

대한항공 비행기의 엔터테인먼트 시스템 – 터치가 가능하고 유선 리모컨도 지원하지만 터치는 스마트폰에 비해 감도가 떨어져

대한항공 기내에서 제공하는 엔터테인먼트 시스템은 1인 1시스템입니다. 프로그램을 본인이 원하는데로 선택할 수 있고, VoD 방식입니다.

즉, 보고 싶을 때 원하는 위치에서부터 볼 수 있습니다.

그리고 하단에 있는 유선리모컨… 이를 통해 시스템 제어가 가능하고, 화면 터치로도 가능합니다.

터치 감도는 2012년 5월 기준으로… 스마트폰의 감도에 비해 떨어집니다.

나중에는 나아지리라 생각합니다.

그리고 오른편에 보이실텐데… USB 충전도 가능합니다.

iPhone이나 iPAD 사용자를 위한 배려가 아닐까 생각 해 봅니다.

그리고 사소한데 괜찮은 아이디어… 왼편 상단의 옷걸이… 아무도 쓰는 사람을 보지는 못했지만, 공간 이용을 참 잘한다는 생각이 들었습니다.

USB 장치 연결/연결해제 이벤트 처리하기

1. 메시지 맵 등록   

메시지 맵에 이벤트를 함수와 연결 시킨다. 

// example 

    BEGIN_MESSAGE_MAP(CDlg, CDialog)
            ON_MESSAGE(WM_DEVICECHANGE, fnDeviceChange)
    END_MESSAGE_MAP()


2. 이벤트를 받을 장치를 등록한다.

장치 등록은 RegisterForDeviceNotifications()함수를 이용한다

 //example
    void CDlg::RegisterForDeviceNotifications()
    {
        DEV_BROADCAST_DEVICEINTERFACE DevBroadcastDeviceInterface;
        HDEVNOTIFY DeviceNotificationHandle; 

        DevBroadcastDeviceInterface.dbcc_size = sizeof(DevBroadcastDeviceInterface);
        DevBroadcastDeviceInterface.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
        DevBroadcastDeviceInterface.dbcc_classguid = DeviceGuid;              //해당 장치의 GUID

         DeviceNotificationHandle =
            RegisterDeviceNotification(m_hWnd, &DevBroadcastDeviceInterface, DEVICE_NOTIFY_WINDOW_HANDLE);
    }

   
3. 처리함수 구현

처리함수는 WM_DEVICECHANGE에서 넘어오는 파라메터를 이용해서 한다. 자세한 파라메터 정보는 MSDN을 참조하시기 바랍니다.

void CDlg::fnDeviceChange(WPARAM wParam, LPARAM lParam)
{
    switch(wParam)
    {
        case DBT_DEVICEARRIVAL:
            //장치 연결 됬을 때 처리
            break; 

        case DBT_DEVICEREMOVECOMPLETE:
            //장치 연결 해제 됬을 때 처리
            break;

         default:
            break;
    }
}