ZaneA / WacomWebPlugin

An implementation of the Wacom Tablet Plugin API for NPAPI capable browsers on Linux.
GNU General Public License v3.0
52 stars 4 forks source link

current status of web plugin? #1

Closed wavewave closed 11 years ago

wavewave commented 11 years ago

Hi,

This project is so cool, and I was badly looking for this solution. I just drop this message to you for giving a thank. How is this project going on now?

I am the author of 'hoodle' : a pen notetaking program written in haskell. It is very similar to xournal (you probably know it, i bet.) but it has more functionality now. In the long run, I would like to port some simple version of my program to web program using ghcjs (haskell compiler to javascript using ghc) See my project web page : http://ianwookim.org/hoodle

I would like to have some discussion with you if possible. Please send a message to me if you are interested.

Thanks, Ian-Woo

ZaneA commented 11 years ago

Hi there!

Thanks for the kind message. As the README mentions, this project was a bit of a hack just to prove whether or not it could be done, and I haven't really touched the code since committing it initially. I am very keen to pick it up again though, and turn it into something that isn't such a "hack" :)

Just yesterday I tried to build it again and it seems to get stuck compiling with the most recent build of FireBreath, so first of all I'm going to investigate that and get it compiling again, and then I will work on refactoring the code. The biggest hurdle to other people trying out the plugin right now is that the device info is hardcoded, so that is the first thing I will aim to fix.

Hoodle looks really great, and I'm always looking for a Xournal alternative; I'm going to install it now and play around. The idea of cross compiling it to JS is awesome!

I am certainly interested in supporting your project where I can, at least in the form of having a working web plugin for you!

Regards, Zane

wavewave commented 11 years ago

Thanks for the reply ;-) I also had a compilation problem (I think the same issue as yours) and make a workaround. This is caused because a variable name Success is defined as some number somewhere in the header file. I just changed StreamEvents.h in the source tree of FireBreath (not WacomWebPlugin! so this is not a solution, but a workaround)

Diff log is the following.

diff --git a/src/PluginCore/PluginEvents/StreamEvents.h b/src/PluginCore/PluginEvents/StreamEvents.h
index 7b42849..cfce9dc 100644
--- a/src/PluginCore/PluginEvents/StreamEvents.h
+++ b/src/PluginCore/PluginEvents/StreamEvents.h
@@ -148,7 +148,7 @@ namespace FB {
     class StreamCompletedEvent : public StreamEvent
     {
     public:
-        StreamCompletedEvent(BrowserStream* stream, bool Success) : StreamEvent(stream), success(Success)
+        StreamCompletedEvent(BrowserStream* stream, bool oSuccess) : StreamEvent(stream), success(oSuccess)
         {}

     public:
wavewave commented 11 years ago

One question about current status. From the screenshot, this plugin seems to recognize the pressure sensitivity. Is it right? In my case, wacom tablet is recognized but no pressure sensitivity. I checked this with Table Value demo in wacomeng.com

Mine is tablet pc (Samsung Series 7 slate) and in ubuntu 12.04.

wavewave commented 11 years ago

Ah.. I see that your code is supporting pressure sensitivity but only for intuOS tablet. :-) Hopefully, it is not very difficult for my tablet (and of course others) to work properly.

wavewave commented 11 years ago

I got my tablet working properly !!(full pressure sensitivity support and full wacom resolution support) The fix for my tablet was very easy. I changed DEVICE_NUM value from your value 10 to my value 9. I think this library will be close to complete if it automatically figures out DEVICE_NUM from the list of xinput devices. This is so exciting! Thanks again!!

ZaneA commented 11 years ago

Hey that's awesome news! :)

As the plugin only needs to support Linux, I've been looking into using Nixysa (a NPAPI code generator) or even going straight to the NPAPI level in order to drop the FireBreath dependency (which isn't really necessary). I've managed to get a stub API working using Nixysa, enough to get the demo page to accept that there is a working Wacom plugin, but have yet to fully port the XInput stuff and make everything move again. Tomorrow I will commit that up in a new branch to be tested, but for now my timezone suggests that I should be heading to bed.

Good to see that despite this being a proof of concept, it is working for at least one other person, now to make it stable!

Cheers, Zane

ZaneA commented 11 years ago

Hey just an update, I've pushed the "NPAPI" branch which ditches Nixysa and FireBreath and implements an NPAPI plugin from scratch. Everything is working in my limited tests on Chrome and Firefox (as much as it was before with FireBreath anyway ;)).

The only requirement to compile this is the npapi-sdk headers, which at least on ArchLinux can be installed using just pacman -S npapi-sdk.

If you get a chance to try it out I'd be curious to hear if it works for you (after changing the device ID again), although I suspect that there is more room for bugs without the help of FireBreath. It was a great exercise for me though and is something that I am more comfortable maintaining now :)

Cheers!

wavewave commented 11 years ago

I tried NPAPI branch. works great with very fast compilation time! (I needed to change your device id 8 to my device id 9) I have used in my ubuntu machine. On the system, NPAPI include files are located in /usr/include/firefox when installing firefox-dev package in ubuntu (that's the official supported version of npapi in ubuntu) Informing this would be nice to ubuntu users.

By the way, it seems that when I left a web page using wacom plugin and entered another web page using wacom plugin, the browser hangs. my browser is google-chrome. I think appropriate finalization is not executed when a user leave a page using wacom plugin.

ZaneA commented 11 years ago

Very glad to hear that it is working! You are correct about the finalization, and that is a bug that I will work to fix ASAP (and then I suppose I will merge this into master too). I will also add the NPAPI info for Ubuntu into the README, thanks for that!