mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-26 14:33:01 +00:00
Merge remote-tracking branch 'Eknous-P/haptic-two'
This commit is contained in:
commit
c8661648c5
4 changed files with 35 additions and 11 deletions
|
@ -509,16 +509,6 @@ void FurnaceGUI::drawMobileControls() {
|
|||
doAction(GUI_ACTION_SAVE_AS);
|
||||
}
|
||||
|
||||
if (ImGui::Button("1.1+ .dmf")) {
|
||||
mobileMenuOpen=false;
|
||||
openFileDialog(GUI_FILE_SAVE_DMF);
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Legacy .dmf")) {
|
||||
mobileMenuOpen=false;
|
||||
openFileDialog(GUI_FILE_SAVE_DMF_LEGACY);
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Export")) {
|
||||
doAction(GUI_ACTION_EXPORT);
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
// for now
|
||||
#define NOTIFY_LONG_HOLD \
|
||||
if (vibrator && vibratorAvailable) { \
|
||||
if (SDL_HapticRumblePlay(vibrator,0.5f,20)!=0) { \
|
||||
if (SDL_HapticRumblePlay(vibrator,settings.vibrationStrength,settings.vibrationLength)!=0) { \
|
||||
logV("could not vibrate: %s!",SDL_GetError()); \
|
||||
} \
|
||||
} else { \
|
||||
|
@ -1844,6 +1844,8 @@ class FurnaceGUI {
|
|||
int frameRateLimit;
|
||||
int displayRenderTime;
|
||||
unsigned int maxUndoSteps;
|
||||
float vibrationStrength;
|
||||
int vibrationLength;
|
||||
String mainFontPath;
|
||||
String headFontPath;
|
||||
String patFontPath;
|
||||
|
@ -2076,6 +2078,8 @@ class FurnaceGUI {
|
|||
frameRateLimit(60),
|
||||
displayRenderTime(0),
|
||||
maxUndoSteps(100),
|
||||
vibrationStrength(0.5f),
|
||||
vibrationLength(100),
|
||||
mainFontPath(""),
|
||||
headFontPath(""),
|
||||
patFontPath(""),
|
||||
|
|
|
@ -563,6 +563,24 @@ void FurnaceGUI::drawSettings() {
|
|||
}
|
||||
ImGui::Unindent();
|
||||
|
||||
#ifdef IS_MOBILE
|
||||
// SUBSECTION VIBRATION
|
||||
CONFIG_SUBSECTION("Vibration");
|
||||
|
||||
ImGui::Indent();
|
||||
if (ImGui::SliderFloat("Strength",&settings.vibrationStrength,0.0f,1.0f)) {
|
||||
if (settings.vibrationStrength<0.0f) settings.vibrationStrength=0.0f;
|
||||
if (settings.vibrationStrength>1.0f) settings.vibrationStrength=1.0f;
|
||||
settingsChanged=true;
|
||||
}
|
||||
|
||||
if (ImGui::SliderInt("Length",&settings.vibrationLength,10,500)) {
|
||||
if (settings.vibrationLength<10) settings.vibrationLength=10;
|
||||
if (settings.vibrationLength>500) settings.vibrationLength=500;
|
||||
settingsChanged=true;
|
||||
ImGui::Unindent();
|
||||
#endif
|
||||
|
||||
// SUBSECTION FILE
|
||||
CONFIG_SUBSECTION("File");
|
||||
|
||||
|
@ -4049,6 +4067,9 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
|
|||
settings.newSongBehavior=conf.getInt("newSongBehavior",0);
|
||||
settings.playOnLoad=conf.getInt("playOnLoad",0);
|
||||
settings.centerPopup=conf.getInt("centerPopup",1);
|
||||
|
||||
settings.vibrationStrength=conf.getFloat("vibrationStrength",0.5f);
|
||||
settings.vibrationLength=conf.getInt("vibrationLength",100);
|
||||
}
|
||||
|
||||
if (groups&GUI_SETTINGS_AUDIO) {
|
||||
|
@ -4520,6 +4541,8 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
|
|||
clampSetting(settings.vsync,0,4);
|
||||
clampSetting(settings.frameRateLimit,0,1000);
|
||||
clampSetting(settings.displayRenderTime,0,1);
|
||||
clampSetting(settings.vibrationStrength,0.0f,1.0f);
|
||||
clampSetting(settings.vibrationLength,10,500);
|
||||
|
||||
if (settings.exportLoops<0.0) settings.exportLoops=0.0;
|
||||
if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0;
|
||||
|
@ -4582,6 +4605,9 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
|
|||
conf.set("newSongBehavior",settings.newSongBehavior);
|
||||
conf.set("playOnLoad",settings.playOnLoad);
|
||||
conf.set("centerPopup",settings.centerPopup);
|
||||
|
||||
conf.set("vibrationStrength",settings.vibrationStrength);
|
||||
conf.set("vibrationLength",settings.vibrationLength);
|
||||
}
|
||||
|
||||
// audio
|
||||
|
|
|
@ -222,6 +222,10 @@ void FurnaceGUI::drawXYOsc() {
|
|||
if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) {
|
||||
xyOscOptions=true;
|
||||
}
|
||||
if (ImGui::IsItemHovered() && CHECK_LONG_HOLD) {
|
||||
NOTIFY_LONG_HOLD;
|
||||
xyOscOptions=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (noPadding) {
|
||||
|
|
Loading…
Reference in a new issue