On Fri, 2007-12-07 at 03:33 +1300, Robin Sheat wrote:
> On Friday 07 December 2007 02:32:28 Garth Dahlstrom wrote:
> > control mapping changes back in the day).   The MP3 Control is a different
> > animal, and AFAIK Melanie hasn't been able to figure out how to get the
> > device to
> > initialization properly (Albert lent him his MP3 Control ~ 4 months a go to
> > play with).
> Hmm OK. At least to get a bit more functionality into the existing code, I 
> don't have to worry about that. Maybe later, I can try some USB snooping with 
> the windows software or something like that, presuming I can convince WINE to 
> run it.
> 
> > The Mk2 built in sound card only really makes a difference in that it is
> > easier to do headphone monitoring because it handles Mix and Headphone
> Yeah, I have a USB sound card that does that quite well.
> 
> Oh, and from your other email:
> > Lights for the legacy code broken going from linux kernel 2.4 -> 2.6...
> > They do work with libDJconsole which is going via USB rather then /dev
> > files.
> So, there is a kernel driver that translates the hercules to be a /dev/input 
> device? And libdjconsole does the equivalent, presumably using libusb or 
> similar? If the (2.4) kernel driver can control lights, why isn't that stuff 
> in libdjconsole, or is it more complex than that? Are there any specs 
> (official or otherwise) for controlling it using USB?

Yes, the Hercules makes itself look like a series of USB HID devices,
which are picked up by Linux's generic event device driver (evdev).
(IIRC)

Because it's handled by a generic driver inside the kernel, we have to
do all the stuff a normal driver would do inside Mixxx. That's what the
legacy Herc code does. The alternative is to use libusb to claim the
device (instead of evdev), and then do the driver stuff in libdjconsole.
(The other alternative we're slowly working towards is getting a real
ALSA MIDI driver written for it.)

I don't know why the lights stuff isn't in libdjconsole, sorry, and we
don't have any specs for controlling the MP3 Control via USB.
However, because the same set of legacy evdev-based code works for the
MK2 and the MP3 Control, I think we can assume the basic communication
is the same. The only thing that seems broken in libdjconsole is the
initialization of the MP3 Control. If we can get it to initialize
properly, then we should be able to get it to speak.

I debugged libdjconsole before I sent off the device (but also before I
knew anything about USB drivers and Linux), and what would happen is it
would try to initialize the device, and then we'd just never get ANY
data back from the device. In hindsight, it sounds like there's some
state machine inside the device that's not being initialized properly,
and that's where you'd might have to do some USB snooping. (I think we
need the initialization string.)

Fixing the legacy Herc code to work for the MP3 Control is a good enough
short term solution though...

Thanks,
Albert



-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to