-
-
Notifications
You must be signed in to change notification settings - Fork 962
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(display)!: Add libdisplaydevice dependency and output name mapping #2894
base: master
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2894 +/- ##
==========================================
+ Coverage 11.13% 11.17% +0.03%
==========================================
Files 99 100 +1
Lines 17253 17310 +57
Branches 8045 8069 +24
==========================================
+ Hits 1921 1934 +13
- Misses 12639 12671 +32
- Partials 2693 2705 +12
Flags with carried forward coverage won't be shown. Click here to find out more.
|
9a8d7bb
to
c622bec
Compare
c622bec
to
eea095b
Compare
src_assets/common/assets/web/configs/tabs/audiovideo/NewDisplayOutputSelector.vue
Outdated
Show resolved
Hide resolved
2d9423b
to
015e966
Compare
This comment was marked as resolved.
This comment was marked as resolved.
58c729d
to
7a80ccb
Compare
7a80ccb
to
b5a1e14
Compare
c1ca9ee
to
9286e2e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, I'll be basing my display changes on it "soon".
9286e2e
to
68a0ad1
Compare
src_assets/common/assets/web/configs/tabs/audiovideo/DisplayOutputSelector.vue
Outdated
Show resolved
Hide resolved
af1e369
to
4d7ae6e
Compare
1c92ead
to
c09d84b
Compare
6cb95de
to
9fe0eea
Compare
5c17944
to
d15863e
Compare
d15863e
to
3af95c8
Compare
086edc9
to
57feed8
Compare
57feed8
to
b89523e
Compare
993160b
to
2fbc40c
Compare
2fbc40c
to
3a2c6cd
Compare
3a2c6cd
to
fbb45a8
Compare
Quality Gate failedFailed conditions See analysis details on SonarQube Cloud Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE |
Description
This is one of the first PRs related to #2582.
The code has been moved to the https://github.com/LizardByte/libdisplaydevice repo and will be coming to Sunshine little by little.
In this PR
libdisplaydevice
has been added as a submodule and a new singleton class with a newmap_output_name
method has been added.For Windows the
map_output_name
now maps adevice id
to its correspondingdisplay name
, while on other platforms it simply performs a pass-trough.On WIndows, in case the corresponding device has no display name at the moment (either inactive or the id is just wrong), it will return an empty string and the default display would be used as a result (you would still be able to start the stream).
Unfortunately, the method cannot be called just once when the config is loaded to remap the
output_name
immediately, since on Windows there is no guarantee that the display name will remain the same for the display (even without restarting the PC).The display name is tied to a topology of active displays, whose settings are cached by the OS. When Windows encounters a completely new topology of active displays, it will generate the "best" settings to be used as a base.
The new base is not guaranteed to have the same display names as the other cached topology. Now, by simply turning off/on any of the displays, the active topology will change and so can the display name.
This is at least one of the factors why the display name seems random and unpredictable.
Screenshot
Some changes have been made in the UI to show how to configure the output name on Windows.
Type of Change
.github/...
)Checklist
Branch Updates
LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.