Verpous / AlwaysShadow

Makes sure Shadowplay's Instant Replay feature is on.
GNU General Public License v3.0
131 stars 3 forks source link

Screen sharing in teams disabling ShadowPlay #18

Closed janholbrouck closed 3 months ago

janholbrouck commented 3 months ago

When calling in teams ShadowPlay is allowed to record. However, the moment I start sharing my screen it disables itself. I have not yet installed AlwaysShadow, because from documentation it seems like I would have to whitelist teams.exe in order to prevent it from constantly trying to enable shadowplay while screensharing, which would not be a good solution, since that is the only program I need it for.

Is it possible with this app to achieve shadowplay always being on, except when I am sharing my screen in teams, since it is not possible to have shadowplay on then?

If not, I am considering using Home Assistant to turn on shadowplay when my mic goes from on => off. This would not always be necessary however, since this is only relevant when I am sharing my screen. So far I only found the shortcut of shadowplay to toggle it, I did not find a way to 'turn it on'. Is there any way you know of how I could do this?

Verpous commented 3 months ago

From my quick research it doesn't sound like there's a way to check if teams is sharing the screen.

I have an idea for a compromise: AlwaysShadow will detect if it is "in conflict" (if it keeps having to re-toggle Shadowplay), and in that case it will "yield" by lowering the frequency that it tries to fight it. Right now it wakes up every 10 seconds, so it will instead only try every 10 minutes, for instance. Would this be satisfactory?

janholbrouck commented 3 months ago

I had indeed also checked, and also didn't find a way to check this. It seems sensible to me to lower the frequency to try and fight it, I imagine this could help with reducing the amount of entries people have to put in their whitelists, since it's not such a big deal if it tries to enable shadowplay a couple of times.

I currently don't have any solution, so this would definitely be an acceptable solution for me. Is this something that is already implemented, or would you have to implement this just for me?

Verpous commented 3 months ago

I will have to implement it, but I'm happy to do it, it's what I'm here for.

janholbrouck commented 3 months ago

Alright , thanks! If there's anything I can do to help, let me know.

janholbrouck commented 3 months ago

I went through some of the code to see how you handle the ShadowPlay state, and I think I will try and implement a different solution for now: I wrote a bat file that checks the shadowplay state and sends the key strokes to toggle shadowplay if it is disabled. That way I should be able to run the bat file everytime my microphone is no longer used.

Verpous commented 3 months ago

@janholbrouck Regardless, it was a good idea so I added it and it's now included in the latest release.