本文整理汇总了C++中BASS_ChannelSetAttribute函数的典型用法代码示例。如果您正苦于以下问题:C++ BASS_ChannelSetAttribute函数的具体用法?C++ BASS_ChannelSetAttribute怎么用?C++ BASS_ChannelSetAttribute使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了BASS_ChannelSetAttribute函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: BASS_ChannelSetAttribute
void CBassAudio::SetTempoValues ( float fSampleRate, float fTempo, float fPitch, bool bReverse )
{
if ( fTempo != m_fTempo )
{
m_fTempo = fTempo;
}
if ( fPitch != m_fPitch )
{
m_fPitch = fPitch;
}
if ( fSampleRate != m_fSampleRate )
{
m_fSampleRate = fSampleRate;
}
m_bReversed = bReverse;
// Update our attributes
if ( m_pSound )
{
// TODO: These are lost when the sound is not streamed in
BASS_ChannelSetAttribute ( m_pSound, BASS_ATTRIB_TEMPO, m_fTempo );
BASS_ChannelSetAttribute ( m_pSound, BASS_ATTRIB_TEMPO_PITCH, m_fPitch );
BASS_ChannelSetAttribute ( m_pSound, BASS_ATTRIB_TEMPO_FREQ, m_fSampleRate );
BASS_ChannelSetAttribute ( BASS_FX_TempoGetSource ( m_pSound ), BASS_ATTRIB_REVERSE_DIR, (float)(bReverse == false ? BASS_FX_RVS_FORWARD : BASS_FX_RVS_REVERSE) );
}
}
开发者ID:Bargas,项目名称:mtasa-blue,代码行数:26,代码来源:CBassAudio.cpp
示例2: RecordingCallback
BOOL CALLBACK RecordingCallback(HRECORD handle, const void *buffer, DWORD length, void *user)
{
DWORD bl;
BASS_StreamPutData(chan,buffer,length); // feed recorded data to output stream
bl=BASS_ChannelGetData(chan,NULL,BASS_DATA_AVAILABLE); // get output buffer level
if (prebuf) { // prebuffering
if (bl>=prebuf+length) { // gone 1 block past the prebuffering target
#ifdef ADJUSTRATE
targbuf=bl; // target the current level
prevbuf=0;
#endif
prebuf=0; // finished prebuffering
BASS_ChannelPlay(chan,FALSE); // start the output
}
} else { // playing
#ifdef ADJUSTRATE
if (bl<targbuf) { // buffer level is below target, slow down...
rate--;
BASS_ChannelSetAttribute(chan,BASS_ATTRIB_FREQ,rate);
prevbuf=0;
} else if (bl>targbuf && bl>=prevbuf) { // buffer level is high and not falling, speed up...
rate++;
BASS_ChannelSetAttribute(chan,BASS_ATTRIB_FREQ,rate);
prevbuf=bl;
}
#endif
}
return TRUE; // continue recording
}
开发者ID:jaideng123,项目名称:ConsoleMusicPlayer,代码行数:29,代码来源:livefx.c
示例3: MovingObject
Plane::Plane(std::string meshdir, std::string texturedir, Vector3 position)
: MovingObject(meshdir, texturedir, position, false){
this->speed = 0;
this->acceleration = 50;
this->deceleration = 5;
this->max_speed = 200;
this->min_speed = 50;
this->std_speed = 5;
this->roll = 3;
this->v_roll = 2;
this->h_roll = 1;
this->friction = 0.01;
numBullets = 10000;
bulletsShoot = 0;
cadencia = 0.25;
name_ = "Plane " + id;
motor = BASS_SampleLoad(false,"..\\..\\data\\sound\\motor.mp3",0,0,3,BASS_SAMPLE_LOOP);
motorSampleChannel = BASS_SampleGetChannel(motor,false);
BASS_ChannelPlay(motorSampleChannel,true);
BASS_ChannelSetAttribute(motorSampleChannel,BASS_ATTRIB_VOL,0.5);
BASS_ChannelSet3DAttributes(motorSampleChannel,BASS_3DMODE_NORMAL,1,500,360,360,0.1);
bullet = BASS_SampleLoad(false,"..\\..\\data\\sound\\shot.mp3",0,0,3,0);
bulletSampleChannel = BASS_SampleGetChannel(bullet,false);
BASS_ChannelSetAttribute(bulletSampleChannel,BASS_ATTRIB_VOL,0.7);
BASS_ChannelSet3DAttributes(bulletSampleChannel,BASS_3DMODE_NORMAL,0,500,360,360,0.1);
}
开发者ID:DaniBarca,项目名称:PlaneGame,代码行数:31,代码来源:plane.cpp
示例4: BASS_SampleGetChannel
bool cSoundEffect::play(unsigned int index)
{
if( index < m_vecSamples.size() )
{
HCHANNEL hChannel = BASS_SampleGetChannel(m_vecSamples[index], FALSE);
BASS_ChannelSetAttribute(hChannel, BASS_ATTRIB_VOL, 1.0f);
BASS_ChannelSetAttribute(hChannel, BASS_ATTRIB_PAN, 0.0f);
return BASS_ChannelPlay(hChannel, TRUE) == TRUE;
}
return false;
}
开发者ID:cpylua,项目名称:Quidditch,代码行数:14,代码来源:SoundEffect.cpp
示例5: GetNewChannel
HCHANNEL BassSoundEngine::PlayMusic(string filename, CHANNEL Ichannel, bool loop, float volume)
{
if(Ichannel<0||Ichannel>=maxChannel)
{
Ichannel = GetNewChannel();
if(Ichannel<0)
return NULL;
}else
FreeChannel(Ichannel);
HSTREAM sound = ReadMusic(filename);
DWORD hr;
// start play
hr = BASS_ChannelPlay(sound, TRUE);
// set volume
volumeDes[Ichannel] = volume*defaultVolume;
hr = BASS_ChannelSetAttribute(sound, BASS_ATTRIB_VOL, volumeDes[Ichannel]);
// set loop
if(loop)
hr = BASS_ChannelFlags(sound, BASS_SAMPLE_LOOP, BASS_SAMPLE_LOOP);
channel[Ichannel] = sound;
return sound;
}
开发者ID:xuancong84,项目名称:ProjectDIVA,代码行数:29,代码来源:SoundEngine.cpp
示例6: ReadSound
void BassSoundEngine::PlaySound(string filename, float volume)
{
HSAMPLE sound = ReadSound(filename);
HSTREAM channel = BASS_SampleGetChannel(sound, FALSE);
BASS_ChannelSetAttribute(channel, BASS_ATTRIB_VOL, volume*defaultVolume);
BASS_ChannelPlay(channel, TRUE);
}
开发者ID:xuancong84,项目名称:ProjectDIVA,代码行数:7,代码来源:SoundEngine.cpp
示例7: BASS_SampleGetChannel
// play
void BassSound3D::Play()
{
m_channel = BASS_SampleGetChannel(m_handle, FALSE);
if (m_looping)
{
BASS_ChannelFlags(m_channel, BASS_SAMPLE_LOOP, BASS_SAMPLE_LOOP);
}
else
{
BASS_ChannelFlags(m_channel, 0, BASS_SAMPLE_LOOP);
}
BASS_ChannelSetAttribute(m_channel, BASS_ATTRIB_VOL, m_volume);
BASS_ChannelSet3DAttributes(m_channel, -1, m_minDistance, m_maxDistance, -1, -1, -1);
BASS_3DVECTOR pos(m_Position.x, m_Position.y, m_Position.z);
BASS_3DVECTOR vel(m_velocity.x, m_velocity.y, m_velocity.z);
BASS_ChannelSet3DPosition(m_channel, &pos, NULL, &vel);
BASS_Apply3D();
BASS_ChannelPlay(m_channel, FALSE);
}
开发者ID:183amir,项目名称:kge,代码行数:26,代码来源:BassSound3D.cpp
示例8: BASS_SampleLoad
/// <summary>
/// Reproduce un sonido a efecto de realizar pruebas (LShift + H).
/// </summary>
void CSoundManager::TestSound ()
{
DWORD TestSoundId = BASS_SampleLoad(false, "Data/Sounds/Sample/Muerte/swordSwing.wav", 0, 0, 1, BASS_SAMPLE_MONO);
// Inicializa el canal
BASS_SampleGetChannel(TestSoundId, FALSE);
// Añade la configuración del canal
m_bIsOk = BASS_ChannelSetAttribute(TestSoundId, BASS_ATTRIB_VOL, 100)?true:false;
// Asigna propiedad de loop
//BASS_ChannelFlags(TestSoundId, BASS_SAMPLE_LOOP, BASS_SAMPLE_LOOP); // set LOOP flag
// Generador de float aleatorio dentro del siguiente rango [-60....0....+60]
//float randomSemitoneValue = (rand() % ((-60) - 60 + 1)) + (-60);
// TO DO: No funciona
//bool worked = BASS_ChannelSetAttribute(TestSoundId,BASS_ATTRIB_TEMPO_PITCH,randomSemitoneValue)?true:false;
//if (worked == false)
//{
// int errorCode = BASS_ErrorGetCode();
// errorCode = 0;
//}
// Reproducción del canal
BASS_ChannelPlay(TestSoundId, FALSE);
}
开发者ID:BGCX261,项目名称:zombigame-svn-to-git,代码行数:32,代码来源:SoundManager.cpp
示例9: DirEventHandler
pascal OSStatus DirEventHandler(EventHandlerCallRef inHandlerRef, EventRef inEvent, void *inUserData)
{
DWORD srcChan=BASS_FX_TempoGetSource(chan);
float dir;
BASS_ChannelGetAttribute(srcChan, BASS_ATTRIB_REVERSE_DIR, &dir);
if(dir<0){
BASS_ChannelSetAttribute(srcChan, BASS_ATTRIB_REVERSE_DIR, BASS_FX_RVS_FORWARD);
SetControlText(16, "Playing Direction - Forward");
}else{
BASS_ChannelSetAttribute(srcChan, BASS_ATTRIB_REVERSE_DIR, BASS_FX_RVS_REVERSE);
SetControlText(16,"Playing Direction - Reverse");
}
return noErr;
}
开发者ID:bagnz0r,项目名称:ichigo-audio,代码行数:16,代码来源:reverse.c
示例10: stop
/*
Next song
*/
VOID Application::next()
{
INT allSongs = playlist.songs.size(); //всего песен
INT next = 0; //след играющая песня
if (allSongs > 0)
{
//Поиск текущей играемой песни
for (INT i = 0; i < allSongs; i++)
{
if (hStream == playlist.songs[i].hStream)
{
next++;
break;
}
next++;
}
//Если при нажатии на NextSong достигнут конец списка, перевести указатель на начало списка
if (next + 1 > allSongs)
next = 0;
stop(hStream); //остановка потока
hStream = playlist.songs[next].hStream; //загрузка следующей песни в поток
secPlaying = 0; //сброс проигранных секунд
setRangeTrackBarPlaySong(hStream); //установка диапазона TrackBar под играющую песню
equalizer.SetFX(hStream);
play(hStream); //воспроизвести поток
SetTimer(GetParent(hTBPlayingSong), id_timer, 1000, 0); //Запуск таймера
SendMessage(playlist.hPlayList, LB_SETCURSEL, next, 0); //выделяет текущую песня в плейлисте
BASS_ChannelSetAttribute(hStream, BASS_ATTRIB_VOL, numVolume);
}
}
开发者ID:vitahalyubimov,项目名称:Course-WinAPI,代码行数:34,代码来源:Application.cpp
示例11: setPosition
void KNMusicBackendBassThread::play()
{
//Check:
// 1. The state is already playing.
// 2. The channel is null.
if(m_state==Playing || (!m_channel))
{
return;
}
//Start the position updater.
m_positionUpdater->start();
//Check the playing state before.
if(m_state==Stopped)
{
//Reset the position to fit track playing.
setPosition(0);
//Set the volume to the last volume, because of the reset, the
//volume is back to 1.0.
BASS_ChannelSetAttribute(m_channel, BASS_ATTRIB_VOL, m_volume);
}
//Play the thread.
BASS_ChannelPlay(m_channel, FALSE);
//Update the state.
setPlayingState(Playing);
}
开发者ID:AnkyoChu,项目名称:Mu,代码行数:25,代码来源:knmusicbackendbassthread.cpp
示例12: BASS_Start
/*
Play
*/
VOID Application::play(HSTREAM stream)
{
BASS_Start();
BASS_ChannelPlay(stream, TRUE);
equalizer.SetFX(stream);
BASS_ChannelSetAttribute(stream, BASS_ATTRIB_VOL, numVolume);
}
开发者ID:vitahalyubimov,项目名称:Course-WinAPI,代码行数:10,代码来源:Application.cpp
示例13: setup_BASS
void setup_BASS()
{
int i;
if (HIWORD(BASS_GetVersion())!=BASSVERSION) {
printf("An incorrect version of BASS was loaded");
return;
}
// setup output - default device
if (!BASS_Init(-1,44100,0,0,NULL))
exit(0);
// this could probably be a simple for loop, but can't figure it out yet
// TODO sprintf can be used to make the filenames in a for loop (if wanted)
sounds[0] = BASS_StreamCreateFile(FALSE, "./sound/bang6.mp3", 0, 0, 0);
sounds[1] = BASS_StreamCreateFile(FALSE, "./sound/bang2.mp3", 0, 0, 0);
sounds[2] = BASS_StreamCreateFile(FALSE, "./sound/bang3.mp3", 0, 0, 0);
sounds[3] = BASS_StreamCreateFile(FALSE, "./sound/bang0.mp3", 0, 0, 0);
sounds[4] = BASS_StreamCreateFile(FALSE, "./sound/bang3.mp3", 0, 0, 0);
sounds[5] = BASS_StreamCreateFile(FALSE, "./sound/bang4.mp3", 0, 0, 0);
sounds[6] = BASS_StreamCreateFile(FALSE, "./sound/bang6.mp3", 0, 0, 0);
sounds[7] = BASS_StreamCreateFile(FALSE, "./sound/fizz_out.wav", 0, 0, 0);
sounds[8] = BASS_StreamCreateFile(FALSE, "./sound/1812.wav", 0, 0, 0);
sounds[9] = BASS_StreamCreateFile(FALSE, "./sound/launch8.mp3", 0, 0, 0);
sounds[10] = BASS_StreamCreateFile(FALSE, "./sound/launch8.mp3", 0, 0, 0);
sounds[11] = BASS_StreamCreateFile(FALSE, "./sound/launch8.mp3", 0, 0, 0);
sounds[12] = BASS_StreamCreateFile(FALSE, "./sound/launch8.mp3", 0, 0, 0);
sounds[13] = BASS_StreamCreateFile(FALSE, "./sound/launch8.mp3", 0, 0, 0);
sounds[14] = BASS_StreamCreateFile(FALSE, "./sound/launch8.mp3", 0, 0, 0);
sounds[15] = BASS_StreamCreateFile(FALSE, "./sound/launch8.mp3", 0, 0, 0);
BASS_ChannelSetAttribute(sounds[7], BASS_ATTRIB_VOL, .2);
}
开发者ID:Choino,项目名称:school,代码行数:31,代码来源:fireworks-30.c
示例14: BASS_ChannelSetAttribute
void KNMusicBackendBassThread::setVolume(const int &volumeSize)
{
float channelVolume=(float)volumeSize/100;
BASS_ChannelSetAttribute(m_channel, BASS_ATTRIB_VOL, channelVolume);
//Backup the volume
m_lastVolume=channelVolume;
}
开发者ID:loki1412,项目名称:Mu,代码行数:7,代码来源:knmusicbackendbassthread.cpp
示例15: switch
/*
WM_COMMAND
*/
VOID DlgPlayList::Cls_OnCommand(HWND hwnd, INT id, HWND hwndCtl, UINT codeNotify)
{
switch (id)
{
case IDC_PLAYLIST:
{
if (codeNotify == LBN_DBLCLK)
{
INT idx = SendMessage(hPlayList, LB_GETCURSEL, 0, 0); //получение индекса выделенного элемента
Application::_this->hStream = songs[idx].hStream; //присвоение основному потоку поток выбранного элемента
Application::_this->secPlaying = 0; //обнуление секунд
Application::_this->setRangeTrackBarPlaySong(Application::_this->hStream); //установка диапазона для полосы прокурутки
DlgEqualizer::_this->SetFX(Application::_this->hStream); //установка настроек для каналов регуляции звучания
BASS_Stop(); //остановка потока
BASS_ChannelStop(Application::_this->hStream); //остановка канала
BASS_Start(); //запуск потока
BASS_ChannelPlay(Application::_this->hStream, TRUE); //запуск канала
SetTimer(GetParent(hDlg), Application::_this->id_timer, 1000, 0); //запуск таймера для времени проигрывания
SetTimer(GetParent(hDlg), Application::_this->idTimerBySpectr, 100, 0); //запуск таймера для спектра
BASS_ChannelSetAttribute(Application::_this->hStream, BASS_ATTRIB_VOL, Application::_this->numVolume);
}
break;
}
case IDC_ADDSONG:
{
SendMessage(GetParent(hwnd), WM_COMMAND, IDC_ADDSONG, 0);
break;
}
default:
break;
}
}
开发者ID:vitahalyubimov,项目名称:Course-WinAPI,代码行数:35,代码来源:DlgPlayList.cpp
示例16: loadBassThread
void KNMusicBackendBassThread::restore(const QString &updatedFilePath)
{
//Check out the saved position, if it's -1, means it never saved before.
//Ignore the invalid call.
if(m_savedPosition==-1)
{
return;
}
//Check out the updated file path.
QString restoreFilePath=
updatedFilePath.isEmpty()?m_filePath:updatedFilePath;
//Reload the bass thread.
loadBassThread(restoreFilePath);
//Reset the postion.
setPosition(m_savedPosition);
//Set the volume to the last volume, because of the reset, the
//volume is back to 1.0.
BASS_ChannelSetAttribute(m_channel, BASS_ATTRIB_VOL, m_volume);
//Check out the state.
if(m_state==Playing)
{
//Start the updater.
m_positionUpdater->start();
//Play the thread.
BASS_ChannelPlay(m_channel, FALSE);
}
//Reset the saved position.
m_savedPosition=-1;
}
开发者ID:AnkyoChu,项目名称:Mu,代码行数:29,代码来源:knmusicbackendbassthread.cpp
示例17: setPosition
void KNMusicBackendBassThread::play()
{
//Check if the thread data if empty.
if(m_filePath.isEmpty())
{
return;
}
//Check the state.
if(m_playingState!=PlayingState)
{
//Start the position updater first.
m_positionUpdater->start();
//Check whether is now is playing or not.
if(m_stoppedState)
{
//Reset flag.
m_stoppedState=false;
//Reset the position to fit track playing.
setPosition(0);
//Set the volume to the last volume, because of the reset, the
//volume is back to 1.0.
BASS_ChannelSetAttribute(m_channel, BASS_ATTRIB_VOL, m_lastVolume);
}
//Play the thread.
BASS_ChannelPlay(m_channel, FALSE);
//Reset the state.
setState(PlayingState);
}
}
开发者ID:loki1412,项目名称:Mu,代码行数:29,代码来源:knmusicbackendbassthread.cpp
示例18: BASS_ChannelSetAttribute
HRESULT CBSoundBuffer::SetPan(float Pan)
{
if (m_Stream)
{
BASS_ChannelSetAttribute(m_Stream, BASS_ATTRIB_PAN, Pan);
}
return S_OK;
}
开发者ID:segafan,项目名称:wmelite_jankavan-julia-repo,代码行数:8,代码来源:BSoundBuffer.cpp
示例19: assert
void CBassAudio::Process3D ( const CVector& vecPlayerPosition, const CVector& vecCameraPosition, const CVector& vecLookAt )
{
assert ( m_b3D && m_pSound );
float fDistance = DistanceBetweenPoints3D ( vecCameraPosition, m_vecPosition );
if ( m_bPan )
{
// Limit panning when getting close to the min distance
float fPanSharpness = UnlerpClamped ( m_fMinDistance, fDistance, m_fMinDistance * 2 );
float fPanLimit = Lerp ( 0.35f, fPanSharpness, 1.0f );
// Pan
CVector vecLook = vecLookAt - vecCameraPosition;
CVector vecSound = m_vecPosition - vecCameraPosition;
vecLook.fZ = vecSound.fZ = 0.0f;
vecLook.Normalize ();
vecSound.Normalize ();
vecLook.CrossProduct ( &vecSound );
// The length of the cross product (which is simply fZ in this case)
// is equal to the sine of the angle between the vectors
float fPan = Clamp ( -fPanLimit, -vecLook.fZ, fPanLimit );
BASS_ChannelSetAttribute( m_pSound, BASS_ATTRIB_PAN, fPan );
}
else
{
// Revert to middle.
BASS_ChannelSetAttribute( m_pSound, BASS_ATTRIB_PAN, 0.0f );
}
// Volume
float fDistDiff = m_fMaxDistance - m_fMinDistance;
//Transform e^-x to suit our sound
float fVolume;
if ( fDistance <= m_fMinDistance )
fVolume = 1.0f;
else if ( fDistance >= m_fMaxDistance )
fVolume = 0.0f;
else
fVolume = exp ( - ( fDistance - m_fMinDistance ) * ( CUT_OFF / fDistDiff ) );
BASS_ChannelSetAttribute( m_pSound, BASS_ATTRIB_VOL, fVolume * m_fVolume );
}
开发者ID:Bargas,项目名称:mtasa-blue,代码行数:45,代码来源:CBassAudio.cpp
示例20: setSampleRate
void Player::setSampleRate(int sampleRate) {
if(BASS_ChannelSetAttribute(_output, BASS_ATTRIB_FREQ, sampleRate))
{
Log::msg("Player::setSampleRate - Sample rate set OK");
}
else
{
Log::error("Bass Error: setting sample rate", GetBassStrError());
}
}
开发者ID:BackyardBrains,项目名称:BYB-Neural-Recorder,代码行数:10,代码来源:Player.cpp
注:本文中的BASS_ChannelSetAttribute函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论