| 754 | } |
| 755 | |
| 756 | void ModMatrixComponent::createMenu(PopupMenu *p_menu) { |
| 757 | // read osc and filter types |
| 758 | int osc_type[3] = {0}; |
| 759 | int fil_type[3] = {0}; |
| 760 | |
| 761 | osc_type[0] = m_value_tree.state.getChildWithName("osc")["osc1_type"]; |
| 762 | osc_type[1] = m_value_tree.state.getChildWithName("osc")["osc2_type"]; |
| 763 | osc_type[2] = m_value_tree.state.getChildWithName("osc")["osc3_type"]; |
| 764 | fil_type[0] = m_value_tree.state.getChildWithName("misc")["fil1_type"]; |
| 765 | fil_type[1] = m_value_tree.state.getChildWithName("misc")["fil2_type"]; |
| 766 | fil_type[2] = m_value_tree.state.getChildWithName("misc")["fil3_type"]; |
| 767 | |
| 768 | p_menu->addItem(1, "Off"); |
| 769 | p_menu->addSeparator(); |
| 770 | |
| 771 | for (int osc = 0; osc < 3; ++osc) { |
| 772 | if (osc_type[osc] == OSC_TYPE_ANALOG) { |
| 773 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_analog_osc_menu[osc], true); |
| 774 | } else if (osc_type[osc] == OSC_TYPE_WAVETABLE) { |
| 775 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_wavetable_osc_menu[osc], true); |
| 776 | } else if (osc_type[osc] == OSC_TYPE_MULTI) { |
| 777 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_multi_osc_menu[osc], true); |
| 778 | } else if (osc_type[osc] == OSC_TYPE_VECTOR) { |
| 779 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_vector_osc_menu[osc], true); |
| 780 | } else if (osc_type[osc] == OSC_TYPE_FM) { |
| 781 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_fm_osc_menu[osc], true); |
| 782 | } else if (osc_type[osc] == OSC_TYPE_PM) { |
| 783 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_pm_osc_menu[osc], true); |
| 784 | } else if (osc_type[osc] == OSC_TYPE_CHIPTUNE) { |
| 785 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_chiptune_osc_menu[osc], true); |
| 786 | } else if (osc_type[osc] == OSC_TYPE_NOISE) { |
| 787 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_noise_osc_menu[osc], true); |
| 788 | } else if (osc_type[osc] == OSC_TYPE_WAVEDRAW) { |
| 789 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_draw_osc_menu[osc], true); |
| 790 | } else if (osc_type[osc] == OSC_TYPE_CHIPDRAW) { |
| 791 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_draw_osc_menu[osc], true); |
| 792 | } else if (osc_type[osc] == OSC_TYPE_SPECDRAW) { |
| 793 | p_menu->addSubMenu("Osc " + std::to_string(osc + 1), m_draw_osc_menu[osc], true); |
| 794 | } else { |
| 795 | p_menu->addItem(998, "Osc " + std::to_string(osc + 1), false); |
| 796 | } |
| 797 | } |
| 798 | |
| 799 | p_menu->addSeparator(); |
| 800 | |
| 801 | for (int fil = 0; fil < 3; ++fil) { |
| 802 | if (fil_type[fil] == FILTER_TYPE_LP24 || fil_type[fil] == FILTER_TYPE_LP12 || fil_type[fil] == FILTER_TYPE_BP24 || fil_type[fil] == FILTER_TYPE_BP12 || |
| 803 | fil_type[fil] == FILTER_TYPE_HP12 || fil_type[fil] == FILTER_TYPE_HP24 || fil_type[fil] == FILTER_TYPE_KORG_LP || fil_type[fil] == FILTER_TYPE_KORG_HP || |
| 804 | fil_type[fil] == FILTER_TYPE_DIODE) { |
| 805 | p_menu->addSubMenu("Filter " + std::to_string(fil + 1), m_standard_fil_menu[fil], true); |
| 806 | } else if (fil_type[fil] == FILTER_TYPE_FORMANT) { |
| 807 | p_menu->addSubMenu("Filter " + std::to_string(fil + 1), m_formant_fil_menu[fil], true); |
| 808 | } else if (fil_type[fil] == FILTER_TYPE_SEM12) { |
| 809 | p_menu->addSubMenu("Filter " + std::to_string(fil + 1), m_SEM_fil_menu[fil], true); |
| 810 | } else if (fil_type[fil] == FILTER_TYPE_COMB) { |
| 811 | p_menu->addSubMenu("Filter " + std::to_string(fil + 1), m_comb_fil_menu[fil]); |
| 812 | } else if (fil_type[fil] == FILTER_TYPE_RINGMOD) { |
| 813 | p_menu->addSubMenu("Filter " + std::to_string(fil + 1), m_ringmod_fil_menu[fil]); |
nothing calls this directly
no test coverage detected