MIDI port pretty names (#498)
[jack2.git] / macosx / coremidi / JackCoreMidiPort.h
blob36beb0de0bd872840f0faa107e5b7debc26511de
1 /*
2 Copyright (C) 2011 Devin Anderson
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 #ifndef __JackCoreMidiPort__
21 #define __JackCoreMidiPort__
23 #include <CoreMIDI/CoreMIDI.h>
24 #include <set>
26 #include "JackConstants.h"
28 namespace Jack {
30 class JackCoreMidiPort {
32 private:
34 char alias[REAL_JACK_PORT_NAME_SIZE+1];
35 char name[REAL_JACK_PORT_NAME_SIZE+1];
36 char device_name[REAL_JACK_PORT_NAME_SIZE+1];
37 bool initialized;
39 protected:
41 void
42 Initialize(const char *alias_name, const char *client_name,
43 const char *driver_name, int index,
44 MIDIEndpointRef endpoint, bool is_output);
46 double time_ratio;
47 MIDIEndpointRef endpoint;
49 MIDIEndpointRef
50 GetEndpoint();
52 static std::set<MIDIEndpointRef> endpoint_list;
54 public:
56 JackCoreMidiPort(double time_ratio);
58 virtual
59 ~JackCoreMidiPort();
61 const char *
62 GetAlias();
64 const char *
65 GetName();
67 const char *
68 GetDeviceName();
70 static bool IsInternalPort(MIDIObjectRef port_aux);
76 #endif