| @@ -19,7 +19,7 @@ | |||
| /// changed: 26Jun2018, 27Jun2018, 29Jun2018, 01Jul2018, 02Jul2018, 06Jul2018, 13Jul2018 | |||
| /// 26Jul2018, 04Aug2018, 05Aug2018, 06Aug2018, 07Aug2018, 09Aug2018, 11Aug2018 | |||
| /// 18Aug2018, 19Aug2018, 05Sep2018, 06Sep2018, 10Oct2018, 26Oct2018, 10Mar2019 | |||
| /// 12Mar2019, 07May2019 | |||
| /// 12Mar2019, 07May2019, 19May2019 | |||
| /// | |||
| /// | |||
| /// | |||
| @@ -1011,6 +1011,17 @@ public: | |||
| idle_frames_since_noteon = 0u; | |||
| } | |||
| uint32_t getCurrentIdleDetectMode(void) { | |||
| uint32_t r = idle_detect_mode; | |||
| #ifdef VST2_EFFECT | |||
| if(0u == oversample.num_in) | |||
| { | |||
| idle_detect_mode = IDLE_DETECT_NONE; | |||
| } | |||
| #endif | |||
| return r; | |||
| } | |||
| void setIdleDetectModeFx(uint32_t _mode) { | |||
| idle_detect_mode_fx = _mode; | |||
| #ifdef VST2_EFFECT | |||
| @@ -1289,7 +1300,7 @@ void VSTPluginProcessReplacingFloat32(VSTPlugin *vstPlugin, | |||
| if(wrapper->b_idle) | |||
| { | |||
| switch(wrapper->idle_detect_mode) | |||
| switch(wrapper->getCurrentIdleDetectMode()) | |||
| { | |||
| default: | |||
| case VSTPluginWrapper::IDLE_DETECT_NONE: | |||
| @@ -1464,7 +1475,7 @@ void VSTPluginProcessReplacingFloat32(VSTPlugin *vstPlugin, | |||
| } | |||
| } | |||
| if(VSTPluginWrapper::IDLE_DETECT_NONE != wrapper->idle_detect_mode) | |||
| if(VSTPluginWrapper::IDLE_DETECT_NONE != wrapper->getCurrentIdleDetectMode()) | |||
| { | |||
| bool bSilence = true; | |||
| @@ -1503,7 +1514,7 @@ void VSTPluginProcessReplacingFloat32(VSTPlugin *vstPlugin, | |||
| } | |||
| } | |||
| if(VSTPluginWrapper::IDLE_DETECT_MIDI == wrapper->idle_detect_mode) | |||
| if(VSTPluginWrapper::IDLE_DETECT_MIDI == wrapper->getCurrentIdleDetectMode()) | |||
| { | |||
| wrapper->idle_frames_since_noteon += sampleFrames; | |||
| } | |||
| @@ -1512,7 +1523,7 @@ void VSTPluginProcessReplacingFloat32(VSTPlugin *vstPlugin, | |||
| { | |||
| wrapper->idle_output_framecount += sampleFrames; | |||
| if(VSTPluginWrapper::IDLE_DETECT_MIDI == wrapper->idle_detect_mode) | |||
| if(VSTPluginWrapper::IDLE_DETECT_MIDI == wrapper->getCurrentIdleDetectMode()) | |||
| { | |||
| bSilence = (wrapper->idle_frames_since_noteon >= sUI(wrapper->idle_noteon_sec_grace * wrapper->sample_rate)); | |||
| } | |||
| @@ -1983,7 +1994,7 @@ VstIntPtr VSTPluginDispatcher(VSTPlugin *vstPlugin, | |||
| Dprintf("vstrack_plugin:effProcessEvents<midi>: ev[%u].noteOffVelocity = %d\n", evIdx, mev->noteOffVelocity); // 0..127 | |||
| #endif // DEBUG_PRINT_EVENTS | |||
| if(VSTPluginWrapper::IDLE_DETECT_MIDI == wrapper->idle_detect_mode) | |||
| if(VSTPluginWrapper::IDLE_DETECT_MIDI == wrapper->getCurrentIdleDetectMode()) | |||
| { | |||
| if(0x90u == (mev->midiData[0] & 0xF0u)) // Note on ? | |||
| { | |||