diff --git a/src/activities/melody/Melody.qml b/src/activities/melody/Melody.qml --- a/src/activities/melody/Melody.qml +++ b/src/activities/melody/Melody.qml @@ -29,6 +29,7 @@ onStart: focus = true onStop: {} + isMusicalActivity: true pageComponent: Image { id: background diff --git a/src/core/ActivityBase.qml b/src/core/ActivityBase.qml --- a/src/core/ActivityBase.qml +++ b/src/core/ActivityBase.qml @@ -122,6 +122,14 @@ */ property Loading loading + /** + * type: bool + * This variable stores if the activity is a musical activity. + * + * If it is a musical activity and the audioEffects is disabled, we temporarily unmute the GCSfx audioEffects for that activity and mute again on exiting it in main.qml. + */ + property bool isMusicalActivity: false + /** * Emitted when the user wants to return to the Home/Menu screen. */ diff --git a/src/core/main.qml b/src/core/main.qml --- a/src/core/main.qml +++ b/src/core/main.qml @@ -53,6 +53,7 @@ /// @cond INTERNAL_DOCS property var applicationState: Qt.application.state + property bool isMusicalActivityRunning: false onApplicationStateChanged: { if (ApplicationInfo.isMobile && applicationState != Qt.ApplicationActive) { @@ -99,7 +100,7 @@ GCSfx { id: audioEffects - muted: !ApplicationSettings.isAudioEffectsEnabled + muted: !ApplicationSettings.isAudioEffectsEnabled && !main.isMusicalActivityRunning } function playIntroVoice(name) { @@ -244,12 +245,15 @@ if(properties.enterItem.isDialog) { return pushVTransition } else { + if(properties.enterItem.isMusicalActivity) + main.isMusicalActivityRunning = true return pushHTransition } } else { if(properties.exitItem.isDialog) { return popVTransition } else { + main.isMusicalActivityRunning = false return popHTransition }