crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> BASS, Qt и CALLBACK функция
urandom
  опции профиля:
сообщение 28.1.2012, 14:18
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 24
Регистрация: 6.11.2011
Пользователь №: 2983

Спасибо сказали: 1 раз(а)




Репутация:   0  


Возможно, те кто работал с BASS в Qt уже сталкивались с подобной проблемой.
В общем мне надо сохранить воспроизводимый BASS'ом трек. Для этого у BASS есть CALLBACK функция. В ее параметрах BASS передает кусками трек, который в последствии мне необходимо сохранить в файл.
Проблема заключается в том, что мне необходимо использовать эту функцию непосредственно внутри класса, а BASS требует сделать ее статической. Т.е.:
static void CALLBACK downproc(const void *buffer, DWORD length, void *user);
...
BASS_StreamCreateURL(url.toAscii(), 0, 0, &downproc, 0);

Все работает, но я не могу работать с методами и переменными класса.

void CALLBACK downproc(const void *buffer, DWORD length, void *user);
...
BASS_StreamCreateURL(url.toAscii(), 0, 0, &BASS::downproc, 0);

Не работает, ибо:
Цитата
cannot convert 'void (BASS::*)(const void*, DWORD, void*)' to 'void (*)(const void*, DWORD, void*) ...


Можно ли заставить BASS работать с нестатической функцией?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
urandom
  опции профиля:
сообщение 28.1.2012, 22:42
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 24
Регистрация: 6.11.2011
Пользователь №: 2983

Спасибо сказали: 1 раз(а)




Репутация:   0  


Да, да, тупанул ><
Только как мне тогда записать данные в QFile?..

parent->trackFile->write((char*)buffer, length);

так?.

Сообщение отредактировал urandom - 28.1.2012, 22:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 22:06