Форум программистов, компьютерный форум CyberForum.ru

Что нужно знать для программирования в Bass - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перемотка потока bass.dll http://www.cyberforum.ru/cpp/thread1758458.html
Дорого времени суток. Подскажите как перемотать трек который грузится из интернета? тоесть нужно проверить загрузился ли трек до n-й секунды звучания и перемотать его на n-секунду если загрузился. библиотека bass. в мануалах вроде что то есть о проверке потока, только я не могу понять сути, тк как с анг никак. Добавлено через 12 часов 52 минуты с перемоткой разобрался самостоятельно, но с...
C++ Взаимосвязь правой кнопки мыши с функцией getch Доброго времени суток! Перед тем, как описать суть проблемы, небольшой ввод: в своем проекте (консольная игрушка) использую функцию getch, для управления менюшкой. Сегодня случайно узнал то, что правый клик мышки обладает невменяемой особенностью - с какого то перепугу ПКМ имеет рандомный ряд числовых значений таблицы ASCII (работаю как раз таки с ней, для связи кнопок с getch), что в свою... http://www.cyberforum.ru/cpp/thread1758306.html
C++ Задача Сок (Геометрия на плоскости)
С клавиатуры вводятся 2 числа: n и m. Затем вводятся координаты n вершин выпуклого многоугольника в порядке обхода против часовой стрелки. Затем вводятся m чисел - расстояние от 1 вершины до 1 дырки, расстояние от 1 дырки до 2, от 2 до 3 и т.д. Можно любым образом поворачивать этот многоугольник. Необходимо сделать это так, чтобы площадь части этого многоугольника, находящаяся ниже самой...
Оценка сложности алгоритма C++
Здравствуйте! Помогите, пожалуйста, выполнить оценку сложности алгоритма игры крестики-нолики!!! Ниже исходник игры.. #include <iostream> #include <clocale> #include <windows.h> #include <time.h> using namespace std; //массив, в котором храним поле
C++ Перепись с vb.net на плюсы http://www.cyberforum.ru/cpp/thread1757108.html
Доброго времени суток, товарищи. Такой вопрос: получу ли я технологический профит, если перепишу программу, написанную на vb.net на платформу C++? Станет ли... Лучше? Или вообще как-либо изменится состояние программы?
C++ Синоним для переменной структуры? Предположим, есть структура сторонней библиотеки и ее переменная-член не соответсвует кодестайлу и нужно ввести синоним для этой переменной. Благодаря using или typedef мы можем ввести синоним для самой структуры и обращаться к ней под другим именем. Но они не работают в отношении ее членов. Можно, конечно, унаследовать от исходной свою структуру, и добавить её ссылку на переменную-член... подробнее

Показать сообщение отдельно
Nojabr
9 / 9 / 0
Регистрация: 13.06.2016
Сообщений: 54
Завершенные тесты: 2
08.09.2016, 14:10     Что нужно знать для программирования в Bass
Цитата Сообщение от Крюгер Посмотреть сообщение
со звуком работать
точней работать с библиотекой, которая работает со звуком. неважно. вообще есть еще squall, в котором хидеры и исходники по C++ есть. выбор за ТС, либо платная раздутая и забагованная BASS, либо ржавый бесплатный squall, или же самопальный вариант без всяких диллок. и я бы не сказал, что BASS такая уж простая библиотека, она очень похожа на чистый DX, только нужно писать меньше кода.

в DX к примеру для инициализации нужно писать примерно следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    result = DirectSoundCreate8(NULL, &DirectSoundDevice, NULL);
 
     if (FAILED(result)){
    MessageBox( NULL, "Устройство аудиовоспроизведения отсутствует или повреждено.", "DirectSound:", MB_OK );
    PostQuitMessage( 0 );
     }
 
    DirectSoundDevice->SetCooperativeLevel(hwnd_link, DSSCL_PRIORITY);
 
    //Дескриптор первичного буфера
    bufferDesc.dwSize = sizeof(DSBUFFERDESC);
    bufferDesc.dwFlags = DSBCAPS_PRIMARYBUFFER | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRL3D;
    bufferDesc.dwBufferBytes = 0;
    bufferDesc.dwReserved = 0;
    bufferDesc.lpwfxFormat = NULL;
    bufferDesc.guid3DAlgorithm = GUID_NULL;
 
    DirectSoundDevice->CreateSoundBuffer(&bufferDesc, &PrimaryBuffer, NULL);
 
    //Формат первичного буфера
    waveFormat.wFormatTag = WAVE_FORMAT_PCM;
    waveFormat.nSamplesPerSec = 44100;
    waveFormat.wBitsPerSample = 16;
    waveFormat.nChannels = 2;
    waveFormat.nBlockAlign = (waveFormat.wBitsPerSample / 8) * waveFormat.nChannels;
    waveFormat.nAvgBytesPerSec = waveFormat.nSamplesPerSec * waveFormat.nBlockAlign;
    waveFormat.cbSize = 0;
 
   PrimaryBuffer->SetFormat(&waveFormat);
   //Установка слушателя
   PrimaryBuffer->QueryInterface(IID_IDirectSound3DListener8, (LPVOID*)&Llistener);
   Llistener->SetPosition(0.0f, 0.0f, 0.0f, DS3D_IMMEDIATE);
у меня это вызывается так:
C++
1
InitDirectSound (g_hWnd);
в BASS примерно так:
C++
1
BASS_Init(-1, 44100, 0, g_hWnd, NULL) ;
остальное типа установки панорамы и позиции слушателя (в BASS)это тупо переименованные DX-функции
в DX буфер можно проиграть так:

C++
1
SoundBuffer[buffer_num]->Play(0, 0, sound_loop_)
BASS:
C++
1
BASS_ChannelPlay(Handle,0) ;
дело ТС, но BASS ввиду назойливой распространенности стала безальтернативной для новичков, хотя в реале это довольно посредственная надстройка над DX с целью содрать бабла. да и не видел эти DLL в 64-битном варианте.


Цитата Сообщение от Крюгер Посмотреть сообщение
для директа надо писать свои эффекты
это ложь, там есть встроенные. пытался прикрутить их к своей библиотеке, но ни времени ни толковой инфы не нашлось. но настройки самих эффектов там на изи:
C++
1
2
3
4
reverb_param.fInGain=0.5f; 
reverb_param.fReverbMix=1.5;
reverb_param.fReverbTime=0.5;
reverb_param.fHighFreqRTRatio=4.5;
Цитата Сообщение от Крюгер Посмотреть сообщение
для изучения басс проще
да то же, что и чистый DX, только документации больше и "ленивых" функций.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru