При разработки этого приложения мы решили несколько задач:
- Интерфейс телефонной трубки. Enterra были получены данные из телефонной трубки, включая звуковые сигналы и данные клавиатуры. Это также предполагает связь с USB устройства: распознавание и управление устройством
- Коммуникация со Skype. Передача звуковых сигналов с устройства в Skype и из Skype на устройство. Распознавание нажатых на телефоне клавиш для инициирования необходимых действия в Skype
- Управление окном приложения включает выбор устройства и управление громкостью звукового сигнала
Технические детали
Приложение разработанно под Mac OS X 10.3.9. Среда разработки Carbon оказалась более пригодной для задач использования и для разработчиков. Для нормальной работы приложению требуются следующие framework-системы:
- Skype Framework
- Carbon Framework
- IOKit Framework
- CoreAudio Framework
- CoreServices Framework
А также необходимы: Human Interface Devices Utilities библиотека, взятая из примеров, поставляемых с Mac OS X. Библиотека была изменена для лучшего соответствия нашим требованиям.
Манипулирование USB устройством
Телефон был представлен как USB устройство, для работы с которым использовалась библиотека Human Interface Devices Utilities. Это позволило получить данные с телефона и отправить данные на телефон. Используя библиотеку мы выполнили следующие задачи:
- Поиск устройства
- Управление подключением/Отключением устройства
- Получение списка нажатых клавиш. Далее мы конвертируем их в Skype команды
- Манипуляция подсветкой LED-телефона. Мерцание подсветки означает, что телефон находится под контролем нашего приложения
- LCD модификация телефона. Мы используем телефон, чтобы отобразить дату, время и статус вызова
Коммуникация со Skype
Чтобы осуществить коммуникацию со Skype мы используем фреймворк, предоставленным Skype Company (http://www.skype.com). Фреймвокр позволяет:
- Определять, когда Skype становится доступным
- Определять, когда Skype становится недоступным
- Посылать команды в Skype. Список нажатых на телефоне клавиш мы конвертируем в Skype комманды и посылаем программе
- Получаем уведомления от Skype. Решая эту задачу, мы написали parser, который позволяет нам конвертировать строки уведомлений в информацию, необходимую приложению
Распознав телефон как аудио устройство, Skype позволяет устанавливать его как входное и выходное устройства. Звуковые сигналы передаются из Skype с помощью аудио драйвера Mac OS X.
Дополнительную информацию по программе можно получить, связавшись с нами!