Ticket #6579: 0001-Implement-mixer-listmidi-for-coremidi.-Thanks-for-th.patch

File 0001-Implement-mixer-listmidi-for-coremidi.-Thanks-for-th.patch, 2.1 KB (added by digitall, 10 years ago)
  • dosbox/trunk/src/gui/midi_coremidi.h

    From 13b6228c8e1d03d15ae9d86303d16abc4798264f Mon Sep 17 00:00:00 2001
    From: qbix79 <qbix79@ed541006-0bf7-43e9-8c4d-6fc63c346d47>
    Date: Mon, 21 Oct 2013 20:54:22 +0000
    Subject: [PATCH] Implement mixer /listmidi for coremidi. Thanks for the
     assistance Dominus
    
    git-svn-id: http://svn.code.sf.net/p/dosbox/code-0@3838 ed541006-0bf7-43e9-8c4d-6fc63c346d47
    ---
     dosbox/trunk/src/gui/midi_coremidi.h | 26 +++++++++++++++++++++-----
     1 file changed, 21 insertions(+), 5 deletions(-)
    
    diff --git a/dosbox/trunk/src/gui/midi_coremidi.h b/dosbox/trunk/src/gui/midi_coremidi.h
    index 460b44f..01f8592 100644
    a b private:  
    2525public:
    2626        MidiHandler_coremidi()  {m_pCurPacket = 0;}
    2727        const char * GetName(void) { return "coremidi"; }
    28         bool Open(const char * conf) {
    29        
     28        bool Open(const char * conf) { 
    3029                // Get the MIDIEndPoint
    3130                m_endpoint = 0;
    3231                OSStatus result;
    3332                Bitu numDests = MIDIGetNumberOfDestinations();
    34                 Bitu destId = 0;
    35                 if(conf && conf[0]) destId = atoi(conf);
     33                Bitu destId = 0;
     34                if(conf && conf[0]) destId = atoi(conf);
     35               
    3636                if (destId < numDests)
    3737                {
    3838                        m_endpoint = MIDIGetDestination(destId);
    public:  
    6767                MIDIClientDispose(m_client);
    6868
    6969                // Dispose the endpoint
    70                 MIDIEndpointDispose(m_endpoint);
     70                // Not, as it is for Endpoints created by us
     71//              MIDIEndpointDispose(m_endpoint);
    7172        }
    7273       
    7374        void PlayMsg(Bit8u * msg) {
    public:  
    99100                // Send the MIDIPacketList
    100101                MIDISend(m_port,m_endpoint,packetList);
    101102        }
     103        void ListAll(Program* base) {
     104                Bitu numDests = MIDIGetNumberOfDestinations();
     105                for(Bitu i = 0; i < numDests; i++){
     106                        MIDIEndpointRef dest = MIDIGetDestination(i);
     107                        if(!dest) continue;
     108                        CFStringRef midiname = 0;
     109                        if(MIDIObjectGetStringProperty(dest, kMIDIPropertyDisplayName, &midiname) == noErr) {
     110                                const char * s = CFStringGetCStringPtr(midiname, kCFStringEncodingMacRoman);
     111                                if(s) base->WriteOut("%02d\t%s\n",i,s);
     112                        }
     113                        //This is for EndPoints created by us.
     114                        //MIDIEndpointDispose(dest);
     115                }
     116
     117        }
    102118};
    103119
    104120MidiHandler_coremidi Midi_coremidi;