Index: share/jive/audio/Playback.lua =================================================================== --- share/jive/audio/Playback.lua (revision 7683) +++ share/jive/audio/Playback.lua (working copy) @@ -125,6 +125,8 @@ log:info("loop file ", file) + self.source = "file" + self:_streamDisconnect(nil, true) Stream:loadLoop(file) @@ -383,6 +385,8 @@ function _streamConnect(self, serverIp, serverPort) log:info("connect ", _ipstring(serverIp), ":", serverPort, " ", string.match(self.header, "(.-)\n")) + self.source = "stream" + self.stream = Stream:connect(serverIp, serverPort) local wtask = Task("streambufW", self, _streamWrite, nil, Task.PRIORITY_AUDIO) @@ -723,6 +727,11 @@ end +function getSource(self) + return self.source +end + + function getCaptureVolume(self) return self.captureVolume end @@ -736,6 +745,7 @@ function setCapturePlayMode(self, capturePlayMode) self.capturePlayMode = capturePlayMode if capturePlayMode == "play" then + self.source = "capture" self:setCaptureVolume(self:getCaptureVolume()) else --mute capture -todo: seems cpu intensive, can we actually just stop capture but not switch back to local player Index: share/jive/slim/LocalPlayer.lua =================================================================== --- share/jive/slim/LocalPlayer.lua (revision 7683) +++ share/jive/slim/LocalPlayer.lua (working copy) @@ -222,8 +222,12 @@ function getEffectivePlayMode(self) - if self:getCapturePlayMode() then - return self:getCapturePlayMode() + local source = self.playback:getSource() + + if source == "capture" then + return self.capturePlayMode + elseif source == "file" then + return "play" else return self:getPlayMode() end