1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-19 00:51:12 +02:00

Update portmidi to SVN r227.

This commit is contained in:
lllucius
2013-10-31 07:33:41 +00:00
parent a30f9e913b
commit bb63fa0d07
118 changed files with 15017 additions and 12291 deletions

View File

@@ -0,0 +1,293 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class jportmidi_JPortMidiApi */
#ifndef _Included_jportmidi_JPortMidiApi
#define _Included_jportmidi_JPortMidiApi
#ifdef __cplusplus
extern "C" {
#endif
#undef jportmidi_JPortMidiApi_PM_FILT_ACTIVE
#define jportmidi_JPortMidiApi_PM_FILT_ACTIVE 16384L
#undef jportmidi_JPortMidiApi_PM_FILT_SYSEX
#define jportmidi_JPortMidiApi_PM_FILT_SYSEX 1L
#undef jportmidi_JPortMidiApi_PM_FILT_CLOCK
#define jportmidi_JPortMidiApi_PM_FILT_CLOCK 256L
#undef jportmidi_JPortMidiApi_PM_FILT_PLAY
#define jportmidi_JPortMidiApi_PM_FILT_PLAY 7168L
#undef jportmidi_JPortMidiApi_PM_FILT_TICK
#define jportmidi_JPortMidiApi_PM_FILT_TICK 512L
#undef jportmidi_JPortMidiApi_PM_FILT_FD
#define jportmidi_JPortMidiApi_PM_FILT_FD 8192L
#undef jportmidi_JPortMidiApi_PM_FILT_UNDEFINED
#define jportmidi_JPortMidiApi_PM_FILT_UNDEFINED 8192L
#undef jportmidi_JPortMidiApi_PM_FILT_RESET
#define jportmidi_JPortMidiApi_PM_FILT_RESET 32768L
#undef jportmidi_JPortMidiApi_PM_FILT_REALTIME
#define jportmidi_JPortMidiApi_PM_FILT_REALTIME 16641L
#undef jportmidi_JPortMidiApi_PM_FILT_NOTE
#define jportmidi_JPortMidiApi_PM_FILT_NOTE 50331648L
#undef jportmidi_JPortMidiApi_PM_FILT_CHANNEL_AFTERTOUCH
#define jportmidi_JPortMidiApi_PM_FILT_CHANNEL_AFTERTOUCH 536870912L
#undef jportmidi_JPortMidiApi_PM_FILT_POLY_AFTERTOUCH
#define jportmidi_JPortMidiApi_PM_FILT_POLY_AFTERTOUCH 67108864L
#undef jportmidi_JPortMidiApi_PM_FILT_AFTERTOUCH
#define jportmidi_JPortMidiApi_PM_FILT_AFTERTOUCH 603979776L
#undef jportmidi_JPortMidiApi_PM_FILT_PROGRAM
#define jportmidi_JPortMidiApi_PM_FILT_PROGRAM 268435456L
#undef jportmidi_JPortMidiApi_PM_FILT_CONTROL
#define jportmidi_JPortMidiApi_PM_FILT_CONTROL 134217728L
#undef jportmidi_JPortMidiApi_PM_FILT_PITCHBEND
#define jportmidi_JPortMidiApi_PM_FILT_PITCHBEND 1073741824L
#undef jportmidi_JPortMidiApi_PM_FILT_MTC
#define jportmidi_JPortMidiApi_PM_FILT_MTC 2L
#undef jportmidi_JPortMidiApi_PM_FILT_SONG_POSITION
#define jportmidi_JPortMidiApi_PM_FILT_SONG_POSITION 4L
#undef jportmidi_JPortMidiApi_PM_FILT_SONG_SELECT
#define jportmidi_JPortMidiApi_PM_FILT_SONG_SELECT 8L
#undef jportmidi_JPortMidiApi_PM_FILT_TUNE
#define jportmidi_JPortMidiApi_PM_FILT_TUNE 64L
#undef jportmidi_JPortMidiApi_PM_FILT_SYSTEMCOMMON
#define jportmidi_JPortMidiApi_PM_FILT_SYSTEMCOMMON 78L
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_Initialize
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Initialize
(JNIEnv *, jclass);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_Terminate
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Terminate
(JNIEnv *, jclass);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_HasHostError
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1HasHostError
(JNIEnv *, jclass, jobject);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_GetErrorText
* Signature: (I)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetErrorText
(JNIEnv *, jclass, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_GetHostErrorText
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetHostErrorText
(JNIEnv *, jclass);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_CountDevices
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1CountDevices
(JNIEnv *, jclass);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_GetDefaultInputDeviceID
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDefaultInputDeviceID
(JNIEnv *, jclass);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_GetDefaultOutputDeviceID
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDefaultOutputDeviceID
(JNIEnv *, jclass);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_GetDeviceInterf
* Signature: (I)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDeviceInterf
(JNIEnv *, jclass, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_GetDeviceName
* Signature: (I)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDeviceName
(JNIEnv *, jclass, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_GetDeviceInput
* Signature: (I)Z
*/
JNIEXPORT jboolean JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDeviceInput
(JNIEnv *, jclass, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_GetDeviceOutput
* Signature: (I)Z
*/
JNIEXPORT jboolean JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDeviceOutput
(JNIEnv *, jclass, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_OpenInput
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;ILjava/lang/String;I)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1OpenInput
(JNIEnv *, jclass, jobject, jint, jstring, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_OpenOutput
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;ILjava/lang/String;II)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1OpenOutput
(JNIEnv *, jclass, jobject, jint, jstring, jint, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_SetFilter
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;I)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1SetFilter
(JNIEnv *, jclass, jobject, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_SetChannelMask
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;I)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1SetChannelMask
(JNIEnv *, jclass, jobject, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_Abort
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Abort
(JNIEnv *, jclass, jobject);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_Close
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Close
(JNIEnv *, jclass, jobject);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_Read
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;Ljportmidi/JPortMidiApi/PmEvent;)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Read
(JNIEnv *, jclass, jobject, jobject);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_Poll
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Poll
(JNIEnv *, jclass, jobject);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_Write
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;Ljportmidi/JPortMidiApi/PmEvent;)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Write
(JNIEnv *, jclass, jobject, jobject);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_WriteShort
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;II)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1WriteShort
(JNIEnv *, jclass, jobject, jint, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pm_WriteSysEx
* Signature: (Ljportmidi/JPortMidiApi/PortMidiStream;I[B)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1WriteSysEx
(JNIEnv *, jclass, jobject, jint, jbyteArray);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pt_TimeStart
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pt_1TimeStart
(JNIEnv *, jclass, jint);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pt_TimeStop
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pt_1TimeStop
(JNIEnv *, jclass);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pt_Time
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pt_1Time
(JNIEnv *, jclass);
/*
* Class: jportmidi_JPortMidiApi
* Method: Pt_TimeStarted
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_jportmidi_JPortMidiApi_Pt_1TimeStarted
(JNIEnv *, jclass);
#ifdef __cplusplus
}
#endif
#endif
/* Header for class jportmidi_JPortMidiApi_PmEvent */
#ifndef _Included_jportmidi_JPortMidiApi_PmEvent
#define _Included_jportmidi_JPortMidiApi_PmEvent
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif
/* Header for class jportmidi_JPortMidiApi_PortMidiStream */
#ifndef _Included_jportmidi_JPortMidiApi_PortMidiStream
#define _Included_jportmidi_JPortMidiApi_PortMidiStream
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,225 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="pmjni"
ProjectGUID="{7AA255C8-48BF-40AC-97BA-F7E7BA4DDAA8}"
RootNamespace="pmjni"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\pm_common&quot;;&quot;$(SolutionDir)\porttime&quot;;&quot;$(ProjectDir)&quot;;&quot;E:\Program Files\Java\jdk1.5.0_14\include&quot;;&quot;E:\Program Files\Java\jdk1.5.0_14\include\win32&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PMJNI_EXPORTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="&quot;$(SolutionDir)\pm_common&quot;;&quot;$(SolutionDir)\porttime&quot;;&quot;$(ProjectDir)&quot;;&quot;E:\Program Files\Java\jdk1.5.0_14\include&quot;;&quot;E:\Program Files\Java\jdk1.5.0_14\include\win32&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PMJNI_EXPORTS"
RuntimeLibrary="2"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\pmjni.c"
>
</File>
<File
RelativePath="..\..\pm_common\pmutil.c"
>
</File>
<File
RelativePath="..\..\pm_win\pmwin.c"
>
</File>
<File
RelativePath="..\..\pm_win\pmwinmm.c"
>
</File>
<File
RelativePath="..\..\pm_common\portmidi.c"
>
</File>
<File
RelativePath="..\..\porttime\porttime.c"
>
</File>
<File
RelativePath="..\..\porttime\ptwinmm.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,354 @@
#include "portmidi.h"
#include "porttime.h"
#include "jportmidi_JportMidiApi.h"
#include <stdio.h>
// these macros assume JNIEnv *env is declared and valid:
//
#define CLASS(c, obj) jclass c = (*env)->GetObjectClass(env, obj)
#define ADDRESS_FID(fid, c) \
jfieldID fid = (*env)->GetFieldID(env, c, "address", "J")
// Uses Java Long (64-bit) to make sure there is room to store a
// pointer. Cast this to a C long (either 32 or 64 bit) to match
// the size of a pointer. Finally cast int to pointer. All this
// is supposed to avoid C compiler warnings and (worse) losing
// address bits.
#define PMSTREAM(obj, fid) ((PmStream *) (long) (*env)->GetLongField(env, obj, fid))
// Cast stream to long to convert integer to pointer, then expand
// integer to 64-bit jlong. This avoids compiler warnings.
#define SET_PMSTREAM(obj, fid, stream) \
(*env)->SetLongField(env, obj, fid, (jlong) (long) stream)
/*
* Method: Pm_Initialize
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Initialize
(JNIEnv *env, jclass cl)
{
return Pm_Initialize();
}
/*
* Method: Pm_Terminate
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Terminate
(JNIEnv *env, jclass cl)
{
return Pm_Terminate();
}
/*
* Method: Pm_HasHostError
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1HasHostError
(JNIEnv *env, jclass cl, jobject jstream)
{
CLASS(c, jstream);
ADDRESS_FID(fid, c);
return Pm_HasHostError(PMSTREAM(jstream, fid));
}
/*
* Method: Pm_GetErrorText
*/
JNIEXPORT jstring JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetErrorText
(JNIEnv *env, jclass cl, jint i)
{
return (*env)->NewStringUTF(env, Pm_GetErrorText(i));
}
/*
* Method: Pm_GetHostErrorText
*/
JNIEXPORT jstring JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetHostErrorText
(JNIEnv *env, jclass cl)
{
char msg[PM_HOST_ERROR_MSG_LEN];
Pm_GetHostErrorText(msg, PM_HOST_ERROR_MSG_LEN);
return (*env)->NewStringUTF(env, msg);
}
/*
* Method: Pm_CountDevices
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1CountDevices
(JNIEnv *env, jclass cl)
{
return Pm_CountDevices();
}
/*
* Method: Pm_GetDefaultInputDeviceID
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDefaultInputDeviceID
(JNIEnv *env, jclass cl)
{
return Pm_GetDefaultInputDeviceID();
}
/*
* Method: Pm_GetDefaultOutputDeviceID
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDefaultOutputDeviceID
(JNIEnv *env, jclass cl)
{
return Pm_GetDefaultOutputDeviceID();
}
/*
* Method: Pm_GetDeviceInterf
*/
JNIEXPORT jstring JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDeviceInterf
(JNIEnv *env, jclass cl, jint i)
{
const PmDeviceInfo *info = Pm_GetDeviceInfo(i);
if (!info) return NULL;
return (*env)->NewStringUTF(env, info->interf);
}
/*
* Method: Pm_GetDeviceName
*/
JNIEXPORT jstring JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDeviceName
(JNIEnv *env, jclass cl, jint i)
{
const PmDeviceInfo *info = Pm_GetDeviceInfo(i);
if (!info) return NULL;
return (*env)->NewStringUTF(env, info->name);
}
/*
* Method: Pm_GetDeviceInput
*/
JNIEXPORT jboolean JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDeviceInput
(JNIEnv *env, jclass cl, jint i)
{
const PmDeviceInfo *info = Pm_GetDeviceInfo(i);
if (!info) return (jboolean) 0;
return (jboolean) info->input;
}
/*
* Method: Pm_GetDeviceOutput
*/
JNIEXPORT jboolean JNICALL Java_jportmidi_JPortMidiApi_Pm_1GetDeviceOutput
(JNIEnv *env, jclass cl, jint i)
{
const PmDeviceInfo *info = Pm_GetDeviceInfo(i);
if (!info) return (jboolean) 0;
return (jboolean) info->output;
}
/*
* Method: Pm_OpenInput
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1OpenInput
(JNIEnv *env, jclass cl,
jobject jstream, jint index, jstring extras, jint bufsiz)
{
PmError rslt;
PortMidiStream *stream;
CLASS(c, jstream);
ADDRESS_FID(fid, c);
rslt = Pm_OpenInput(&stream, index, NULL, bufsiz, NULL, NULL);
SET_PMSTREAM(jstream, fid, stream);
return rslt;
}
/*
* Method: Pm_OpenOutput
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1OpenOutput
(JNIEnv *env, jclass cl, jobject jstream, jint index, jstring extras,
jint bufsiz, jint latency)
{
PmError rslt;
PortMidiStream *stream;
CLASS(c, jstream);
ADDRESS_FID(fid, c);
rslt = Pm_OpenOutput(&stream, index, NULL, bufsiz, NULL, NULL, latency);
SET_PMSTREAM(jstream, fid, stream);
return rslt;
}
/*
* Method: Pm_SetFilter
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1SetFilter
(JNIEnv *env, jclass cl, jobject jstream, jint filters)
{
CLASS(c, jstream);
ADDRESS_FID(fid, c);
return Pm_SetFilter(PMSTREAM(jstream, fid), filters);
}
/*
* Method: Pm_SetChannelMask
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1SetChannelMask
(JNIEnv *env, jclass cl, jobject jstream, jint mask)
{
CLASS(c, jstream);
ADDRESS_FID(fid, c);
return Pm_SetChannelMask(PMSTREAM(jstream, fid), mask);
}
/*
* Method: Pm_Abort
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Abort
(JNIEnv *env, jclass cl, jobject jstream)
{
CLASS(c, jstream);
ADDRESS_FID(fid, c);
return Pm_Abort(PMSTREAM(jstream, fid));
}
/*
* Method: Pm_Close
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Close
(JNIEnv *env, jclass cl, jobject jstream)
{
CLASS(c, jstream);
ADDRESS_FID(fid, c);
return Pm_Close(PMSTREAM(jstream, fid));
}
/*
* Method: Pm_Read
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Read
(JNIEnv *env, jclass cl, jobject jstream, jobject jpmevent)
{
CLASS(jstream_class, jstream);
ADDRESS_FID(address_fid, jstream_class);
jclass jpmevent_class = (*env)->GetObjectClass(env, jpmevent);
jfieldID message_fid =
(*env)->GetFieldID(env, jpmevent_class, "message", "I");
jfieldID timestamp_fid =
(*env)->GetFieldID(env, jpmevent_class, "timestamp", "I");
PmEvent buffer;
PmError rslt = Pm_Read(PMSTREAM(jstream, address_fid), &buffer, 1);
(*env)->SetIntField(env, jpmevent, message_fid, buffer.message);
(*env)->SetIntField(env, jpmevent, timestamp_fid, buffer.timestamp);
return rslt;
}
/*
* Method: Pm_Poll
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Poll
(JNIEnv *env, jclass cl, jobject jstream)
{
CLASS(c, jstream);
ADDRESS_FID(fid, c);
return Pm_Poll(PMSTREAM(jstream, fid));
}
/*
* Method: Pm_Write
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1Write
(JNIEnv *env, jclass cl, jobject jstream, jobject jpmevent)
{
CLASS(jstream_class, jstream);
ADDRESS_FID(address_fid, jstream_class);
jclass jpmevent_class = (*env)->GetObjectClass(env, jpmevent);
jfieldID message_fid =
(*env)->GetFieldID(env, jpmevent_class, "message", "I");
jfieldID timestamp_fid =
(*env)->GetFieldID(env, jpmevent_class, "timestamp", "I");
// note that we call WriteShort because it's simpler than constructing
// a buffer and passing it to Pm_Write
return Pm_WriteShort(PMSTREAM(jstream, address_fid),
(*env)->GetIntField(env, jpmevent, timestamp_fid),
(*env)->GetIntField(env, jpmevent, message_fid));
}
/*
* Method: Pm_WriteShort
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1WriteShort
(JNIEnv *env, jclass cl, jobject jstream, jint when, jint msg)
{
CLASS(c, jstream);
ADDRESS_FID(fid, c);
return Pm_WriteShort(PMSTREAM(jstream, fid), when, msg);
}
/*
* Method: Pm_WriteSysEx
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pm_1WriteSysEx
(JNIEnv *env, jclass cl, jobject jstream, jint when, jbyteArray jmsg)
{
CLASS(c, jstream);
ADDRESS_FID(fid, c);
jbyte *bytes = (*env)->GetByteArrayElements(env, jmsg, 0);
PmError rslt = Pm_WriteSysEx(PMSTREAM(jstream, fid), when,
(unsigned char *) bytes);
(*env)->ReleaseByteArrayElements(env, jmsg, bytes, 0);
return rslt;
}
/*
* Method: Pt_TimeStart
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pt_1TimeStart
(JNIEnv *env, jclass c, jint resolution)
{
return Pt_Start(resolution, NULL, NULL);
}
/*
* Method: Pt_TimeStop
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pt_1TimeStop
(JNIEnv *env, jclass c)
{
return Pt_Stop();
}
/*
* Method: Pt_Time
*/
JNIEXPORT jint JNICALL Java_jportmidi_JPortMidiApi_Pt_1Time
(JNIEnv *env, jclass c)
{
return Pt_Time();
}
/*
* Method: Pt_TimeStarted
*/
JNIEXPORT jboolean JNICALL Java_jportmidi_JPortMidiApi_Pt_1TimeStarted
(JNIEnv *env, jclass c)
{
return Pt_Started();
}

View File

@@ -0,0 +1,63 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED