diff --git a/include/staffFunctions.h b/include/staffFunctions.h index 963cb07..89a32aa 100644 --- a/include/staffFunctions.h +++ b/include/staffFunctions.h @@ -1,3 +1,4 @@ #pragma once -void staffVolumeUp(int *maxVolume); \ No newline at end of file +void staffVolumeUp(int *maxVolume); +void staffVolumeDown(int maxVolume, int *userVolume, int *oldUserVolume); \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 7a28f06..28f746d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -55,26 +55,7 @@ void loop() // SW2 - Staff Volume Down if (!debounceRead(BTN_STAFF_DWN)) { - if (maxVolume > STAFF_STEPS) - { - maxVolume -= STAFF_STEPS; - - if (userVolume > maxVolume) - { - for (int i = 0; i < (userVolume - maxVolume); i++) - { - potDecrement(); - } - - userVolume = maxVolume; - oldUserVolume = userVolume; - } - - if (oldUserVolume > maxVolume) - { - oldUserVolume = maxVolume; - } - } + staffVolumeDown(maxVolume, &userVolume, &oldUserVolume); } // Remote D - Mute diff --git a/src/staffFunctions.cpp b/src/staffFunctions.cpp index 25b13bb..8309e0e 100644 --- a/src/staffFunctions.cpp +++ b/src/staffFunctions.cpp @@ -1,5 +1,6 @@ #include #include +#include void staffVolumeUp(int *maxVolume) { @@ -7,4 +8,28 @@ void staffVolumeUp(int *maxVolume) { *maxVolume += STAFF_STEPS; } +} + +void staffVolumeDown(int maxVolume, int *userVolume, int *oldUserVolume) +{ + if (maxVolume > STAFF_STEPS) + { + maxVolume -= STAFF_STEPS; + + if (*userVolume > maxVolume) + { + for (int i = 0; i < (*userVolume - maxVolume); i++) + { + potDecrement(); + } + + *userVolume = maxVolume; + *oldUserVolume = *userVolume; + } + + if (*oldUserVolume > maxVolume) + { + *oldUserVolume = maxVolume; + } + } } \ No newline at end of file