*format = private_voutput->available_formats.formats[i];
}
wl_tdm_voutput_set_available_formats(private_voutput->wl_voutput, &array);
+ wl_array_release(&array);
+}
+
+void
+_tdm_client_voutput_send_available_modes(tdm_private_client_voutput *private_voutput)
+{
+ tdm_client_output_mode *modes, *mode;
+ struct wl_array array;
+ int i, size;
+
+ modes = private_voutput->available_modes.modes;
+ size = sizeof(tdm_client_output_mode);
+
+ wl_array_init(&array);
+ for (i = 0; i < private_voutput->available_modes.count; i++) {
+ mode = wl_array_add(&array, size);
+ memcpy(mode, &modes[i], size);
+ }
+ wl_tdm_voutput_set_available_modes(private_voutput->wl_voutput, &array);
wl_array_release(&array);
}
{
tdm_private_client_output *private_output;
tdm_private_client_voutput *private_voutput;
- tdm_client_output_mode *modes;
- int i;
TDM_RETURN_VAL_IF_FAIL(output != NULL, TDM_ERROR_INVALID_PARAMETER);
private_output->connection = TDM_OUTPUT_CONN_STATUS_CONNECTED;
- modes = private_voutput->available_modes.modes;
- for (i = 0; i < private_voutput->available_modes.count; i++) {
- wl_tdm_voutput_set_available_modes(private_voutput->wl_voutput, i,
- modes[i].clock, modes[i].hdisplay,
- modes[i].hsync_start, modes[i].hsync_end,
- modes[i].htotal, modes[i].hskew,
- modes[i].vdisplay, modes[i].vsync_start,
- modes[i].vsync_end, modes[i].vtotal,
- modes[i].vscan, modes[i].vrefresh,
- modes[i].flags, modes[i].type,
- modes[i].name);
- }
-
+ _tdm_client_voutput_send_available_modes(private_voutput);
_tdm_client_voutput_send_available_formats(private_voutput);
wl_tdm_voutput_set_physical_size(private_voutput->wl_voutput, private_voutput->mmwidth, private_voutput->mmheight);