I have a study journal about the wayland itself in:
https://docs.google.com/document/d/1dzF7Qy3ys9r-eHZPEUF0EBLnoqfsOP22jbej8Q2_o6g/edit

I wrote an early mockup of an example:
https://github.com/cheery/node-wayland/blob/master/simple-shm.proto.coffee

Accelerated graphics require EGL bindings that are next in the line after
wayland bindings. >:-)

On Thu, Apr 11, 2013 at 3:14 PM, Fred Chien <[email protected]> wrote:

> I can try to write a prototype javascript class then we can have
> discussion based on it.
>
> If you can give me some example code to show how to write an small
> application with libwayland, it's helpful. :-)
>
>
> 2013/4/11 Henri Tuhola <[email protected]>
>
>> Thank you for reviewing it. It indeed looks like we need to write some
>> javascript to get it on its foot. Lets clear some things out of the way
>> though.
>>
>> The Display and Registry are both proxies. The get_registry() -method
>> looks like this:
>>
>>     WL_DISPLAY_GET_REGISTRY = 1
>>     registry = display.proxy.create(get_interface_by_name('wl_registry'))
>>     display.proxy.marshal(WL_DISPLAY_GET_REGISTRY, registry)
>>     return registry
>>
>> That code will be automatically generated for our bindings.
>>
>> wl_display_roundtrip in other hand is a thing we need to retrieve from C.
>> We are going to inject it into the display-class before we pass it around.
>> I neither know if it needs emitters. It looks like there's always one layer
>> between wayland and an user application.
>>
>> Also, the wayland-client and wayland-server interfaces differ a bit. And
>> usually the user uses the -client. It might be we want to give the
>> clientside shorter require path indeed.
>>
>> On Thu, Apr 11, 2013 at 8:04 AM, Fred Chien <[email protected]> wrote:
>>
>>> I just reviewed your code. My suggestion is to implement a class
>>> in JavaScript to wrap your C++ addon, then you can easily implement event
>>> dispatcher in JavaScript with callback mechanism.
>>>
>>> For low-level things that's like byte processing, it's better to do its
>>> all jobs in C++.
>>>
>>> How about this design:
>>>
>>> var Wayland = require('wayland');
>>> var wl = new Waylan();
>>>
>>> // wl.init will do connect(), get_registry(), and initialize event
>>> emitter
>>> wl.init(function() {
>>> });
>>>
>>> ---
>>>
>>> Wayland.Client Class:
>>> connect()
>>>
>>> Wayland.Display Class:
>>> get_registry()
>>> roundtrip()
>>>
>>> Wayland.Registry Class:
>>> on() // event listener
>>> emit() // emitter
>>>
>>> Cheers,
>>> Fred
>>>
>>>
>>>
>>>
>>> 2013/4/11 Henri Tuhola <[email protected]>
>>>
>>>> I were able to call wl_display_get_registry and get some stub listener
>>>> calls back: https://github.com/cheery/node-wayland
>>>>
>>>> It looks like I need to process byte arrays at requests and events. I
>>>> wonder how to do it properly.
>>>>
>>>> I also wonder what it should look like finally? Perhaps like this?
>>>>
>>>> wl = request "wayland/client"
>>>> display = wl.connect()
>>>> registry = display.get_registry()
>>>> registry.listen {
>>>>     global: (args...) ->
>>>>         console.log(args)
>>>> }
>>>> display.roundtrip()
>>>>
>>>>
>>>> keskiviikko, 10. huhtikuuta 2013 1.33.29 UTC+3 Henri Tuhola kirjoitti:
>>>>
>>>>> Since Wayland is becoming stable finally, it's the time to implement
>>>>> bindings for several dynamic languages. As it can fertilize Linux for
>>>>> large-scale GUI design&development efforts. I plan doing exactly this, but
>>>>> I have forgotten several things about node.js bindings.
>>>>>
>>>>> There's several simple things I need to solve:
>>>>>
>>>>> I need to get a pointer to my wrappings that let me route events
>>>>> through those proxies. I wonder how to get such pointer (that doesn't
>>>>> change at the next garbage collect cycle), and how to turn all those
>>>>> proxies into event dispatchers.. or is it okay that they call regular
>>>>> functions?
>>>>>
>>>>> As a second thing, I should pick up the known interface descriptors
>>>>> from the libwayland and provide them to the generated functions
>>>>> name-by-name.
>>>>>
>>>>> As a third thing, I should hook the node.js event listener to the
>>>>> display. I remember I'd have some reference code in node-udev, but this
>>>>> needs to be verified.
>>>>>
>>>>> Fourth thing, I wonder if the generated code from IDL should be .js or
>>>>> .cc.
>>>>>
>>>>> Fifth thing, once things are autogenerated, I should supply some
>>>>> functions into them. I wonder how to do this.
>>>>>
>>>>> If you need some extra references to answer, they can be found from:
>>>>> http://wayland.freedesktop.**org/docs/html/<http://wayland.freedesktop.org/docs/html/>
>>>>> http://www.jlekstrand.net/**jason/wayland-language-**bindings-guide/<http://www.jlekstrand.net/jason/wayland-language-bindings-guide/>
>>>>>
>>>>> I plan getting this done within this weekend. Everything seems simple
>>>>> enough so it won't probably need more time than that. If you have answers
>>>>> to some of my problems, I guess I might get through it even faster.
>>>>>
>>>>  --
>>>> --
>>>> Job Board: http://jobs.nodejs.org/
>>>> Posting guidelines:
>>>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nodejs" group.
>>>> To post to this group, send email to [email protected]
>>>> To unsubscribe from this group, send email to
>>>> [email protected]
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nodejs" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>>
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>>
>>>
>>>  --
>>> --
>>> Job Board: http://jobs.nodejs.org/
>>> Posting guidelines:
>>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>>> You received this message because you are subscribed to the Google
>>> Groups "nodejs" group.
>>> To post to this group, send email to [email protected]
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>>
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "nodejs" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/nodejs/zOQPHIVaNX8/unsubscribe?hl=en.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>> --
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines:
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "nodejs" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "nodejs" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/nodejs/zOQPHIVaNX8/unsubscribe?hl=en.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to