Hi guys,

I've taken a look at our multimidi code, in particular this issue RJ
came across where changing the output device combobox would cause a
segfault due to infinite recursion. 

The short history of the problem is this:
Originally I tried to deal with input and output appearing as separate
devices by having two MidiDevices be created (one input-only, one
output-only), and then calling this
MidiDevice::setCorrespondingOutputDevice(...) function on the input one.
That turned out to be a crappy approach because juggling MidiMapping
turned out to be awkward.

The better way turned out to be passing the input and output device
indices to MidiDevice and aggregating two half-duplex device streams
into a single full-duplex MidiDevice.

Sean's auto-pairing code works by matching up those input and output
device indices before creating the MidiDevices. However, I still had
leftover code that called MidiDevice::setCorrespondingOutputDevice()
kicking around, and that's where the combobox crash came from. 

What I've done for now is removed this obsolete
"correspondingOutputDevice" stuff, since it probably caused Sean, Phil,
and RJ some pain (my bad). I've also greyed out the output device
combobox. The correct device name does get highlighted though at least
now. 

In the future, if we want to allow people to choose output devices other
than the one we auto-select, MidiDeviceManager::queryDevices() will have
to be modified to take that into account. I don't think we'll need that
for 1.8, however, I need someone to confirm that their MIDI devices
(with output) work on Windows in the features_portmidi branch [1].

Thanks!
Albert

[1] bzr co lp:~mixxxdevelopers/mixxx/features_portmidi


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to