 Hello everybody our next speaker is Martin Keplinger He changed the name of his talk. So it's there's lip the touch screen access library is back. Please give him a warm welcome Hello everybody so I will talk a little bit of about my recent input system development in The TS lip library. I will get to what TS lip actually is in a minute So I started working on this on this library Because my employer wanted me to he needs TS lip. It's important for us and Specifically I did multi-touch support and last year soon I became the maintainer of the project itself and and Really quick really fast. I did a release 1.2 is the first release I did and at my company Somebody came up to me and he was joking, you know, this is the second release of this thing in 10 years There should be a huge release party now and of course maybe That would be a little over the top For a tiny input library But initially I had to call my talk the release part So Quickly I want to add that my employer obviously that skin singer electronic systems Is a member of the old saddle organization? We support free software that way of but of course everything I do is on github and actually everything I think about this project is on github The releases are actually the outline of my talk now so I will tell you what TS lip is how and why it is used today and has been used and What I did what I added to the project and what new use cases there might be for you nowadays so TS lip is a sea library It simply Enables or fixes touch input and there are tools included to test to quickly test and configure the library What does it do very easy? it reads input samples from your input device driver it applies filters to it or Yeah, in any way you want and any number of filters and it offers the resulting filtered input Stream of samples to users easy right the core of the library is very very tiny and basically only manages Plugins everything every real work is done in a plug-in or module. There are two kinds of module There are Hardware modules or raw modules as we call them and filter plugins or modules Let's get to an example. Oh, okay What we have here is a complete TS dot com configuration file that's everything that's a complete example you would Use one the raw module to access your, you know input device driver and That's also the point here. This thing is really old it it was basically written because Device drivers didn't have a standard like they have nowadays with the normal Linux input event system So in this case an e-gallax something driver Is used and needs a module to access this specific driver samples And you would apply In this case three filters to it, you know what they actually do Variants tries to filter out Huge jumps in touch samples that shouldn't be there digital well digital So when you don't move your pen or finger Um Especially on resistive touch screens the hardware would have you know jitter and Linear does really linear transformation of your x and y Positions to quickly test the experience you created now. There is simply TS test you run it and you try it out So use this thing TS test for example implements TS libs API TS read so There are also plugins for cute or X or what have you that implement TS libs API and they are also in use today and The reason TS libs the reason this thing was in use and I Want to add that it's it's used in many commercial products, too. It was used in the Nokia Internet tablets back in I don't know 2004 or when was that? And and it was there to enable touch in the first place the hardware would really when you think about resistive touch screens They would drift and everything and you needed something to correct it All right, so what did I do? What did I do? Fortunately the world changed Drivers are you know standard linux input Drivers you just have the link the the input events keys and codes And I did multi-touch support The one hardware plug in you use in TS lip as soon as you have a normal input system Device driver is called input and you basically only need this one these days And I added multi-touch support for this module and for the filter modules in this case you add a million filter When you remember this from I don't know statistics on math class, it's the median filter digit again debounce is about pressure values and There's a whole new multi-touch API now and of course the test programs for multi-touch so Remember once again It's a portable C library. It's very configurable. You only have to compile what you need what modules you need You can do this statically and dynamically It should be stable. It's really old. It works really well But why would you use it today when you think about Capacitive touch screens who have fancy firmware in them that you can already configure Really really good Well, you can still use TS lip to really optimize your user experience and The point is you can do this at runtime. You can even think about Changing the pay the behavior of your touch input experience. I don't know think about depending on your physical environment or anything and in our case We manage different touch screens in our system and that's really easy by just managing one Small configuration file and what I really like is I wrote a little program. You can run as a demon that now is basically a user space input device driver and For TS lip so it offers you a new standard Linux input device you can use and you simply point your environment to it and you're done You don't need to implement TS lips API anymore You might gain some performance improvements if you still do but you don't really have to we actually don't So yesterday I ran Some statistics quickly So that you have a few names Russell King Actually wrote TS lip in and his first initial, you know in it get initial commit Was in December of 2001 You might you might remember Russell King for porting Linux to arm also around that time I think and Basically after his initial commit Douglas louder took over Chris Larson, I think now Does anybody know if Chris Larson is here at foster? I was wondering about I didn't see him. All right He was maintaining the project before me Before I took over He did a really good job. The project is in a really good state and That's basically the overview of TS lip In case you have questions you go ahead now I Can I could also tell you What is what things are open and still to do I could I don't know tell you about the available filter plugins you have but In case you have a question just shout I come along with the mic just Give me a hand if you have a question Don't be shy Well They're all on GitHub, but But well, yes, there is still a minor issue with multi-touch when you when you read the whole Multi-touch definitions there is a concept of not only your touch contact but also the tool the position of the tool you are using be it your finger or your pen and We don't yet apply all our filters to the position of your tool in case you have a Hardware that really supports this kind of thing. That's one development issue We need documentation. We need more documentation in the GitHub wiki. We didn't we don't have a wiki or yet You could imagine Doing more static analysis or even fuzzing or whatever But just have a look at the GitHub issues Anyone else no, then thanks a lot for your talk Martin