NULL,
NULL,
NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
&xdg_surface_interface,
NULL,
&wl_shell_surface_interface,
static const struct wl_message wl_eom_requests[] = {
{ "set_attribute", "uu", types + 0 },
- { "set_xdg_window", "uo", types + 8 },
- { "set_shell_window", "uo", types + 10 },
+ { "set_xdg_window", "uo", types + 12 },
+ { "set_shell_window", "uo", types + 14 },
{ "get_output_info", "u", types + 0 },
};
static const struct wl_message wl_eom_events[] = {
{ "output_count", "u", types + 0 },
- { "output_info", "uuuuuuuu", types + 0 },
+ { "output_info", "uuuuuuuuuuuu", types + 0 },
{ "output_type", "uuu", types + 0 },
{ "output_mode", "uu", types + 0 },
{ "output_attribute", "uuuu", types + 0 },
}
static inline void
-wl_eom_send_output_info(struct wl_resource *resource_, uint32_t output_id, uint32_t type, uint32_t mode, uint32_t w, uint32_t h, uint32_t w_mm, uint32_t h_mm, uint32_t connection)
+wl_eom_send_output_info(struct wl_resource *resource_, uint32_t output_id, uint32_t type, uint32_t mode, uint32_t w, uint32_t h, uint32_t w_mm, uint32_t h_mm, uint32_t connection, uint32_t skip, uint32_t attribute, uint32_t attribute_state, uint32_t error)
{
- wl_resource_post_event(resource_, WL_EOM_OUTPUT_INFO, output_id, type, mode, w, h, w_mm, h_mm, connection);
+ wl_resource_post_event(resource_, WL_EOM_OUTPUT_INFO, output_id, type, mode, w, h, w_mm, h_mm, connection, skip, attribute, attribute_state, error);
}
static inline void
<entry name="dsi" value="16" summary="VGA output connector type"/>
</enum>
- <enum name="status">
+ <enum name="status">
<description summary="connection status of the external output">
***** TODO ******
</description>
<entry name="disconnection" value="2" summary="output disconnected"/>
</enum>
- <enum name="mode">
+ <enum name="mode">
<description summary="mode of the external output">
***** TODO ******
</description>
<entry name="presentation" value="2" summary="presentation mode"/>
</enum>
- <enum name="attribute">
+ <enum name="attribute">
<description summary="attribute of the external output">
***** TODO ******
</description>
<entry name="exclusive" value="3" summary="exclusive attribute"/>
</enum>
- <enum name="attribute_state">
+ <enum name="attribute_state">
<description summary="state of the external output attribute">
***** TODO ******
</description>
<arg name="w_mm" type="uint"/>
<arg name="h_mm" type="uint"/>
<arg name="connection" type="uint"/>
+ <arg name="skip" type="uint"/>
+ <arg name="attribute" type="uint"/>
+ <arg name="attribute_state" type="uint"/>
+ <arg name="error" type="uint"/>
</event>
<event name="output_type">
output->id, output->type, output->mode, output->width, output->height,
output->phys_width, output->phys_height, output->status);
wl_eom_send_output_info(resource, output->id, output->type, output->mode, output->width, output->height,
- output->phys_width, output->phys_height, output->status);
-
- wl_eom_send_output_attribute(resource,
- output->id,
- _e_eom_output_state_get_attribute(output),
- _e_eom_output_state_get_attribute_state(output),
- EOM_ERROR_NONE);
+ output->phys_width, output->phys_height, output->status,
+ 1, 0, 0, 0);
}
}
{
EOM_DBG("Send MIRROR ON notification to clients");
- wl_eom_send_output_info(iterator->resource, eom_output->id,
- eom_output->type, eom_output->mode,
- eom_output->width, eom_output->height,
- eom_output->phys_width, eom_output->phys_height,
- eom_output->status);
-
- wl_eom_send_output_attribute(iterator->resource,
- eom_output->id,
- _e_eom_output_state_get_attribute(eom_output),
- _e_eom_output_state_get_attribute_state(eom_output),
- EOM_ERROR_NONE);
+ if (iterator->current)
+ wl_eom_send_output_info(iterator->resource, eom_output->id,
+ eom_output->type, eom_output->mode,
+ eom_output->width, eom_output->height,
+ eom_output->phys_width, eom_output->phys_height,
+ eom_output->status,
+ 0,
+ _e_eom_output_state_get_attribute(eom_output),
+ EOM_OUTPUT_ATTRIBUTE_STATE_ACTIVE,
+ EOM_ERROR_NONE);
+ else
+ wl_eom_send_output_info(iterator->resource, eom_output->id,
+ eom_output->type, eom_output->mode,
+ eom_output->width, eom_output->height,
+ eom_output->phys_width, eom_output->phys_height,
+ eom_output->status,
+ 1, 0, 0, 0);
}
}
if (iterator)
{
EOM_DBG("Send MIRROR OFF notification to clients");
-
- wl_eom_send_output_info(iterator->resource, eom_output->id,
- eom_output->type, eom_output->mode,
- eom_output->width, eom_output->height,
- eom_output->phys_width, eom_output->phys_height,
- eom_output->status);
-
- wl_eom_send_output_attribute(iterator->resource,
- eom_output->id,
- _e_eom_output_state_get_attribute(eom_output),
- EOM_OUTPUT_ATTRIBUTE_STATE_LOST,
- EOM_ERROR_NONE);
+ if (iterator->current)
+ wl_eom_send_output_info(iterator->resource, eom_output->id,
+ eom_output->type, eom_output->mode,
+ eom_output->width, eom_output->height,
+ eom_output->phys_width, eom_output->phys_height,
+ eom_output->status,
+ 0,
+ _e_eom_output_state_get_attribute(eom_output),
+ EOM_OUTPUT_ATTRIBUTE_STATE_INACTIVE,
+ EOM_ERROR_NONE);
+ else
+ wl_eom_send_output_info(iterator->resource, eom_output->id,
+ eom_output->type, eom_output->mode,
+ eom_output->width, eom_output->height,
+ eom_output->phys_width, eom_output->phys_height,
+ eom_output->status,
+ 1, 0, 0, 0);
}
}
output->phys_width, output->phys_height, output->status);
wl_eom_send_output_info(resource, output->id, output->type, output->mode, output->width, output->height,
- output->phys_width, output->phys_height, output->status);
+ output->phys_width, output->phys_height, output->status, 1, 0, 0, 0);
}
}
}
GOTOIFTRUE(tdm_err != TDM_ERROR_NONE, err, "Commit crtc:%d", tdm_err);
_e_eom_output_state_set_mode(eom_output, EOM_OUTPUT_MODE_MIRROR);
- _e_eom_output_state_set_attribute(eom_output, EOM_OUTPUT_ATTRIBUTE_NONE);
+ /* _e_eom_output_state_set_attribute(eom_output, EOM_OUTPUT_ATTRIBUTE_NONE); */
eom_output->state = MIRROR;
return;