MCPcopy Create free account
hub / github.com/HertzDevil/0CC-FamiTracker / TranslateKeyDefault

Method TranslateKeyDefault

Source/FamiTrackerView.cpp:2877–2937  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2875}
2876
2877int CFamiTrackerView::TranslateKeyDefault(unsigned char Key) const
2878{
2879 // Default conversion
2880 note_t KeyNote = note_t::none;
2881 int KeyOctave = static_cast<CMainFrame*>(GetParentFrame())->GetSelectedOctave(); // // // 050B
2882
2883 // Convert key to a note
2884 switch (Key) {
2885 case u8'2': KeyNote = note_t::Cs; KeyOctave += 1; break;
2886 case u8'3': KeyNote = note_t::Ds; KeyOctave += 1; break;
2887 case u8'5': KeyNote = note_t::Fs; KeyOctave += 1; break;
2888 case u8'6': KeyNote = note_t::Gs; KeyOctave += 1; break;
2889 case u8'7': KeyNote = note_t::As; KeyOctave += 1; break;
2890 case u8'9': KeyNote = note_t::Cs; KeyOctave += 2; break;
2891 case u8'0': KeyNote = note_t::Ds; KeyOctave += 2; break;
2892 case VK_OEM_PLUS: KeyNote = note_t::Fs; KeyOctave += 2; break; // =+
2893
2894 case u8'Q': KeyNote = note_t::C; KeyOctave += 1; break;
2895 case u8'W': KeyNote = note_t::D; KeyOctave += 1; break;
2896 case u8'E': KeyNote = note_t::E; KeyOctave += 1; break;
2897 case u8'R': KeyNote = note_t::F; KeyOctave += 1; break;
2898 case u8'T': KeyNote = note_t::G; KeyOctave += 1; break;
2899 case u8'Y': KeyNote = note_t::A; KeyOctave += 1; break;
2900 case u8'U': KeyNote = note_t::B; KeyOctave += 1; break;
2901 case u8'I': KeyNote = note_t::C; KeyOctave += 2; break;
2902 case u8'O': KeyNote = note_t::D; KeyOctave += 2; break;
2903 case u8'P': KeyNote = note_t::E; KeyOctave += 2; break;
2904 case VK_OEM_4: KeyNote = note_t::F; KeyOctave += 2; break; // [{
2905 case VK_OEM_6: KeyNote = note_t::G; KeyOctave += 2; break; // ]}
2906
2907 case u8'S': KeyNote = note_t::Cs; break;
2908 case u8'D': KeyNote = note_t::Ds; break;
2909 case u8'G': KeyNote = note_t::Fs; break;
2910 case u8'H': KeyNote = note_t::Gs; break;
2911 case u8'J': KeyNote = note_t::As; break;
2912 case u8'L': KeyNote = note_t::Cs; KeyOctave += 1; break;
2913 case VK_OEM_1: KeyNote = note_t::Ds; KeyOctave += 1; break; // ;:
2914
2915 case u8'Z': KeyNote = note_t::C; break;
2916 case u8'X': KeyNote = note_t::D; break;
2917 case u8'C': KeyNote = note_t::E; break;
2918 case u8'V': KeyNote = note_t::F; break;
2919 case u8'B': KeyNote = note_t::G; break;
2920 case u8'N': KeyNote = note_t::A; break;
2921 case u8'M': KeyNote = note_t::B; break;
2922 case VK_OEM_COMMA: KeyNote = note_t::C; KeyOctave += 1; break; // ,<
2923 case VK_OEM_PERIOD: KeyNote = note_t::D; KeyOctave += 1; break; // .>
2924 case VK_OEM_2: KeyNote = note_t::E; KeyOctave += 1; break; // /?
2925 }
2926
2927 // Invalid
2928 if (KeyNote == note_t::none)
2929 return -1;
2930
2931 auto it = m_iNoteCorrection.find(Key); // // //
2932 if (it != m_iNoteCorrection.end())
2933 KeyOctave += it->second;
2934

Callers

nothing calls this directly

Calls 3

midi_noteFunction · 0.85
GetSelectedOctaveMethod · 0.80
endMethod · 0.45

Tested by

no test coverage detected