diff --git a/common/Jackdmp.cpp b/common/Jackdmp.cpp
index b3110b9d..8662a278 100644
--- a/common/Jackdmp.cpp
+++ b/common/Jackdmp.cpp
@@ -33,7 +33,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include "JackDriverLoader.h"
/*
-This is a simple port of the old jackdmp.cpp file to use the new Jack 2.0 control API. Available options for the server
+This is a simple port of the old jackdmp.cpp file to use the new Jack 2.0 control API. Available options for the server
are "hard-coded" in the source. A much better approach would be to use the control API to:
- dynamically retrieve available server parameters and then prepare to parse them
- get available drivers and their possible parameters, then prepare to parse them.
@@ -58,7 +58,7 @@ static void notify_server_start(const char* server_name)
static void notify_server_stop(const char* server_name)
{
// Send notification to be used in the JackRouter plugin
- CFStringRef ref1 = CFStringCreateWithCString(NULL, server_name, kCFStringEncodingMacRoman);
+ CFStringRef ref1 = CFStringCreateWithCString(NULL, server_name, kCFStringEncodingMacRoman);
CFNotificationCenterPostNotificationWithOptions(CFNotificationCenterGetDistributedCenter(),
CFSTR("com.grame.jackserver.stop"),
ref1,
@@ -95,7 +95,7 @@ static void usage(FILE* file)
"usage: jackdmp [ --realtime OR -R [ --realtime-priority OR -P priority ] ]\n"
" [ --name OR -n server-name ]\n"
" [ --timeout OR -t client-timeout-in-msecs ]\n"
- " [ --loopback OR -X midi-driver ]\n"
+ " [ --midi OR -X midi-driver ]\n"
" [ --verbose OR -v ]\n"
" [ --replace-registry OR -r ]\n"
" [ --silent OR -s ]\n"
@@ -196,13 +196,13 @@ int main(int argc, char* argv[])
union jackctl_parameter_value value;
copyright(stdout);
-
+
server_ctl = jackctl_server_create();
if (server_ctl == NULL) {
fprintf(stderr, "Failed to create server object\n");
return -1;
}
-
+
server_parameters = jackctl_server_get_parameters(server_ctl);
opterr = 0;
@@ -215,20 +215,20 @@ int main(int argc, char* argv[])
seen_audio_driver = true;
audio_driver_name = optarg;
break;
-
+
case 'X':
seen_midi_driver = true;
midi_driver_name = optarg;
break;
-
+
case 'p':
port_max = (unsigned int)atol(optarg);
break;
-
+
case 'm':
do_mlock = 0;
break;
-
+
case 'u':
do_unlock = 1;
break;
@@ -317,7 +317,7 @@ int main(int argc, char* argv[])
default:
fprintf(stderr, "unknown option character %c\n", optopt);
/*fallthru*/
-
+
case 'h':
usage(stdout);
goto fail_free;
@@ -325,18 +325,18 @@ int main(int argc, char* argv[])
}
if (show_version) {
- printf( "jackdmp version " VERSION
- " tmpdir " jack_server_dir
+ printf( "jackdmp version " VERSION
+ " tmpdir " jack_server_dir
" protocol %d"
"\n", JACK_PROTOCOL_VERSION);
return -1;
}
-
+
if (!seen_audio_driver) {
usage(stderr);
goto fail_free;
}
-
+
// Audio driver
audio_driver_ctl = jackctl_server_get_driver(server_ctl, audio_driver_name);
if (audio_driver_ctl == NULL) {
@@ -366,22 +366,22 @@ int main(int argc, char* argv[])
if (jackctl_parse_driver_params(audio_driver_ctl, audio_driver_nargs, audio_driver_args)) {
goto fail_free;
}
-
+
// Start server
if (!jackctl_server_start(server_ctl, audio_driver_ctl)) {
fprintf(stderr, "Failed to start server\n");
goto fail_free;
}
-
+
// MIDI driver
if (seen_midi_driver) {
-
+
midi_driver_ctl = jackctl_server_get_driver(server_ctl, midi_driver_name);
if (midi_driver_ctl == NULL) {
fprintf(stderr, "Unkown driver \"%s\"\n", midi_driver_name);
goto fail_free;
}
-
+
jackctl_server_load_slave(server_ctl, midi_driver_ctl);
}
@@ -390,12 +390,12 @@ int main(int argc, char* argv[])
// Waits for signal
signals = jackctl_setup_signals(0);
jackctl_wait_signals(signals);
-
+
if (!jackctl_server_stop(server_ctl))
fprintf(stderr, "Cannot stop server...\n");
-
+
fail_free:
-
+
jackctl_server_destroy(server_ctl);
notify_server_stop(server_name);
return 1;
diff --git a/windows/jack_winmme.cbp b/windows/jack_winmme.cbp
new file mode 100644
index 00000000..2c6d8bbe
--- /dev/null
+++ b/windows/jack_winmme.cbp
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows/jackd.workspace b/windows/jackd.workspace
index e92ff780..615bae3f 100644
--- a/windows/jackd.workspace
+++ b/windows/jackd.workspace
@@ -1,7 +1,7 @@
-
+
@@ -46,5 +46,6 @@
+
diff --git a/windows/jackwinmme.rc b/windows/jackwinmme.rc
new file mode 100644
index 00000000..57187d6c
--- /dev/null
+++ b/windows/jackwinmme.rc
@@ -0,0 +1,41 @@
+// Generated by ResEdit 1.4.3
+// Copyright (C) 2006-2008
+// http://www.resedit.net
+
+#include "resource.h"
+#include "afxres.h"
+
+
+//
+// Version Information resources
+//
+LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT
+1 VERSIONINFO
+ FILEVERSION 1,9,3,0
+ PRODUCTVERSION 1,9,3,0
+ FILEOS VOS_UNKNOWN
+ FILETYPE VFT_DLL
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040c04b0"
+ BEGIN
+ VALUE "Comments", "\0"
+ VALUE "CompanyName", "Grame\0"
+ VALUE "FileDescription", "Jackmp WinMMEo Driver for Windows\0"
+ VALUE "FileVersion", "1, 9, 3, 0\0"
+ VALUE "InternalName", "jack_portaudio\0"
+ VALUE "LegalCopyright", "Copyright Grame © 2006-2009\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "jack_winmme.dll\0"
+ VALUE "PrivateBuild", "\0"
+ VALUE "ProductName", "jack_winmme\0"
+ VALUE "ProductVersion", "1, 9, 3, 0\0"
+ VALUE "SpecialBuild", "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 1036, 1200
+ END
+END
diff --git a/windows/libjackserver.cbp b/windows/libjackserver.cbp
index ef0bc173..8a82c34b 100644
--- a/windows/libjackserver.cbp
+++ b/windows/libjackserver.cbp
@@ -1,199 +1,200 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows/winmme/JackWinMMEDriver.cpp b/windows/winmme/JackWinMMEDriver.cpp
index 42577633..d803f707 100644
--- a/windows/winmme/JackWinMMEDriver.cpp
+++ b/windows/winmme/JackWinMMEDriver.cpp
@@ -92,9 +92,7 @@ JackWinMMEDriver::JackWinMMEDriver(const char* name, const char* alias, JackLock
JackWinMMEDriver::~JackWinMMEDriver()
{}
-int JackWinMMEDriver::Open(jack_nframes_t buffer_size,
- jack_nframes_t samplerate,
- bool capturing,
+int JackWinMMEDriver::Open(bool capturing,
bool playing,
int inchannels,
int outchannels,
@@ -111,7 +109,7 @@ int JackWinMMEDriver::Open(jack_nframes_t buffer_size,
fRealPlaybackChannels = midiOutGetNumDevs ();
// Generic JackMidiDriver Open
- if (JackMidiDriver::Open(buffer_size, samplerate, capturing, playing, inchannels + fRealCaptureChannels, outchannels + fRealPlaybackChannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency) != 0)
+ if (JackMidiDriver::Open(capturing, playing, inchannels + fRealCaptureChannels, outchannels + fRealPlaybackChannels, monitor, capture_driver_name, playback_driver_name, capture_latency, playback_latency) != 0)
return -1;
fMidiDestination = new MidiSlot[fRealCaptureChannels];
@@ -414,22 +412,22 @@ extern "C"
{
#endif
- SERVER_EXPORT jack_driver_desc_t * driver_get_descriptor()
+ SERVER_EXPORT jack_driver_desc_t * driver_get_descriptor()
{
jack_driver_desc_t * desc;
unsigned int i;
desc = (jack_driver_desc_t*)calloc (1, sizeof (jack_driver_desc_t));
- strcpy(desc->name, "dummy"); // size MUST be less then JACK_DRIVER_NAME_MAX + 1
- strcpy(desc->desc, "Timer based backend"); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1
+ strcpy(desc->name, "winmme"); // size MUST be less then JACK_DRIVER_NAME_MAX + 1
+ strcpy(desc->desc, "WinMME API based MIDI backend"); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1
- desc->nparams = 6;
+ desc->nparams = 0;
desc->params = (jack_driver_param_desc_t*)calloc (desc->nparams, sizeof (jack_driver_param_desc_t));
return desc;
}
- SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params)
+ SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params)
{
/*
unsigned int capture_ports = 2;