+ if (voutput->need_mode_change) {
+ const tdm_output_mode *modes;
+ int count = 0;
+
+ tdm_output_get_available_modes(voutput->output, &modes, &count);
+ if (count > voutput->index) {
+ const tdm_output_mode *mode, *current;
+
+ ret = tdm_output_get_mode(voutput->output, ¤t);
+ TDM_EXIT_IF_FAIL(ret == TDM_ERROR_NONE);
+
+ mode = &modes[voutput->index];
+
+ if (mode != current) {
+ printf("mode change to %d (%dx%d, %d)\n",
+ voutput->index, mode->hdisplay, mode->vdisplay, mode->vrefresh);
+ _voutput_buff_deinit(voutput);
+ _voutput_buff_init(voutput);
+
+ ret = tdm_output_set_mode(voutput->output, mode);
+ TDM_EXIT_IF_FAIL(ret == TDM_ERROR_NONE);
+
+ _voutput_layer_init(voutput);
+ voutput->buf_idx = 2;
+ }
+ }
+ voutput->need_mode_change = 0;
+ }
+