本文整理汇总了C++中AudioDeviceManager::getCurrentAudioDevice方法的典型用法代码示例。如果您正苦于以下问题:C++ AudioDeviceManager::getCurrentAudioDevice方法的具体用法?C++ AudioDeviceManager::getCurrentAudioDevice怎么用?C++ AudioDeviceManager::getCurrentAudioDevice使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AudioDeviceManager
的用法示例。
在下文中一共展示了AudioDeviceManager::getCurrentAudioDevice方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: changeListenerCallback
void changeListenerCallback(void *something){
printf("Some audio change thing.\n");
if(audioDeviceManager.getCurrentAudioDevice()!=NULL){
samplerate=audioDeviceManager.getCurrentAudioDevice()->getCurrentSampleRate();
propertiesfile->setValue("audiodevicemanager",audioDeviceManager.createStateXml());
}else{
fprintf(stderr,"Gakkegakke\n");
}
}
示例2: play
void play(){
int num_channels=getSourceNumChannels();
if(isinitialized==false || num_channels==0)
return;
if(isusingjack==false && audioDeviceManager.getCurrentAudioDevice()==NULL)
return;
stop();
GUI_newprocess(source_init);
//source_init();
//fprintf(stderr,"GUI_newprocess finished\n");
#if 0
if(isusingjack==false){
if(audioDeviceManager.getOutputChannels().countNumberOfSetBits()!=getSourceNumChannels()){
if(num_channels==1)
num_channels=2;
outchannels=new BitArray(0);
for(int lokke=0;lokke<num_channels;lokke++)
outchannels->setBit(lokke);
audioDeviceManager.setAudioDevice(
audioDeviceManager.getAvailableAudioDeviceNames()[0],
1024,
R,
new BitArray(0),
outchannels,
false);
}
}
#endif
{
int error;
for(int i=0;i<num_src_states;i++)
src_delete(src_states[i]);
free(src_states);
src_states=(SRC_STATE**)malloc(sizeof(SRC_STATE*)*num_channels);
for(int ch=0;ch<num_channels;ch++)
src_states[ch]=src_new(SRC_QUALITY,1,&error);
}
pleasestop=false;
jp_playpos=0;
mustrunonemore=false;
jp_isplaying=true;
isreadingdata=true;
}
示例3: prefs
void prefs(){
if(isusingjack==true){
printerror("Can not change audio when using jack.");
return;
}
AudioDeviceSelectorComponent audioSettingsComp (audioDeviceManager,
0, 0,
2, 8,
false);
// ...and show it in a DialogWindow...
audioSettingsComp.setSize (400, 170);
DialogWindow::showModalDialog (T("Audio Settings"),
&audioSettingsComp,
NULL,Colour((uint8)0xb90,(uint8)0x60,(uint8)0x60,(uint8)0xd0),true);
if(audioDeviceManager.getCurrentAudioDevice()==NULL && isreadingdata==true){
isreadingdata=false;
}
}
示例4: initJuceAudio
void initJuceAudio(void){
XmlElement *settings=propertiesfile->getXmlValue("audiodevicemanager");
const String error (audioDeviceManager.initialise (0, /* number of input channels */
8, /* number of output channels */
settings,
true /* select default device on failure */));
if (audioDeviceManager.getCurrentAudioDevice()==NULL || error.isNotEmpty())
{
AlertWindow::showMessageBox (AlertWindow::WarningIcon,
T("Mammut"),
T("Couldn't open an output device!\n\n") + error);
}
else
{
isinitialized=true;
// start the IO device pulling its data from our callback..
audioDeviceManager.setAudioCallback (this);
}
}
示例5: main
//==============================================================================
int main( int argc, char* argv[] )
{
AudioDeviceManager* dm = new AudioDeviceManager();
auto callback = new SimpleCallback();
const OwnedArray< AudioIODeviceType >* deviceTypes = &( dm->getAvailableDeviceTypes() );
for ( auto& t : *( deviceTypes ) ) {
DBG( "+-- device type : ------------+" );
DBG( " " + t->getTypeName() );
t->scanForDevices();
if ( t->hasSeparateInputsAndOutputs() ) {
DBG( "+-- inputs : ------------+" );
auto deviceNames = t->getDeviceNames( true );
for ( auto& name : deviceNames ) {
DBG( " +-- device name : ------------+" );
DBG( " " + name );
}
DBG( "+-- outputs : ------------+" );
deviceNames = t->getDeviceNames( false );
for ( auto& name : deviceNames ) {
DBG( " +-- device name : ------------+" );
DBG( " " + name );
}
} else {
}
DBG( "has separate inputs and outputs : " << t->hasSeparateInputsAndOutputs() );
}
// initialize audio with the following requirements:
auto result =
dm->initialise( /* num inputs */ 0, /* num outputs */ 2, /* xml settings file */ nullptr,
/* select default device on failure */ true );
if ( !result.isEmpty() ) {
DBG( "Error on initialize : " + result );
}
logMessage( "--------------------------------------" );
logMessage( "Current audio device type: " +
( dm->getCurrentDeviceTypeObject() != nullptr
? dm->getCurrentDeviceTypeObject()->getTypeName()
: "<none>" ) );
if ( AudioIODevice* device = dm->getCurrentAudioDevice() ) {
logMessage( "Current audio device: " + device->getName().quoted() );
logMessage( "Sample rate: " + String( device->getCurrentSampleRate() ) + " Hz" );
logMessage( "Block size: " + String( device->getCurrentBufferSizeSamples() ) + " samples" );
logMessage( "Output Latency: " + String( device->getOutputLatencyInSamples() ) +
" samples" );
logMessage( "Input Latency: " + String( device->getInputLatencyInSamples() ) + " samples" );
logMessage( "Bit depth: " + String( device->getCurrentBitDepth() ) );
logMessage( "Input channel names: " +
device->getInputChannelNames().joinIntoString( ", " ) );
logMessage( "Active input channels: " +
getListOfActiveBits( device->getActiveInputChannels() ) );
logMessage( "Output channel names: " +
device->getOutputChannelNames().joinIntoString( ", " ) );
logMessage( "Active output channels: " +
getListOfActiveBits( device->getActiveOutputChannels() ) );
} else {
logMessage( "No audio device open" );
}
dm->addAudioCallback( callback );
sleep( 3 ); // 3 seconds of audio
// while ( true ) {
// }
dm->removeAudioCallback( callback );
delete callback;
delete dm;
return 0;
}