robvdpol / RaceControl

Race Control is a standalone, open source F1TV client for Windows, written in C# on the .NET platform.
GNU General Public License v3.0
1.19k stars 95 forks source link

[FEATURE] Hotkey Swappable FullScreen Streams #362

Closed Possemaster closed 2 years ago

Possemaster commented 2 years ago

I like to view F1 on TV. But I'd like to switch between views like on the F1TV App (Only they have a shitty app so I is not instant and you have to wait for the stream to catch up), Like three streams (Main Race view, Max Verstappen driver Cam and Statistics) I like to be able to have those streams run at the same time layered on top of each other, but only 1 with audio that is in front. And as soon as I click/use my Hotkey I like to swap to that that set Stream screen and swap Audio (So mute the prior and unmute the focussed one). So All streams can run in the background (enough bandwidth anyway :D ), so You do not have to buffer and you can swap on the fly.

Above feature would be a Killer one (I tried to make it with some Autohotkey magic but the window names keep changing so it is a bit of a hassle)

robvdpol commented 2 years ago

You can kind of do this by using the M button (to toggle mute) and the 1-9 buttons to toggle fullscreen for a specific window.

robvdpol commented 2 years ago

You don't even need the mute button, just pressing 1-9 switches fullscreen for a specific window. And when going fullscreen, it mutes the other windows and unmutes the current one.

Possemaster commented 2 years ago

That is a lot of help already. So when for example I have below Layout in JSON. Will the top one always have ID 1?

{ "Instances": [ { "Top": 587.0, "Left": -4473.0, "Width": 3840.0, "Height": 2160.0, "FullScreen": true, "ResizeMode": 0, "VideoQuality": 0, "Topmost": false, "IsMuted": false, "Volume": 100, "Zoom": 0, "AspectRatio": "Keep", "AudioDevice": "Default", "AudioTrack": "eng", "ChannelName": "WIF" }, { "Top": 526.0, "Left": -4175.0, "Width": 3840.0, "Height": 2160.0, "FullScreen": true, "ResizeMode": 0, "VideoQuality": 0, "Topmost": false, "IsMuted": true, "Volume": 100, "Zoom": 0, "AspectRatio": "Keep", "AudioDevice": "Default", "AudioTrack": "teamradio", "ChannelName": "Max Verstappen" }, { "Top": 668.0, "Left": -4546.0, "Width": 3840.0, "Height": 2160.0, "FullScreen": true, "ResizeMode": 0, "VideoQuality": 0, "Topmost": false, "IsMuted": true, "Volume": 100, "Zoom": 0, "AspectRatio": "Keep", "AudioDevice": "Default", "AudioTrack": "eng", "ChannelName": "DATA" } ] }

Possemaster commented 2 years ago

I use Open in MPV so it is borderless. 1 and 2 is Contrast change en 3 and 4 Brightness. Do I have to use the Internal preset? Or am I doing something wrong.

robvdpol commented 2 years ago

Yes I'm talking about internal player. For MPV I cannot control its behavior.

robvdpol commented 2 years ago

That is a lot of help already. So when for example I have below Layout in JSON. Will the top one always have ID 1?

{ "Instances": [ { "Top": 587.0, "Left": -4473.0, "Width": 3840.0, "Height": 2160.0, "FullScreen": true, "ResizeMode": 0, "VideoQuality": 0, "Topmost": false, "IsMuted": false, "Volume": 100, "Zoom": 0, "AspectRatio": "Keep", "AudioDevice": "Default", "AudioTrack": "eng", "ChannelName": "WIF" }, { "Top": 526.0, "Left": -4175.0, "Width": 3840.0, "Height": 2160.0, "FullScreen": true, "ResizeMode": 0, "VideoQuality": 0, "Topmost": false, "IsMuted": true, "Volume": 100, "Zoom": 0, "AspectRatio": "Keep", "AudioDevice": "Default", "AudioTrack": "teamradio", "ChannelName": "Max Verstappen" }, { "Top": 668.0, "Left": -4546.0, "Width": 3840.0, "Height": 2160.0, "FullScreen": true, "ResizeMode": 0, "VideoQuality": 0, "Topmost": false, "IsMuted": true, "Volume": 100, "Zoom": 0, "AspectRatio": "Keep", "AudioDevice": "Default", "AudioTrack": "eng", "ChannelName": "DATA" } ] }

Yes the first one should always have ID 1.