Mir

Merge lp:~vanvugt/mir/mirout-new-api into lp:mir

Proposed by Daniel van Vugt
Status: Merged
Approved by: Alexandros Frantzis
Approved revision: no longer in the source branch.
Merged at revision: 3832
Proposed branch: lp:~vanvugt/mir/mirout-new-api
Merge into: lp:mir
Diff against target: 170 lines (+69/-49)
1 file modified
src/utils/out.c (+69/-49)
To merge this branch: bzr merge lp:~vanvugt/mir/mirout-new-api
Reviewer Review Type Date Requested Status
Alexandros Frantzis (community) Approve
Andreas Pokorny (community) Approve
Mir CI Bot continuous-integration Approve
Review via email: mp+311236@code.launchpad.net

Commit message

Migrate mirout from the old MirDisplayConfiguration API to the new
MirDisplayConfig API.

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3833
https://mir-jenkins.ubuntu.com/job/mir-ci/2204/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/2857/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2922
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2914
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2914
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2914
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2886/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2886
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2886/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2886
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2886/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2886
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2886/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2886
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2886/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2886
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2886/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2204/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3834
https://mir-jenkins.ubuntu.com/job/mir-ci/2207/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/2860
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/2925
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2917
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2917
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2917
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2889
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/2889/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2889
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/2889/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2889
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/2889/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2889
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/2889/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2889
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/2889/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2889
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/2889/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2207/rebuild

review: Approve (continuous-integration)
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

sure

review: Approve
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

Looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/utils/out.c'
2--- src/utils/out.c 2016-11-11 07:56:09 +0000
3+++ src/utils/out.c 2016-11-18 09:03:53 +0000
4@@ -45,6 +45,18 @@
5 return name[(ori % 360) / 90];
6 }
7
8+static char const* state_name(MirOutputConnectionState s)
9+{
10+ static char const* const name[] =
11+ {
12+ "disconnected",
13+ "connected",
14+ "unknown",
15+ };
16+ unsigned int u = s;
17+ return u < 3 ? name[u] : "out-of-range";
18+}
19+
20 int main(int argc, char *argv[])
21 {
22 const char *server = NULL;
23@@ -84,90 +96,98 @@
24
25 printf("Connected to server: %s\n", server ? server : "<default>");
26
27- MirDisplayConfiguration *conf = mir_connection_create_display_config(conn);
28+ MirDisplayConfig* conf = mir_connection_create_display_configuration(conn);
29 if (conf == NULL)
30 {
31 fprintf(stderr, "Failed to get display configuration (!?)\n");
32 }
33 else
34 {
35- for (unsigned c = 0; c < conf->num_cards; ++c)
36- {
37- const MirDisplayCard *card = conf->cards + c;
38- printf("Card %u: Max %u simultaneous outputs\n",
39- card->card_id, card->max_simultaneous_outputs);
40- }
41-
42- for (unsigned i = 0; i < conf->num_outputs; ++i)
43- {
44- const MirDisplayOutput *out = conf->outputs + i;
45-
46- printf("Output %u: Card %u, %s, %s",
47- out->output_id,
48- out->card_id,
49- mir_display_output_type_name(out->type),
50- out->connected ? "connected" : "disconnected");
51-
52- if (out->connected)
53+ int num_outputs = mir_display_config_get_num_outputs(conf);
54+
55+ printf("Max %d simultaneous outputs\n",
56+ mir_display_config_get_max_simultaneous_outputs(conf));
57+
58+ for (int i = 0; i < num_outputs; ++i)
59+ {
60+ MirOutput const* out = mir_display_config_get_output(conf, i);
61+ MirOutputConnectionState const state =
62+ mir_output_get_connection_state(out);
63+
64+ printf("Output %d: %s, %s",
65+ mir_output_get_id(out),
66+ mir_output_type_name(mir_output_get_type(out)),
67+ state_name(state));
68+
69+ if (state == mir_output_connection_state_connected)
70 {
71- if (out->current_mode < out->num_modes)
72+ MirOutputMode const* current_mode =
73+ mir_output_get_current_mode(out);
74+ if (current_mode)
75 {
76- const MirDisplayMode *cur = out->modes + out->current_mode;
77- printf(", %ux%u",
78- cur->horizontal_resolution,
79- cur->vertical_resolution);
80+ printf(", %dx%d",
81+ mir_output_mode_get_width(current_mode),
82+ mir_output_mode_get_height(current_mode));
83 }
84 else
85 {
86 printf(", ");
87 }
88
89+ int physical_width_mm = mir_output_get_physical_width_mm(out);
90+ int physical_height_mm = mir_output_get_physical_height_mm(out);
91 float inches = sqrtf(
92- (out->physical_width_mm * out->physical_width_mm) +
93- (out->physical_height_mm * out->physical_height_mm))
94+ (physical_width_mm * physical_width_mm) +
95+ (physical_height_mm * physical_height_mm))
96 / 25.4f;
97
98- printf("%+d%+d, %s, %s, %umm x %umm (%.1f\"), %s",
99- out->position_x,
100- out->position_y,
101- out->used ? "used" : "unused",
102- power_mode_name(out->power_mode),
103- out->physical_width_mm,
104- out->physical_height_mm,
105+ printf("%+d%+d, %s, %s, %dmm x %dmm (%.1f\"), %s",
106+ mir_output_get_position_x(out),
107+ mir_output_get_position_y(out),
108+ mir_output_is_enabled(out) ? "enabled" : "disabled",
109+ power_mode_name(mir_output_get_power_mode(out)),
110+ physical_width_mm,
111+ physical_height_mm,
112 inches,
113- orientation_name(out->orientation));
114+ orientation_name(mir_output_get_orientation(out)));
115 }
116 printf("\n");
117
118- for (unsigned m = 0; m < out->num_modes; ++m)
119+ int const num_modes = mir_output_get_num_modes(out);
120+ int const current_mode_index =
121+ mir_output_get_current_mode_index(out);
122+ int const preferred_mode_index =
123+ mir_output_get_preferred_mode_index(out);
124+ int prev_width = -1, prev_height = -1;
125+
126+ for (int m = 0; m < num_modes; ++m)
127 {
128- const MirDisplayMode *mode = out->modes + m;
129+ MirOutputMode const* mode = mir_output_get_mode(out, m);
130+ int const width = mir_output_mode_get_width(mode);
131+ int const height = mir_output_mode_get_height(mode);
132
133- if (m == 0 ||
134- mode->horizontal_resolution !=
135- mode[-1].horizontal_resolution ||
136- mode->vertical_resolution !=
137- mode[-1].vertical_resolution)
138+ if (m == 0 || width != prev_width || height != prev_height)
139 {
140 if (m)
141 printf("\n");
142
143- printf("%8ux%-8u",
144- mode->horizontal_resolution,
145- mode->vertical_resolution);
146+ printf("%8dx%-8d", width, height);
147 }
148
149 printf("%6.2f%c%c",
150- mode->refresh_rate,
151- (m == out->current_mode) ? '*' : ' ',
152- (m == out->preferred_mode) ? '+' : ' ');
153+ mir_output_mode_get_refresh_rate(mode),
154+ (m == current_mode_index) ? '*' : ' ',
155+ (m == preferred_mode_index) ? '+' : ' ');
156+
157+ prev_width = width;
158+ prev_height = height;
159 }
160
161- if (out->num_modes)
162+ if (num_modes)
163 printf("\n");
164 }
165
166- mir_display_config_destroy(conf);
167+ mir_display_config_release(conf);
168 }
169
170 mir_connection_release(conn);

Subscribers

People subscribed via source and target branches