fix(ui): write silence to audio when emu is paused
This commit is contained in:
		@@ -196,6 +196,8 @@ pub const Gui = struct {
 | 
			
		||||
                        _ = channel.gui.pop();
 | 
			
		||||
 | 
			
		||||
                        channel.emu.push(.Resume);
 | 
			
		||||
                        SDL.SDL_PauseAudioDevice(self.audio.device, 0);
 | 
			
		||||
 | 
			
		||||
                        self.state.emulation = .Active;
 | 
			
		||||
                    },
 | 
			
		||||
                    .Inactive => {
 | 
			
		||||
@@ -203,7 +205,9 @@ pub const Gui = struct {
 | 
			
		||||
                        if (channel.gui.peek()) |value|
 | 
			
		||||
                            std.debug.assert(value != .Paused);
 | 
			
		||||
 | 
			
		||||
                        SDL.SDL_PauseAudioDevice(self.audio.device, 1);
 | 
			
		||||
                        channel.emu.push(.Pause);
 | 
			
		||||
 | 
			
		||||
                        self.state.emulation = .Inactive;
 | 
			
		||||
                    },
 | 
			
		||||
                },
 | 
			
		||||
@@ -251,6 +255,12 @@ pub const Gui = struct {
 | 
			
		||||
                        opengl_impl.drawScreenTexture(emu_tex, prog_id, objects, buf);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    // FIXME: We only really care about locking the audio device (and therefore writing silence)
 | 
			
		||||
                    // since if nfd-zig is used the emu may be paused for way too long. Perhaps we should try and limit
 | 
			
		||||
                    // spurious calls to SDL_LockAudioDevice?
 | 
			
		||||
                    SDL.SDL_LockAudioDevice(self.audio.device);
 | 
			
		||||
                    defer SDL.SDL_UnlockAudioDevice(self.audio.device);
 | 
			
		||||
 | 
			
		||||
                    zgui_redraw = imgui.draw(&self.state, win_dim, out_tex, cpu);
 | 
			
		||||
                },
 | 
			
		||||
                .Inactive => zgui_redraw = imgui.draw(&self.state, win_dim, out_tex, cpu),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user