[Summary] Audio Backend code cleanup - PORTION B

Conflicts:
	libs/backends/wavesaudio/waves_midi_device.cc
This commit is contained in:
Valeriy Kamyshniy 2015-03-02 20:19:50 +02:00 committed by Paul Davis
parent 91f5eb9fef
commit 83001e7e52
6 changed files with 29 additions and 51 deletions

View file

@ -785,8 +785,6 @@ WavesAudioBackend::stop ()
// COMMENTED DBG LOGS */ std::cout << "\t[" << _device->DeviceName () << "]" << std::endl;
_midi_device_manager.stop ();
if (_device) {
wtErr = _device->SetStreaming (false);
if (wtErr != eNoErr) {
@ -795,6 +793,7 @@ WavesAudioBackend::stop ()
}
}
_midi_device_manager.stop ();
_unregister_system_audio_ports ();
_unregister_system_midi_ports ();

View file

@ -170,6 +170,7 @@ WavesAudioBackend::_changed_midi_devices ()
return;
}
_unregister_system_midi_ports ();
_midi_device_manager.stop ();
if (_midi_device_manager.start () != 0) {
@ -317,8 +318,7 @@ WavesAudioBackend::_read_midi_data_from_devices ()
if (timestamp_st < 0) {
timestamp_st = 0;
}
else if (timestamp_st >= (int32_t)_buffer_size) {
} else if (timestamp_st >= (int32_t)_buffer_size) {
timestamp_st = _buffer_size - 1;
}
waves_midi_event->set_timestamp (timestamp_st);

View file

@ -38,7 +38,25 @@ WavesMidiDevice::WavesMidiDevice (const std::string& device_name)
, _output_pm_stream (NULL)
, _incomplete_waves_midi_event (NULL)
{
validate ();
_pm_input_id = _pm_output_id = pmNoDevice;
int count = Pm_CountDevices ();
for (int i = 0; i < count; i++) {
const PmDeviceInfo* pm_device_info = Pm_GetDeviceInfo (i);
if (pm_device_info == NULL) {
continue;
}
if (name () == pm_device_info->name) {
if (pm_device_info->input){
_pm_input_id = i;
}
if (pm_device_info->output){
_pm_output_id = i;
}
}
}
}
WavesMidiDevice::~WavesMidiDevice ()
@ -47,31 +65,6 @@ WavesMidiDevice::~WavesMidiDevice ()
close ();
}
void
WavesMidiDevice::validate ()
{
_pm_input_id =
_pm_output_id = pmNoDevice;
int count = Pm_CountDevices ();
for (int i = 0; i < count; i++) {
const PmDeviceInfo* pm_device_info = Pm_GetDeviceInfo (i);
if (pm_device_info == NULL) {
continue;
}
if (name () == pm_device_info->name) {
if (pm_device_info->input){
_pm_input_id = i;
}
if (pm_device_info->output){
_pm_output_id = i;
}
}
}
}
int
WavesMidiDevice::open (PmTimeProcPtr time_proc, void* time_info)
{

View file

@ -48,7 +48,6 @@ public:
inline bool is_input () const { return _pm_input_id != pmNoDevice; };
inline bool is_output () const { return _pm_output_id != pmNoDevice; };
void validate ();
private:

View file

@ -110,12 +110,13 @@ WavesMidiDeviceManager::stop ()
{
// COMMENTED DBG LOGS */ std::cout << "WavesMidiDeviceManager::stop ():" << std::endl;
if ( _active == false )
if ( _active == false ) {
return 0;
}
stream (false);
_close_devices ();
_delete_devices ();
_active = false;
if (Pm_Terminate () != pmNoError) {
@ -201,17 +202,13 @@ WavesMidiDeviceManager::_create_devices ()
}
WavesMidiDevice *device = _get_device (pm_device_info->name);
if (device) {
device->validate ();
}
else
{
if (!device) {
device = new WavesMidiDevice (pm_device_info->name);
_devices.push_back (device);
if (device->open (__get_time_ms, (void*)&_audiobackend)) {
std::cerr << "WavesMidiDeviceManager::_create_devices (): [" << device->name () << "]->open () failed!" << std::endl;
}
}
}
}
return 0;
@ -225,17 +222,9 @@ WavesMidiDeviceManager::_delete_devices ()
while (!_devices.empty ()) {
WavesMidiDevice * device = _devices.back ();
_devices.pop_back ();
device->close ();
delete device;
}
return 0;
}
void
WavesMidiDeviceManager::_close_devices ()
{
// COMMENTED DBG LOGS */ std::cout << "WavesMidiDeviceManager::_close_devices ():" << std::endl;
for (size_t i = 0; i < _devices.size (); i++) {
_devices[i]->close ();
}
}

View file

@ -46,8 +46,6 @@ public:
private:
int _create_devices ();
void _close_devices ();
int _delete_devices ();
static void __portmidi_callback (PtTimestamp timestamp, void * userData);
void _portmidi_callback (PtTimestamp timestamp);