mirror of
https://github.com/LizardByte/Sunshine.git
synced 2025-02-21 18:39:59 +00:00
Don't skip disconnected X11 outputs (#1071)
This commit is contained in:
parent
44f1984af0
commit
1ab1b7920e
@ -299,13 +299,18 @@ output_name
|
|||||||
.. Tip:: To find the name of the appropriate values follow these instructions.
|
.. Tip:: To find the name of the appropriate values follow these instructions.
|
||||||
|
|
||||||
**Linux**
|
**Linux**
|
||||||
.. code-block:: bash
|
During Sunshine startup, you should see the list of detected monitors:
|
||||||
|
|
||||||
xrandr --listmonitors
|
.. code-block:: text
|
||||||
|
|
||||||
Example output: ``0: +HDMI-1 1920/518x1200/324+0+0 HDMI-1``
|
Info: Detecting connected monitors
|
||||||
|
Info: Detected monitor 0: DVI-D-0, connected: false
|
||||||
|
Info: Detected monitor 1: HDMI-0, connected: true
|
||||||
|
Info: Detected monitor 2: DP-0, connected: true
|
||||||
|
Info: Detected monitor 3: DP-1, connected: false
|
||||||
|
Info: Detected monitor 4: DVI-D-1, connected: false
|
||||||
|
|
||||||
You need to use the value before the colon in the output, e.g. ``0``.
|
You need to use the value before the colon in the output, e.g. ``1``.
|
||||||
|
|
||||||
.. Todo:: macOS
|
.. Todo:: macOS
|
||||||
|
|
||||||
|
@ -427,7 +427,7 @@ namespace platf {
|
|||||||
int monitor = 0;
|
int monitor = 0;
|
||||||
for (int x = 0; x < output; ++x) {
|
for (int x = 0; x < output; ++x) {
|
||||||
output_info_t out_info { x11::rr::GetOutputInfo(xdisplay.get(), screenr.get(), screenr->outputs[x]) };
|
output_info_t out_info { x11::rr::GetOutputInfo(xdisplay.get(), screenr.get(), screenr->outputs[x]) };
|
||||||
if (out_info && out_info->connection == RR_Connected) {
|
if (out_info) {
|
||||||
if (monitor++ == streamedMonitor) {
|
if (monitor++ == streamedMonitor) {
|
||||||
result = std::move(out_info);
|
result = std::move(out_info);
|
||||||
break;
|
break;
|
||||||
@ -761,7 +761,7 @@ namespace platf {
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_LOG(info) << "Detecting connected monitors"sv;
|
BOOST_LOG(info) << "Detecting monitors"sv;
|
||||||
|
|
||||||
x11::xdisplay_t xdisplay { x11::OpenDisplay(nullptr) };
|
x11::xdisplay_t xdisplay { x11::OpenDisplay(nullptr) };
|
||||||
if (!xdisplay) {
|
if (!xdisplay) {
|
||||||
@ -775,7 +775,8 @@ namespace platf {
|
|||||||
int monitor = 0;
|
int monitor = 0;
|
||||||
for (int x = 0; x < output; ++x) {
|
for (int x = 0; x < output; ++x) {
|
||||||
output_info_t out_info { x11::rr::GetOutputInfo(xdisplay.get(), screenr.get(), screenr->outputs[x]) };
|
output_info_t out_info { x11::rr::GetOutputInfo(xdisplay.get(), screenr.get(), screenr->outputs[x]) };
|
||||||
if (out_info && out_info->connection == RR_Connected) {
|
if (out_info) {
|
||||||
|
BOOST_LOG(info) << "Detected monitor "sv << monitor << ": "sv << out_info->name << ", connected: "sv << (out_info->connection == RR_Connected);
|
||||||
++monitor;
|
++monitor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -560,9 +560,17 @@
|
|||||||
v-model="config.output_name"
|
v-model="config.output_name"
|
||||||
/>
|
/>
|
||||||
<div class="form-text">
|
<div class="form-text">
|
||||||
xrandr --listmonitors<br />
|
During Sunshine startup, you should see the list of detected monitors, e.g.:<br />
|
||||||
Example output:
|
<br />
|
||||||
<pre> 0: +HDMI-1 1920/518x1200/324+0+0 HDMI-1</pre>
|
<pre style="white-space: pre-line;">
|
||||||
|
Info: Detecting connected monitors
|
||||||
|
Info: Detected monitor 0: DVI-D-0, connected: false
|
||||||
|
Info: Detected monitor 1: HDMI-0, connected: true
|
||||||
|
Info: Detected monitor 2: DP-0, connected: true
|
||||||
|
Info: Detected monitor 3: DP-1, connected: false
|
||||||
|
Info: Detected monitor 4: DVI-D-1, connected: false
|
||||||
|
</pre>
|
||||||
|
You need to use the value before the colon in the output, e.g. <b>1</b>.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user