From 15230781e162cf5d161c2d5d4295e9d6110aa1e9 Mon Sep 17 00:00:00 2001 From: "milkdropper.com" Date: Sat, 15 Aug 2020 18:36:45 +0400 Subject: [PATCH] comments --- src/libprojectM/KeyHandler.cpp | 26 +++++++++++++------------- src/libprojectM/PresetLoader.cpp | 3 +++ src/libprojectM/Renderer/Renderer.cpp | 9 ++++----- src/libprojectM/Renderer/Renderer.hpp | 1 - src/libprojectM/projectM.cpp | 19 ++++++++++++++++--- src/libprojectM/projectM.hpp | 2 ++ 6 files changed, 38 insertions(+), 22 deletions(-) diff --git a/src/libprojectM/KeyHandler.cpp b/src/libprojectM/KeyHandler.cpp index 000cc7392..c956daaf3 100755 --- a/src/libprojectM/KeyHandler.cpp +++ b/src/libprojectM/KeyHandler.cpp @@ -176,20 +176,20 @@ void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode } break; case PROJECTM_K_h: - if (!isTextInputActive(true)) { + if (!isTextInputActive(true)) { // disable help when searching. renderer->showhelp = !renderer->showhelp; renderer->showstats = false; renderer->showmenu = false; } case PROJECTM_K_F1: - if (!isTextInputActive(true)) { + if (!isTextInputActive(true)) { // disable F1 when searching. renderer->showhelp = !renderer->showhelp; renderer->showstats = false; renderer->showmenu = false; } break; case PROJECTM_K_y: - if (!isTextInputActive(true)) { + if (!isTextInputActive(true)) { // disable shuffle toggle when searching. this->setShuffleEnabled(!this->isShuffleEnabled()); if (this->isShuffleEnabled()) { renderer->setToastMessage("Shuffle Enabled"); @@ -200,7 +200,7 @@ void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode } break; case PROJECTM_K_F5: - if (!isTextInputActive(true)) { + if (!isTextInputActive(true)) { // disable fps when searching. renderer->showfps = !renderer->showfps; // Initialize counters and reset frame count. renderer->lastTimeFPS = duration_cast(system_clock::now().time_since_epoch()); @@ -214,7 +214,7 @@ void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode } break; case PROJECTM_K_F4: - if (!isTextInputActive(true)) { + if (!isTextInputActive(true)) { // disable states when searching. renderer->showstats = !renderer->showstats; if (renderer->showstats) { renderer->showhelp = false; @@ -223,7 +223,7 @@ void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode } break; case PROJECTM_K_F3: { - if (!isTextInputActive(true)) { + if (!isTextInputActive(true)) { // disable current preset name when searching. renderer->showpreset = !renderer->showpreset; // Hide FPS from screen and replace it with preset name. if (renderer->showpreset) @@ -261,7 +261,7 @@ void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode break; case PROJECTM_K_H: case PROJECTM_K_m: - if (!isTextInputActive(true)) { + if (!isTextInputActive(true)) { // disable menu when searching (hint: it's already up). renderer->showmenu = !renderer->showmenu; if (renderer->showmenu) { renderer->showhelp = false; @@ -271,7 +271,7 @@ void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode } break; case PROJECTM_K_M: - if (!isTextInputActive(true)) { + if (!isTextInputActive(true)) { // disable menu when searching (hint: it's already up). renderer->showmenu = !renderer->showmenu; if (renderer->showmenu) { @@ -282,19 +282,19 @@ void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode } break; case PROJECTM_K_n: - if (!isTextInputActive(true)) + if (!isTextInputActive(true)) // disable next key when searching (down arrow is more natural) selectNext(true); break; case PROJECTM_K_N: - if (!isTextInputActive(true)) + if (!isTextInputActive(true)) // disable next key when searching (down arrow is more natural) selectNext(false); break; case PROJECTM_K_r: - if (!isTextInputActive(true)) + if (!isTextInputActive(true)) // disable random key when searching selectRandom(true); break; case PROJECTM_K_R: - if (!isTextInputActive(true)) + if (!isTextInputActive(true)) // disable random key when searching selectRandom(false); break; case PROJECTM_K_p: @@ -305,7 +305,7 @@ void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode selectPrevious(false); break; case PROJECTM_K_l: - if (!isTextInputActive(true)) + if (!isTextInputActive(true)) // disable lock key when searching setPresetLock(!isPresetLocked()); break; case PROJECTM_K_s: diff --git a/src/libprojectM/PresetLoader.cpp b/src/libprojectM/PresetLoader.cpp index b661c03e4..dc71d5e8c 100644 --- a/src/libprojectM/PresetLoader.cpp +++ b/src/libprojectM/PresetLoader.cpp @@ -149,11 +149,14 @@ const std::string & PresetLoader::getPresetName ( PresetIndex index ) const return _presetNames[index]; } + +// Get vector of preset names const std::vector &PresetLoader::getPresetNames() const { return _presetNames; } +// Get the preset index given a name const unsigned int PresetLoader::getPresetIndex(std::string &name) const { //Need a better structure than a vector for reverse lookup diff --git a/src/libprojectM/Renderer/Renderer.cpp b/src/libprojectM/Renderer/Renderer.cpp index 8c8a091b2..493587903 100644 --- a/src/libprojectM/Renderer/Renderer.cpp +++ b/src/libprojectM/Renderer/Renderer.cpp @@ -811,6 +811,7 @@ void Renderer::touchDestroyAll() waveformList.clear(); } +// turn search menu on / off void Renderer::toggleSearchText() { this->showsearch = !this->showsearch; if (this->showsearch) @@ -820,16 +821,13 @@ void Renderer::toggleSearchText() { } } +// search based on new key input void Renderer::setSearchText(const std::string& theValue) { m_searchText = m_searchText + theValue; } -void Renderer::resetSearchText() -{ - m_searchText = ""; -} - +// search text backspace (delete a key) void Renderer::deleteSearchText() { if (m_searchText.length() >= 1) { @@ -856,6 +854,7 @@ void Renderer::draw_title_to_screen(bool flip) #endif /** USE_TEXT_MENU */ } +// render search text menu void Renderer::draw_search() { #ifdef USE_TEXT_MENU diff --git a/src/libprojectM/Renderer/Renderer.hpp b/src/libprojectM/Renderer/Renderer.hpp index a9be0f76b..5ace4c209 100644 --- a/src/libprojectM/Renderer/Renderer.hpp +++ b/src/libprojectM/Renderer/Renderer.hpp @@ -175,7 +175,6 @@ public: void setToastMessage(const std::string& theValue); void setSearchText(const std::string& theValue); void deleteSearchText(); - void resetSearchText(); std::string toastMessage() const { return m_toastMessage; diff --git a/src/libprojectM/projectM.cpp b/src/libprojectM/projectM.cpp index 6508f9142..030b5534d 100755 --- a/src/libprojectM/projectM.cpp +++ b/src/libprojectM/projectM.cpp @@ -791,9 +791,9 @@ void projectM::populatePresetMenu() if(isTextInputActive()) { // if a searchTerm is active, we will populate the preset menu with search terms instead of the page we are on. int h = 0; - for(unsigned int i = 0; i < getPlaylistSize(); i++) { - if (getPresetName(i).find(renderer->searchText()) != std::string::npos) { - if (h < renderer->textMenuPageSize) + for(unsigned int i = 0; i < getPlaylistSize(); i++) { // loop over all presets + if (getPresetName(i).find(renderer->searchText()) != std::string::npos) { // if term matches + if (h < renderer->textMenuPageSize) // limit to just one page, pagination is not needed. { h++; renderer->m_presetList.push_back({ h, getPresetName(i), "" }); // populate the renders preset list. @@ -878,11 +878,14 @@ void projectM::selectPrevious(const bool hardCut) { if (isTextInputActive(true) && renderer->m_presetList.size() >= 1) { + // if search menu is up, previous is based on search terms. if (renderer->m_activePresetID <= 1) { + // loop to bottom of page is at top renderer->m_activePresetID = renderer->m_presetList.size(); selectPresetByName(renderer->m_presetList[renderer->m_activePresetID - 1].name,true); } else { + // otherwise move back renderer->m_activePresetID--; selectPresetByName(renderer->m_presetList[renderer->m_activePresetID-1].name,true); } @@ -905,11 +908,14 @@ void projectM::selectNext(const bool hardCut) { return; if (isTextInputActive() && renderer->m_presetList.size() >= 1) // if search is active and there are search results { + // if search menu is down, previous is based on search terms. if (renderer->m_activePresetID >= renderer->m_presetList.size()) { + // loop to top of page is at bottom renderer->m_activePresetID = 1; selectPresetByName(renderer->m_presetList[0].name,true); } else { + // otherwise move forward selectPresetByName(renderer->m_presetList[renderer->m_activePresetID].name,true); renderer->m_activePresetID++; } @@ -970,6 +976,7 @@ void projectM::setPresetLock ( bool isLocked ) } } +// check if search menu is up and you have search terms (2 chars). nomin means you don't care about search terms. bool projectM::isTextInputActive( bool nomin ) const { if (renderer->showsearch && (renderer->searchText().length() >= 2 || nomin)) @@ -1099,12 +1106,14 @@ void projectM::getMeshSize(int *w, int *h) { *h = _settings.meshY; } +// toggleSearchText void projectM::toggleSearchText() { if ( renderer ) renderer->toggleSearchText(); } +// get index from search results based on preset name const unsigned int projectM::getSearchIndex(std::string &name) const { for (auto& it : renderer->m_presetList) { @@ -1113,17 +1122,20 @@ const unsigned int projectM::getSearchIndex(std::string &name) const return 0; } +// get preset index based on preset name unsigned int projectM::getPresetIndex(std::string& name) const { return m_presetLoader->getPresetIndex(name); } +// load preset based on name void projectM::selectPresetByName(std::string name, bool hardCut) { unsigned int index = getPresetIndex(name); if (m_presetChooser->empty()) return; selectPreset(index); } +// update search text based on new keystroke void projectM::setSearchText(const std::string & searchKey) { if ( renderer ) @@ -1136,6 +1148,7 @@ void projectM::setSearchText(const std::string & searchKey) } } +// update search text based on new backspace void projectM::deleteSearchText() { if ( renderer ) diff --git a/src/libprojectM/projectM.hpp b/src/libprojectM/projectM.hpp index 42dc713d5..ef28356e5 100644 --- a/src/libprojectM/projectM.hpp +++ b/src/libprojectM/projectM.hpp @@ -238,7 +238,9 @@ public: /// Plays a preset immediately when given preset name void selectPresetByName(std::string name, bool hardCut = true); + // search based on keystroke void setSearchText(const std::string & searchKey); + // delete part of search term (backspace) void deleteSearchText();