]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_stasis_recording.c: Save recording state when unmuted.
authorSean Bright <sean@seanbright.com>
Tue, 12 Sep 2023 15:26:45 +0000 (11:26 -0400)
committerSean Bright <sean@seanbright.com>
Wed, 13 Sep 2023 17:34:34 +0000 (17:34 +0000)
Fixes #322

res/res_stasis_recording.c

index 0ab50e4d8bf666db0d744b43d1286f673ee4742e..74aa08a1d24090d5127e3cd7b79b14601ede47de 100644 (file)
@@ -547,27 +547,27 @@ static int recording_unpause(struct stasis_app_recording *recording)
                AST_CONTROL_RECORD_SUSPEND);
 }
 
-static int recording_mute(struct stasis_app_recording *recording)
+static int toggle_recording_mute(struct stasis_app_recording *recording, int desired_mute_state)
 {
-       if (recording->muted) {
-               /* already muted */
+       if (recording->muted == desired_mute_state) {
+               /* already in desired state */
                return 0;
        }
 
-       recording->muted = 1;
+       recording->muted = desired_mute_state;
+
        return stasis_app_control_queue_control(recording->control,
                AST_CONTROL_RECORD_MUTE);
 }
 
-static int recording_unmute(struct stasis_app_recording *recording)
+static int recording_mute(struct stasis_app_recording *recording)
 {
-       if (!recording->muted) {
-               /* already unmuted */
-               return 0;
-       }
+       return toggle_recording_mute(recording, 1);
+}
 
-       return stasis_app_control_queue_control(recording->control,
-               AST_CONTROL_RECORD_MUTE);
+static int recording_unmute(struct stasis_app_recording *recording)
+{
+       return toggle_recording_mute(recording, 0);
 }
 
 recording_operation_cb operations[STASIS_APP_RECORDING_STATE_MAX][STASIS_APP_RECORDING_OPER_MAX] = {