mame/3rdparty/portmidi/pm_csharp/pm_managed/pm_managed.h
2015-01-10 16:58:11 +01:00

54 lines
1.0 KiB
C++

// pm_managed.h
#pragma once
#include "portmidi.h"
using namespace System;
namespace pm_managed {
public ref class MpmDeviceInfo
{
public:
int structVersion;
System::String^ interf; /* underlying MIDI API, e.g. MMSystem or DirectX */
System::String^ name; /* device name, e.g. USB MidiSport 1x1 */
bool input; /* true iff input is available */
bool output; /* true iff output is available */
int opened; /* used by generic PortMidi code to do error checking on arguments */
MpmDeviceInfo(const PmDeviceInfo* info)
{
structVersion = info->structVersion;
input = (info->input != 0);
output = (info->output != 0);
opened = info->opened;
interf = gcnew System::String(info->interf);
name = gcnew System::String(info->name);
}
};
public ref class ManagedPortMIDI
{
public:
int Pm_Initialize()
{
::Pm_Initialize();
return 0;
}
int Pm_CountDevices()
{
return ::Pm_CountDevices();
}
MpmDeviceInfo^ Pm_GetDeviceInfo(int id)
{
return gcnew MpmDeviceInfo(::Pm_GetDeviceInfo(id));
}
};
}