Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework keys module and add a common device implementation #1

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

morphis
Copy link

@morphis morphis commented Oct 16, 2012

The included commits separating common functionality of the keys module from target specific. Furthermore it's implementing a device variant of the module for WEBOS_TARGET_MACHINE_IMPL = "device" configuration setting.

Please tell me if you have any questions about the implementation.

regards,
Simon

It makes no sense to have the same code in more than one module so we're splitting out the
common input device handling code and just put the specific key handling into module
specific code section.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <[email protected]>
For real target devices there is only a small subset of keys we're able to use. This is
known handled and mapped within a device specific implementation which is separated from
the emulator one.

Open-webOS-DCO-1.0-Signed-off-by: Simon Busch <[email protected]>
@kdopen
Copy link
Contributor

kdopen commented Oct 16, 2012

@morphis ,

These pull requests are fairly sweeping and will need to be considered in detail. We are just looking at ways to restructure nyx-modules. The current approach was designed around supporting a relatively small number of target platforms, and will be unworkable if the community wants to add support for hundreds of different phones, tablets, or what have you.

We're currently leaning towards some form of platform configuration file which specifies, for example, the type of touchscreen, LEDs, etc that need to be supoprted. That way the commonality will be more obvious, and easier to leverage.

So, give us a little while on this set please.

@morphis
Copy link
Author

morphis commented Oct 16, 2012

These pull requests are fairly sweeping and will need to be considered
in detail. We are just looking at ways to restructure nyx-modules.
The current approach was designed around supporting a relatively small
number of target platforms, and will be unworkable if the community
wants to add support for hundreds of different phones, tablets, or
what have you.

Yeah thats a problem. Within the code I submitted here is no machine
specific code. I tried to work as close as possible to the interface
standard linux kernel offers. This should be in my opinion the way to
implement modules for nyx as part of openwebos. Where ever specific
chaanges for some machines are needed this should not be part of the
openwebos project but maintained on top of this.

We're currently leaning towards some form of platform configuration
file which specifies, for example, the type of touchscreen, LEDs,
etc that need to be supoprted. That way the commonality will be more
obvious, and easier to leverage.

If you take a look at my other pull-requests for nyx-modules I changed
the touchpanel component for example to be a std. evdev driver so we can
implement a module for the MT protocol beside this. The device can then
select what it wants to use.

So, give us a little while on this set please.

For sure. Do you already have a concrete timeline for hits?

@kdopen
Copy link
Contributor

kdopen commented Oct 16, 2012

One other point that I think is often missed, simply because "we've always done it that way".

There is no requirement that there be "one true nyx-modules component". Each "module" is simply a .so with a specific file name format, installed into a specified directory (which you can now get from the nyx.pc file). So, there can, at the extreme, be a one-repo-per-module approach, or for example, a nyx-modules-samsung or nyx-modules-sensation component. Thus a particular "bsp" could almost specify which modules to build by just including certain repos.

Unlike the rest of the OS, Nyx, or more precisely the modules, are meant to be aware of the platform/device/machine that is being targeted. They are, after all, the platform abstraction mechanism for Open webOS. But that's a goal, rather than a complete reality right now. As we plow through the mass of code which was webOS 3.0.5, there are many cases where individual components were machine-aware in different ways, and we need to enhance nyx (and the modules) over time to remove those dependencies. Just look at the number of recipes which inherit from webos_machine_dep, webos_impl_dep, or webos_coreos_dep to see what I mean.

Just as an example, we've now realized we need to add a nyx API for rebooting the device (specifically so we can deal with booting into DFU or DUT modes etc on "real" hardware)

@kdopen
Copy link
Contributor

kdopen commented Oct 16, 2012

As for timeline, just starting on analyzing it. If I can define the way we really want to restructure nyx-modules with enough clarity for someone outside the offices to take it on .... you interested? (I said we'd take whatever help we can get 8)

Your changes are already heading in the right direction, but of course we need to be thinking beyond the "quick fix". And right now, we're understaffed. I can generate more projects, faster, than I have the resources to execute. (Did I mention we're hiring?)

Unfortunately, I'm going to need at least a week to clarify our thoughts on this and write it up.

@morphis
Copy link
Author

morphis commented Oct 17, 2012

As for timeline, just starting on it. If I can define the way we
really want to restructure nyx-modules with enough clarity for
someone outside the offices to take it on .... you interested? (I
said we'd take whatever help we can get 8)

Interested yes, but I am running a little bit out of time already with
the things I am doing right now :) But a real good step would be if you
can outline your plan for the restructuring on the openwebos-general
mailinglist so more people can respond for discussion. There are a lot
of people already asking for my changes and how to use them :)

Your changes are already heading in the right direction, but of course
we need to be thinking beyond the "quick fix". And right now, we're
understaffed. I can generate more projects, faster, than I have the
resources to execute.

I am totally ok with this. Preferring real and right solutions over
quick fixes for myself as well. So lets try to get this right as it's
one of the important components inside openwebos. I don't want to put
you under pressure with the things and pull-requests I am doing I just
don't want to sit on this changes for too long in our repository without
sending them upstream. Sending them upstream is another way of getting
them visible for more people who may be interested in this.

Unfortunately, I'm going to need at least a week to clarify our
thoughts on this and write it up.

Ok, please do this and take the time it needs to get it right :)

@Herrie82 Herrie82 deleted the for-upstream/keys branch July 12, 2019 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants