Aside from the 2.0 beta tree, there is also some other work going on... admittedly, it's more fun to work on features than to work on bugs. But hey, the current beta code seems to be pretty good. We're just waiting for a next jack version to be released, such that our users don't have to recompile jack themselves. After that we can go for a large-audience beta. And the associated bug reports... Let's have some fun first!
This is a report on one of the experiments going on for post 2.0. First: the results...
What is this?
Since I got partial source code from ECHO, more specifically the hardware abstraction layer, I realized that I might be able to mimic the ECHO windows driver interface with a Wine "pseudo-driver". The idea would be that one could run the ECHO windows control panels in Wine, and that the pseudo-driver would relay the command & control to the FFADO driver. And so I was off for quite some days of Wine degustation. I can honestly say that using the Windows API is not a pleasant journey...
But as you can see, in the end it seems to be working fine. The setup shown on the screenshot is one with an AudioFire2 and an AudioFire8 connected to FFADO. Then the ECHO control panel was launched through my customized Wine. The panels are fully functional. Except for the metering, for one reason or the other that doesn't work. The data is passed on to the control panel as far as I can tell, but it doesn't update the meters.
Before you start asking... this stuff is not publicly available yet. There are several issues to be resolved first. Amongst these are:
- Getting my Wine core modifications into the Wine source tree
- Figure out how to compile the Wine pseudo-driver from outside the Wine tree (since it's not going to be accepted into their trunk anyway).
- Sort out the legal issues. To build this prototype I used some code and headers from ECHO (unlike in FFADO itself). This means that I either have to remove that code or get official permission from ECHO to open-source it.
- Merge the most recent FFADO with my local experimental branch, since they have diverged quite a lot over the last months.
- Figure out whether I want full open-source panels with associated maintenance, or this kind meet-in-the-middle where I don't have to care about the GUI's, but have to tolerate some closed source applications.
But nevertheless a preview of what lies after what still has to come. Comments welcome...