Работа с сигналами

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Работа с сигналами

Сообщение Gorjatschew » 19.10.2008 00:38:50

Здравствуйте, форумчане!
Начал писать что-то типа осциллографа, работающего от звуковой карты.
Из алгоритмов прошустрил форум на исходниках.ру, парочку отдельных примеров там нашёл, но как-то всё там запутано...
В связи с этим возникла парочка вопросов:
- кто-нибудь чем-то подобным занимался? ;)
- как данные со звуковухи конвертить на лету (знаю, в делфях была для этого дела библиотека, но интересует чисто средствами лазаруса)
- реально ли с этого сигнала получать спектр (использую БПФ, тестовый проект на делфях есть,но может у кого что альтернативное есть).
ЗЫ
Это не диплом и не курсовая, просто хочу с сигналами поработать.
Аватара пользователя
Gorjatschew
новенький
 
Сообщения: 23
Зарегистрирован: 15.01.2008 18:57:06
Откуда: Санкт-Петербург

Re: Работа с сигналами

Сообщение Gorjatschew » 26.10.2008 18:24:31

Возник ещё такой вопрос: под виндой идёт работа с ВинАпи-функциями, которые описаны в MMSystem.
А что делать для работы в Linux?
Аватара пользователя
Gorjatschew
новенький
 
Сообщения: 23
Зарегистрирован: 15.01.2008 18:57:06
Откуда: Санкт-Петербург

Re: Работа с сигналами

Сообщение Gorjatschew » 07.12.2008 15:30:07

Проект практически закончен :)
Возник такой вопрос: при вызове InputBox'a прога вываливается.
Происходит это на строке:
Код: Выделить всё
min:=StrToFloatDef(InputBox('','Minimal limit',''),0);


Ошибка получается такого вида:
Project raised exception class 'External: Sigsegv'


По нажатию OK следующее окно:

Выполнение остановлено
Адрес: 0040CC7C
Процедура: SYSTEM_SYSGETMEM_VAR$LONGINT$$POINTER
Файлл:


Что интересно, вызываемый до этого аналогичны код ошибки не выдаёт.
И может ли быть так, что размер, выделяемый массиву, в виндусе и линуксе разный --- там где винда нормально работает, в линуксе получаю что-то типа rangecheck error (правда, об этом он не пишет, но по совокупности свойств очень похоже).

Помучал лазарус ещё. Заменил gdb на самый свежий, пересобрал, перезаписал пути. Теперь первая ошибка не исчезла, но по нажатию ОК ссылается на этот код из LCLClasses:
Код: Выделить всё
class function TLCLComponent.NewInstance: TObject;
begin
  Result := inherited NewInstance;
  TLCLComponent(Result).FWidgetSetClass := FindWSComponentClass(Self);
  if TLCLComponent(Result).FWidgetSetClass = nil then
  begin
    {$IFDEF VerboseLCL}
    DebugLn(['TLCLComponent.NewInstance WARNING: missing FWidgetSetClass ',ClassName]);
    {$ENDIF}
    TLCLComponent(Result).FWidgetSetClass := TWSLCLComponent;
  end;
end;


И ещё обнаружилось то, что вылет происходит при попытке вызова люого из Dialogs --- помимо упомянутого, вылетает и при вызове ShowMessage, SaveDialog и SavePictureDialog.
Обновления на Lazarus fixes + fpc 2.2.2 не помогло.
Аватара пользователя
Gorjatschew
новенький
 
Сообщения: 23
Зарегистрирован: 15.01.2008 18:57:06
Откуда: Санкт-Петербург


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

Рейтинг@Mail.ru