MCPcopy Create free account
hub / github.com/TheWaveWarden/odin2 / createMenu

Method createMenu

Source/gui/ModMatrixComponent.cpp:756–857  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

754}
755
756void 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]);

Callers

nothing calls this directly

Calls 1

addSeparatorMethod · 0.80

Tested by

no test coverage detected