Версия для печати темы
Форум на CrossPlatform.RU _ Другие библиотеки _ Программа - пищалка
Автор: laa88rf 30.7.2010, 12:48
Привет всем.
Не так давно начал писать программки на Qt.
Столкнулся с проблемкой. Есть сервер на FreeBSD. Звук на нем нет желания настраивать, да и колонки ставить рядом - тоже нет.
Хотел бы чтобы можно было пищать через спикер (динамик подключенный к мат. плате) в разных тональностях с разной длиной. Поиск решения никуда не привел. Из c++ похоже эту функцию убрали. Есть в Python, но и то, только под windows.
(в Pascal'е и TurboC эта функция называлась sound(in freq)).
Заранее благодарен за ответ.
З.Ы. Просьба не пинать, если тему поднял не там.
полезная тема по соседству: http://www.forum.crossplatform.ru/index.php?showtopic=4870
Автор: Iron Bug 30.7.2010, 13:44
не знаю, проканает ли это под юникс, но под линь работает:
http://www.developer.com/open/article.php/631191/Simple-Sounds-for-Linux.htm
там библиотека, можно сорц посмотреть.
а так, муторная запись в порт 0х61 или в прямо в девайс (в этом случае нужен дров). но тут нужно протокол знать.
Автор: DEADHUNT 30.7.2010, 13:46
Цитата(Iron Bug @ 30.7.2010, 14:44)
а так, муторная запись в порт 0х61 или в прямо в девайс (в этом случае нужен дров). но тут нужно протокол знать.
мусорная запись в порт управления клавиатурой?
надо документацию смотреть там должна быть специальная последовательность.
Автор: Litkevich Yuriy 30.7.2010, 15:16
Цитата(DEADHUNT @ 30.7.2010, 17:46)
мусорная
буквой ошибся
к Qt это скорее не относится. Поэтому перетащил в "Другое"
Автор: laa88rf 31.7.2010, 10:02
к Qt это скорее не относится. Поэтому перетащил в "Другое"
Спорить не буду, хотел писать на Qt.
Цитата(Iron Bug @ 30.7.2010, 17:44)
не знаю, проканает ли это под юникс, но под линь работает:
http://www.developer.com/open/article.php/...s-for-Linux.htm
там библиотека, можно сорц посмотреть.
а так, муторная запись в порт 0х61 или в прямо в девайс (в этом случае нужен дров). но тут нужно протокол знать.
Линь тот же юникс.
Но вариант с перенаправлением потока меня не радует, т.к. /dev/audio появляетя только(!) после пересборки ядра. Если мне ядро пересобирать, то проще было бы подключать колонки, а звуковой карты в сервере все равно нет.
В любом случае,
printf("\a") заставляет попискивать сервер, но это не то.
Автор: Litkevich Yuriy 31.7.2010, 12:13
Цитата(laa88rf @ 31.7.2010, 14:02)
хотел писать на Qt.
а в Qt нет возможности пищать системным динамиком.
Автор: Iron Bug 31.7.2010, 19:41
Цитата(laa88rf @ 31.7.2010, 13:02)
Линь тот же юникс.
Но вариант с перенаправлением потока меня не радует, т.к. /dev/audio появляетя только(!) после пересборки ядра. Если мне ядро пересобирать, то проще было бы подключать колонки, а звуковой карты в сервере все равно нет.
а что плохого в пересборке ядра? дома так я его вообще раза три в месяц иногда пересобираю: с новым ядром или с дровами какими-либо. задача-то - фигня: выбрал, что нужно, и сиди себе, пей пиво - и через часик ядро готово. колонки всё-таки железо. тут вопрос: а оно нужно ваще на сервере?
а так - прямой записью в порт. но это нудно, ибо риалтайм и вся фигня.
а линь всё же не совсем юникс. он совместим с юниксом, но разница есть.
Автор: laa88rf 31.7.2010, 20:40
Цитата
а в Qt нет возможности пищать системным динамиком.
Ну вот. такая IDE/SDK, а системными девайсами не работает.
Цитата
тут вопрос: а оно нужно ваще на сервере?
вопрос бы не поднимал, если было бы не нужно. Есть сервер доступа, если несанкционированный доступ происходит - издается писк. Громкий и с определенной частотой.
Цитата
а линь всё же не совсем юникс. он совместим с юниксом, но разница есть.
Сорри за оффтоп. Просвятите.
Какие отличия? Предок 1 - Юникс. FreeBSD получается тоже не Unix?
Автор: Алексей1153 31.7.2010, 20:43
laa88rf, задача ведь частная - напиши конкретно для этого сервера, под его систему, программку на C++ , пусть эта утилитка принимает командную строку с командой и пищит. Или через стандртный поток ввода-вывода ещё вроде можно наладить общение, но никогда этим не пользовался, не подскажу
А ещё вариант из области очумелых ручек - подключить сидюк (поломать лазерную систему для безопасности данных сервера, гы) и делать eject-insert-eject-insert-eject-insert-eject-insert-
Автор: Litkevich Yuriy 31.7.2010, 20:54
Цитата(laa88rf @ 1.8.2010, 0:40)
Ну вот. такая IDE/SDK
Qt - библиотека, в первую очередь, для написания кроссплатформенного графического интерфейса
Автор: laa88rf 31.7.2010, 21:35
Цитата
А ещё вариант из области очумелых ручек - подключить сидюк (поломать лазерную систему для безопасности данных сервера, гы) и делать eject-insert-eject-insert-eject-insert-eject-insert-
Угу. Пустив через транзистор и max-232, а рулить отсылая данные через COM-порт. xD
Цитата
Qt - библиотека, в первую очередь, для написания кроссплатформенного графического интерфейса
Однако консольная часть тоже есть.
В принципе тема себя исчерпала.
ЗЫ. Есть еще вариант - подать системное прерывание через asm { }. Знать бы только какое. Если это только не то, что говорил
Iron Bug - 0х61 прерывание.
Автор: Iron Bug 1.8.2010, 9:28
при чём тут прерывания? я написала про порт управления и привела пример готовой работающей программы с сорцом. хоть код бери, хоть из командной строки запускай. не вижу никаких проблем и не вижу связи с QT. QT - графический, чисто софтовый кроссплатформенный интерфейс, он не лезет к управлению хардварными ресурсами, если система не предоставляет такой возможности. а пересборка ядра - задача самая обычная, ничего сложного в этом нет. если нужно задействовать любой хард - то нужны дрова и поддержка ядра. что в этом особенного? нет дров - нет девайса. и никакой QT тут ни при чём. почему нужно искать какие-то окольные пути для решения банальных задач? я считаю, что вопрос исчерпан.
Автор: Litkevich Yuriy 1.8.2010, 9:53
Iron Bug, не уж-то в Юниксах нет API, позволяющего пищать системным динамиком?
по аналогии с этим: http://www.forum.crossplatform.ru/index.php?showtopic=4870
Автор: Iron Bug 1.8.2010, 11:22
никсы - сборные системы. в венде сразу есть всё. поэтому она такая дико неповоротливая и тормозная. никсы изначально задуманы как модульная система, в которую по необходимости можно включать поддержку тех или иных железяк и разных свойств. просто по умолчанию такая фича, как поддержка пищалки, не установлена в ядре. собственно, она и правда редко нужна. а для простого писка достаточно послать семёрку в вывод. собственно, никсы работают под очень разными платформами и настройки ядра по умолчанию рассчитаны на работу на всех этих платформах. но нет проблем собрать ядро с поддержкой пищалки и работать с ней по определённому протоколу.
Автор: Iron Bug 1.8.2010, 13:34
Кстати, вот ссылка на детальное описание работы с 0x61 портом напрямую:
http://www.scribd.com/doc/16750435/c-Io-Hardware-Programming-for-Pc-Speakers
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)