diff --git a/src/broadcast/state.ts b/src/broadcast/state.ts
index ed86b3c..d078ea2 100644
--- a/src/broadcast/state.ts
+++ b/src/broadcast/state.ts
@@ -144,7 +144,16 @@ export const registerForShow = (): AppThunk => async (dispatch, getState) => {
})
);
if (streamer) {
- await streamer.stop("ApiException " + e.message);
+ // We're connected,
+ var remain_connected = getState().settings.allowStreamingOnReject;
+ if (remain_connected) {
+ console.log(
+ "StateServer refused registration. Due to setting, staying connected.",
+ e
+ );
+ } else {
+ await streamer.stop("ApiException " + e.message);
+ }
}
} else {
// let raygun handle it
diff --git a/src/optionsMenu/AdvancedTab.tsx b/src/optionsMenu/AdvancedTab.tsx
index a29f38c..1b18d26 100644
--- a/src/optionsMenu/AdvancedTab.tsx
+++ b/src/optionsMenu/AdvancedTab.tsx
@@ -305,6 +305,25 @@ export function AdvancedTab() {
/>
+
+
+ dispatch(
+ changeSetting({
+ key: "allowStreamingOnReject",
+ val: e.target.checked,
+ })
+ )
+ }
+ />
+
+
>
);
}
diff --git a/src/optionsMenu/settingsState.ts b/src/optionsMenu/settingsState.ts
index 2d7aa19..da071df 100644
--- a/src/optionsMenu/settingsState.ts
+++ b/src/optionsMenu/settingsState.ts
@@ -3,6 +3,7 @@ import { INTERNAL_OUTPUT_ID, PLAYER_COUNT } from "../mixer/audio";
interface Settings {
showDebugInfo: boolean;
+ allowStreamingOnReject: boolean;
enableRecording: boolean;
tracklist: "always" | "while_live" | "never";
doTheNews: "always" | "while_live" | "never";
@@ -18,6 +19,7 @@ const settingsState = createSlice({
name: "settings",
initialState: {
showDebugInfo: false,
+ allowStreamingOnReject: false,
enableRecording: false,
tracklist: "while_live",
doTheNews: "while_live",