mirror of
https://github.com/holub/mame
synced 2025-05-01 20:27:02 +03:00
54 lines
1.0 KiB
C++
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));
|
|
}
|
|
};
|
|
}
|