Summary: This adds a new API function to call so we can check if a
given Ecore_Drm_Output has a backlight
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a new API function to return the connector type of
an Ecore_Drm_Output
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a connector type field to the Output structure.
This will be used in the Enlightenment Drm rendering code for RandR
config
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds new API function to return the min & max width &
height of valid screen range for an Ecore_Drm_Device
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: No real function changes, just commented out some debug lines
so we have less noise for release
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
the logind device close function just lets logind revoke fd permissions
but doesn't actually close the (now useless) fd.
@fix
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2457
Summary:
0 is a valid fd. EINA_FALSE is 0. EINA_FALSE is a valid fd.
@fix
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2456
Summary:
Seems libinput wasn't bothering to set this so all child processes get
their hands on input devices
@fix
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2455
Summary:
ecore-drm touch down handler does not produce ECORE_EVENT_MOUSE_MOVE event.
so, when user touches screen, application can't handle mouse down event correctly.
this fix adds touch_motion event on touch_down event handler.
Reviewers: zmike, cedric, raster, gwanglim, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2427
Summary:
At the first time after finishing booting, the position of mouse cursor is in the
center of screen. But e doesn't know it. ecore_drm should let e know the initial
position of cursor by sending a fake motino event.
Reviewers: devilhorns, ManMower, zmike, raster, gwanglim
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2410
Summary:
This revision fixed using of uninitialized value 'output'.
The usage can cause segmentation fault when it try to refer current_mode
@fix
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2448
Summary:
If an input device is assigned via udev to an output that we can't find
we just assign it to the first output instead.
Reviewers: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2408
Summary: This is not actually "critical", it just means that we tried
to set a dumb buffer of the wrong size. Ecore_Evas will call this
function again after the canvas has been resized to the proper size,
so just issue a WRN here.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: It was mentioned on the mailing list to use #if 0 instead of
commenting the block. This does not change any functionality
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: As we no longer require the idler to repaint outputs, comment
out the function that was defined for the idler.
NB: I left it commented (and not totally removed) just in case it is
needed for a later (undiscovered) issue
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This is a better way to allow mouse movement across multiple
outputs as this does not require us to fetch output geometry on Every
mouse movement (as before).
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: When running E-Wl with multiple outputs, we could not
previously move the mouse pointer across to the second output. This
commit fixes that issue.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: In order to process hotplugging of outputs, we need to send
the 'dev' structure as data to the callback so that we can update
outputs. This fixes hotplugging of outputs when running E
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a pending_flip field to Ecore_Drm_Fb structure so
that when we schedule a pageflip event we can wait until the flip is
complete before trying to reuse the buffer again.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This modifies the ecore_drm_device pageflip function to make
use of the ecore_drm_fb callbacks passed into the ecore_drm_fb_send
function
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds 2 new API functions we can use from within the evas
drm engine to set framebuffers as current, and to call a pageflip on
given buffers.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This commit adds an API function that can be used to find an
output given an x/y coordinate pair.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This API was added in the header while testing a theory, and
should not have been committed.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Since we only create one drm context in the drm_device
structure now, we need the drm headers to be included in Ecore_Drm.h
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This changes allows us to reuse the same drmEventContext once
so that when we get drm events, we are not constantly recreating the
drmEventContext.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This marks an Ecore_Drm_Device as active or not when we VT
switch. We do this so we can skip rendering if we are not active.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Since we now create the dumb buffers in the ecore_drm_device
structure, we don't need them on a per-output basis. This commit fixes
the output & device code to adjust to this.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds an API we can call from ecore_evas to setup the
device for software rendering which will cause dumb buffers to be
created in the Ecore_Drm_Device structure.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: No real need for each output to have its own framebuffers as
we can just create dumb buffers in the drm device structure
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: When we make the call to outputs_geometry_get, we should NOT
include cloned outputs in the final size.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If an output has a pending page flip, we cannot destroy it
until the page flip has completed. This commit adds support to delay
destroying an output until the page flip is completed.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This refactors the output creation code to support better
mode detection, cloning of hotplugged outputs, and initial support for
setting of output gamma (API to follow)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This commit adds support for setting DPMS level of an output.
This adds a new API function 'ecore_drm_output_dpms_set' to set the
level.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This fixes an issue where heights of all outputs would get
added, thus causing the ecore_evas to be created at the wrong size.
Now, the height will be whichever output is larger.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This fixes a minor oversight in ecore_drm_output_mode_add
which was not setting the mode->flag to preferred if this is a
preferred mode.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If we unplug an output, we should still be sending this event
so that the compositor can remove any unplugged outputs
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: libdrm has support for Virtual and DSI connector types, so
add those to the connector types
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Move the Eeze udev watch to inside the ecore_drm_device. This
allows us to only create One watch to catch all output changes. No
need for more than one watch (one per output) as was done previously
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a w & h field to the Ecore_Drm_Fb structure so it
can be used from within the Evas engine
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: By default, we should be creating dumb buffers using XRGB8888
that way it does not matter if we have an alpha channel or not in the
buffer.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: logind has a seperate function to get the vt number.
@fix
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2252
Some fields (eg. data) may not be properly initialized.
Use calloc() instead of malloc() will ensure proper initialization
even if we add more fields.
These fields (data) would even be passed down to Evas as
Evas_Event_Key_Down for instance.
Summary: As there are various DVI and HDMI output names, update the
output connector types area to be more accurate so we get better
output names
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: To support multi-seat, ecore_drm need to issue the event to notify compositor of seat is added.
Test Plan: N/A
Reviewers: zmike, raster, gwanglim, devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2212
Summary: When setting up the Eeze_Udev_Watch for output hotplug
events, we should also be listening for the "change" event. As eeze
will now check the HOTPLUG property for drm events, we don't need to
check that here.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This is mainly just a build fix. This issue occurred due to
the function declaration being After a call to use it while not having
a function prototype. This just adds the function prototype
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This patch adds more information so we can debug output
hotplug events better. It fixes an issue where any new outputs
from _ecore_drm_update_outputs where not getting the eeze udev watch
event created, and also addresses the issue of disconnected outputs
not sending the ecore_drm_event (both minor fixes)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
when enlightenment is working as wayland display server, enlightenment
changes KDSETMODE to KD_GRAPHICS in _ecore_drm_tty_setup(). However,
when enlightenment is killed by SIGSEGV, it doesn't changes KDSETMODE
to KD_TEXT because englightenment process doesn't call ecore_drm_tty_close().
To make possible enlightenment call ecore_drm_tty_close(), drm devices
should be exposed.
When enlightenment is killed by SIGSEGV, it will get drm devices with
ecore_drm_device_get_list(), and will call ecore_drm_launcher_disconnect(),
and ecore_drm_launcher_disconnect will call ecore_drm_tty_close() internally.
@feature
Change-Id: I1c594739ec96660a09cee77b823ace6548ee5282
Reviewers: zmike, cedric, raster, gwanglim, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2159
Summary:
Fix issue of invalid memory read from
ecore_drm_output_create. We call ecore_drm_output_crtc_find to get the
Index of the crtc to use, however prior to this commit the index was
not being returned (the actual crtc was)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2140
Summary: This implements edid parsing to obtain output make and model
so we can get better output names. This also fixes a false FIXME
statement in ecore_drm_output_physical_size_get function. As it turns
out, we don't need to get these values from edid parsing as they are
already available in the drm connector.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds an edid substructure to Ecore_Drm_Output so that
when we parse out EDID information, we have a place to store it
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a function (ecore_drm_device_pointer_xy_get) to we
can return the mouse position inside ecore_evas_pointer_xy_get calls.
This is going to be used for centering the mouse when E-Wl starts up.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Using can result in motion being completely discarded. Since we
only need integer data, we also only actually forward on an event
when the mouse moves more than a full unit.
Reviewers: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2062
when dealing with non-kbd devices, the seat can be iterated to locate a keyboard
this may or may not accurately set depressed, latched, locked, group values
Summary: When we raise an event for an output, also include the output
id in the event structure. This will allow us to better identify which
output the event occured on.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
This provides callbacks to any bound wl_output listeners when a
display is hotplugged.
NOTE: Currently we don't receive hotplug events
ANOTHER NOTE: We don't yet handle display removal
Reviewers: devilhorns, zmike
Reviewed By: devilhorns, zmike
Subscribers: cedric
Maniphest Tasks: T2131
Differential Revision: https://phab.enlightenment.org/D2006
Summary: When we try to ReleaseDevice of our evdev structure, the
'path' which was getting passed to our logind code was incorrect. This
was due to libinput not providing a function to get the full device
path. We fix this by making some eeze udev calls to find this device
and get the full device path.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
input is destroyed
Summary: This fixes an issue where if you VT switch away from a
running Enlightenment and VT switch back, then input would no longer
be working. This was because we never called ReleaseDevice (dbus call)
when we destroyed a device, so any calls to recreate the device would
fail in libinput due to control already being taken.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If we already have the ecore_event_handlers for logind, then
do not recreate them on logind_connect.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: When we send_and_block, we should be checking the 'reply' for
errors, not the original message which was sent.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
We check for libinput 06 or higher. In version 0.8 they got an API break
(hopefully the last one before 1.0) which we did not support so far. I have
seen libinput 0.9 used on gentoo and newer ubuntu systems so we should
definitely support them.
Adding a LIBINPUT_HIGHER_08 define to check for this. So far we have only one
location where we need it. Once there is a libinput 1.0 we should remove the
support for older versions.
http://lists.freedesktop.org/archives/wayland-devel/2015-January/019383.html