You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
(58) |
Apr
(100) |
May
(92) |
Jun
(12) |
Jul
|
Aug
|
Sep
(5) |
Oct
(1) |
Nov
(26) |
Dec
(29) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(31) |
Feb
(20) |
Mar
(1) |
Apr
|
May
(5) |
Jun
(10) |
Jul
|
Aug
(2) |
Sep
|
Oct
(2) |
Nov
|
Dec
(1) |
2010 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(36) |
May
(10) |
Jun
|
Jul
(38) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
(6) |
Mar
(8) |
Apr
|
May
|
Jun
|
Jul
(14) |
Aug
(56) |
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(13) |
Dec
(2) |
2013 |
Jan
(30) |
Feb
|
Mar
(43) |
Apr
(28) |
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
(10) |
Nov
(2) |
Dec
|
2014 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <pst...@us...> - 2008-05-27 14:01:34
|
Revision: 579 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=579&view=rev Author: pstieber Date: 2008-05-27 07:01:15 -0700 (Tue, 27 May 2008) Log Message: ----------- 1. Changed the input and output device indexes from long to int for the Windows settings dialog. 2. Changed Installed member function to IsInstalled for all of the players and changed then corresponding data member from installed to mInstalled. 3. Added code for to use the portmidi device selection dialog in the project. 4. Made cosmetic changes in the portmidi player class. 5. Changed the configuration code to use strings instead of char* in several places. 6. Removed the configuration code that read and wrote long values. 7. Changed JZConfiguration::Check to tokenize the passed line using a new function in Globals.cpp. 8. Changed some I/O in the configuration class from C-style to C++ stream. More to come in this area. Modified Paths: -------------- trunk/jazz/src/AlsaDriver.cpp trunk/jazz/src/AlsaDriver.h trunk/jazz/src/AlsaPlayer.cpp trunk/jazz/src/AlsaPlayer.h trunk/jazz/src/AudioDriver.cpp trunk/jazz/src/AudioDriver.h trunk/jazz/src/Configuration.cpp trunk/jazz/src/Configuration.h trunk/jazz/src/Dialogs/midiTiming.cpp trunk/jazz/src/Globals.cpp trunk/jazz/src/Globals.h trunk/jazz/src/MidiDeviceDialog.cpp trunk/jazz/src/MidiDeviceDialog.h trunk/jazz/src/Player.cpp trunk/jazz/src/Player.h trunk/jazz/src/PortMidiPlayer.cpp trunk/jazz/src/PortMidiPlayer.h trunk/jazz/src/Project.cpp trunk/jazz/src/TrackFrame.cpp trunk/jazz/src/mswin/WindowsAudioInterface.cpp trunk/jazz/src/mswin/WindowsAudioInterface.h trunk/jazz/src/mswin/WindowsPlayer.cpp trunk/jazz/src/mswin/WindowsPlayer.h Modified: trunk/jazz/src/AlsaDriver.cpp =================================================================== --- trunk/jazz/src/AlsaDriver.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/AlsaDriver.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -127,7 +127,7 @@ : tAlsaPlayer(pSong) { AudioBuffer = new tEventArray(); - installed = 0; + mInstalled = false; audio_enabled = 0; mpListener = 0; mCanDuplex = 0; // no duplex yet. @@ -139,7 +139,7 @@ // FIXME mCanDuplex = 1; - installed = 1; + mInstalled = true; audio_enabled = 1; } Modified: trunk/jazz/src/AlsaDriver.h =================================================================== --- trunk/jazz/src/AlsaDriver.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/AlsaDriver.h 2008-05-27 14:01:15 UTC (rev 579) @@ -43,7 +43,10 @@ virtual void Notify(); virtual void StartPlay(long Clock, long LoopClock = 0, int Continue = 0); virtual void StopPlay(); - virtual int Installed() { return installed && tAlsaPlayer::Installed(); } + virtual bool IsInstalled() + { + return mInstalled && tAlsaPlayer::IsInstalled(); + } virtual int GetAudioEnabled() const { return audio_enabled; } virtual void SetAudioEnabled(int x) { audio_enabled = x; } virtual void ListenAudio(int key, int start_stop_mode = 1); @@ -82,7 +85,7 @@ int mCanDuplex; snd_pcm_t *pcm[2]; - int installed; + bool mInstalled; long audio_clock_offset; long cur_pos; Modified: trunk/jazz/src/AlsaPlayer.cpp =================================================================== --- trunk/jazz/src/AlsaPlayer.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/AlsaPlayer.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -54,7 +54,7 @@ { ithru = othru = 0; - installed = 1; + mInstalled = true; poll_millisec = 25; recd_clock = 0; echo_clock = 0; @@ -62,14 +62,14 @@ if (snd_seq_open(&handle, "hw", SND_SEQ_OPEN_DUPLEX, 0) < 0) { perror("open sequencer"); - installed = 0; + mInstalled = false; return; } // set myself into non blocking mode if (set_blocking_mode(0) < 0) { - installed = 0; + mInstalled = false; return; } client = snd_seq_client_id(handle); @@ -190,7 +190,7 @@ snd_seq_set_output_buffer_size(handle, 65536); - if (installed) + if (mInstalled) { thru = new tAlsaThru(); SetSoftThru( @@ -381,9 +381,9 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -int tAlsaPlayer::Installed() +bool tAlsaPlayer::IsInstalled() { - return installed; + return mInstalled; } //----------------------------------------------------------------------------- Modified: trunk/jazz/src/AlsaPlayer.h =================================================================== --- trunk/jazz/src/AlsaPlayer.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/AlsaPlayer.h 2008-05-27 14:01:15 UTC (rev 579) @@ -50,7 +50,7 @@ virtual ~tAlsaPlayer(); void Notify(); - int Installed(); + bool IsInstalled(); int OutEvent(JZEvent *e, int now); int OutEvent(JZEvent *e) { return OutEvent(e, 0); } void OutNow(JZEvent *e) { OutEvent(e, 1); } @@ -79,7 +79,7 @@ int sync_in, sync_in_dev, sync_in_mtcType; int sync_out, sync_out_dev, sync_out_mtcType; - int installed; + bool mInstalled; static int create_port(snd_seq_t *handle, const char *name); static void set_client_info(snd_seq_t *handle, const char *name); Modified: trunk/jazz/src/AudioDriver.cpp =================================================================== --- trunk/jazz/src/AudioDriver.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/AudioDriver.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -39,6 +39,8 @@ #define AUDIO_DEVICE "/dev/dsp" +//***************************************************************************** +//***************************************************************************** class tAudioListener : public wxTimer { public: @@ -115,14 +117,14 @@ int mHardExit; }; - - -tAudioPlayer::tAudioPlayer(JZSong *song) - : tSeq2Player(song) +//***************************************************************************** +//***************************************************************************** +tAudioPlayer::tAudioPlayer(JZSong* pSong) + : tSeq2Player(pSong) { long dummy = 0; AudioBuffer = new tEventArray(); - installed = 0; + mInstalled = false; dummy = gpConfig->GetValue(C_EnableAudio); audio_enabled = dummy; mpListener = 0; @@ -152,7 +154,7 @@ } else { - installed = 1; + mInstalled = true; } close(dev); @@ -163,7 +165,7 @@ } dev = -1; // closed - audio_enabled = audio_enabled && installed; + audio_enabled = audio_enabled && mInstalled; } Modified: trunk/jazz/src/AudioDriver.h =================================================================== --- trunk/jazz/src/AudioDriver.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/AudioDriver.h 2008-05-27 14:01:15 UTC (rev 579) @@ -60,9 +60,9 @@ virtual void StartAudio(); - virtual int Installed() + virtual int IsIsInstalled() { - return installed && tSeq2Player::Installed(); + return mInstalled && tSeq2Player::IsInstalled(); } virtual int GetAudioEnabled() const @@ -107,7 +107,7 @@ void CloseDsp(bool Reset); int dev; - int installed; + bool mInstalled; long midi_clock; long audio_bytes; Modified: trunk/jazz/src/Configuration.cpp =================================================================== --- trunk/jazz/src/Configuration.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/Configuration.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -32,6 +32,7 @@ #include <stack> #include <iostream> #include <sstream> +#include <fstream> using namespace std; @@ -407,20 +408,28 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -int JZConfiguration::Check(const char* pName) const +int JZConfiguration::Check(const string& InputLine) const { - if (!pName || (pName[0] != '.')) + string::const_iterator iString = InputLine.begin(); + + if (iString == InputLine.end() || *iString != '.') { return -1; } + const string Delimiters(" \t"); + + vector<string> Tokens; + + Tokenize(InputLine, Delimiters, Tokens); + for (int i = 0; i < NumConfigNames; i++) { if (!mNames[i]) { continue; } - if (!strncmp(pName, mNames[i]->GetName(), strlen(mNames[i]->GetName()))) + if (Tokens[0] == mNames[i]->GetName()) { // Found return i; @@ -475,7 +484,7 @@ else if (mNames[entry]->GetType() == eConfigEntryTypeStr) { // Allow whitespace inside entries like "C:\Program Files\JazzWare". - int ofs = strlen(mNames[entry]->GetName()); + int ofs = mNames[entry]->GetName().length(); while (buf[ofs] == ' ' || buf[ofs] == '\t') // not \n { ++ofs; @@ -531,7 +540,7 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -bool JZConfiguration::Get(int entry, char *value) +bool JZConfiguration::Get(int entry, char* value) { assert((entry >= 0) && (entry < NumConfigNames)); @@ -542,14 +551,14 @@ } FILE *fd = fopen(FileName.c_str(), "r"); - const char* name = GetName(entry); + const string& name = GetName(entry); - int len = strlen(name); + int len = name.length(); char buf[1000]; bool found = false; while (!found && fgets(buf, sizeof(buf), fd) != NULL) { - if (strncmp(buf, name, len) == 0) + if (strncmp(buf, name.c_str(), len) == 0) { while (isspace(buf[len])) { @@ -570,12 +579,12 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -bool JZConfiguration::Get(int entry, long &value) +bool JZConfiguration::Get(int entry, int& value) { char buf[512]; if (Get(entry, buf)) { - sscanf(buf, " %ld ", &value); + sscanf(buf, " %d ", &value); return true; } return false; @@ -587,7 +596,7 @@ // entries to there. If the name/value pair is found, replace it, otherwise // write it. Finally copy the temp file over the old configuration file. //----------------------------------------------------------------------------- -bool JZConfiguration::Put(int Index, const char *value) +bool JZConfiguration::Put(int Index, const string& ValueString) { assert((Index >= 0) && (Index < NumConfigNames)); @@ -597,61 +606,53 @@ return false; } - char tempname[512]; - strcpy(tempname, FileName.c_str()); - strcat(tempname, ".tmp"); //make the temp file name - FILE *out = fopen(tempname, "w"); - if (!out) + // Create a temporary file name from the current file name. + string TempFileName(FileName); + TempFileName.append(".tmp"); + ofstream Os(TempFileName.c_str()); + if (!Os) { return false; } FILE* inp = fopen(FileName.c_str(), "r"); - const char* name = GetName(Index); + const string& name = GetName(Index); - int len = strlen(name); + int len = name.length(); char buf[1000]; bool found = false; while (fgets(buf, sizeof(buf), inp) != NULL) { - if (strncmp(buf, name, len) == 0) + if (strncmp(buf, name.c_str(), len) == 0) { - fprintf(out, "%s %s\n", name, value); + Os << name << ' ' << ValueString << endl; found = true; } else { - fputs(buf, out); + Os << buf; } } if (!found) { - fprintf(out, "%s %s\n", name, value); + Os << name << ' ' << ValueString << endl; } fclose(inp); - fclose(out); + Os.close(); + unlink(FileName.c_str()); - rename(tempname, FileName.c_str()); + rename(TempFileName.c_str(), FileName.c_str()); return true; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -bool JZConfiguration::Put(int Index, long Value) -{ - ostringstream Oss; - Oss << Value; - return Put(Index, Oss.str().c_str()); -} - -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- bool JZConfiguration::Put(int Index) { assert((Index >= 0) && (Index < NumConfigNames)); mNames[Index]->SetValue(Index); - long LongValue = mNames[Index]->GetValue(); - return Put(Index, LongValue); + int Value = mNames[Index]->GetValue(); + return Put(Index, Value); } //----------------------------------------------------------------------------- @@ -660,8 +661,9 @@ { assert((Index >= 0) && (Index < NumConfigNames)); mNames[Index]->SetValue(Value); - long LongValue = mNames[Index]->GetValue(); - return Put(Index, LongValue); + ostringstream Oss; + Oss << Value; + return Put(Index, Oss.str()); } //----------------------------------------------------------------------------- @@ -692,6 +694,7 @@ vector<pair<string, int> >* pVector = 0; +// stack<ifstream> InputFileStreams; stack<FILE*> FileDescriptors; cout @@ -699,7 +702,11 @@ << " \"" << mFileName << '"' << endl; +// ifstream Is(mFileName.c_str()); +// InputFileStreams.push(Is); FileDescriptors.push(fopen(mFileName.c_str(), "r")); + +// if (!InputFileStreams.top()) if (FileDescriptors.top() == NULL) { wxString String; @@ -719,10 +726,17 @@ while (1) { // Read a line from the current file. + +// if (getline(InputFileStreams.top(), InputLine)) if (fgets(buf, sizeof(buf), FileDescriptors.top()) == NULL) { +// InputFileStreams.top().close(); fclose(FileDescriptors.top()); + +// InputFileStreams.pop(); FileDescriptors.pop(); + +// if (InputFileStreams.empty()) if (FileDescriptors.empty()) { // The code has reached the last line of the Jazz++ configuration file @@ -800,13 +814,16 @@ if (IncludeFileName.empty()) { +// InputFileStreams FileDescriptors.push(NULL); } else { +// InputFileStreams FileDescriptors.push(fopen(IncludeFileName, "r")); } +// InputFileStreams if (FileDescriptors.top() == NULL) { wxString String; @@ -814,6 +831,8 @@ << "Could not open configuration include file:" << '\n' << '"' << buf << '"'; ::wxMessageBox(String, "Warning", wxOK); + +// InputFileStreams.pop(); FileDescriptors.pop(); } } Modified: trunk/jazz/src/Configuration.h =================================================================== --- trunk/jazz/src/Configuration.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/Configuration.h 2008-05-27 14:01:15 UTC (rev 579) @@ -144,7 +144,7 @@ TEConfigEntryType GetType() const; - const char* GetName() const; + const std::string& GetName() const; const int& GetValue() const; @@ -177,9 +177,9 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- inline -const char* JZConfigurationEntry::GetName() const +const std::string& JZConfigurationEntry::GetName() const { - return mName.c_str(); + return mName; } //----------------------------------------------------------------------------- @@ -218,31 +218,30 @@ void LoadConfig(const wxString& FileName); - int Check(const char* pName) const; + int Check(const std::string& Name) const; int Load(char* buf); - const std::pair<std::string, int>& GetDrumName(unsigned entry) const; - const std::pair<std::string, int>& GetDrumSet(unsigned entry) const; - const std::pair<std::string, int>& GetVoiceName(unsigned entry) const; - const std::pair<std::string, int>& GetCtrlName(unsigned entry) const; + const std::pair<std::string, int>& GetDrumName(unsigned Entry) const; + const std::pair<std::string, int>& GetDrumSet(unsigned Entry) const; + const std::pair<std::string, int>& GetVoiceName(unsigned Entry) const; + const std::pair<std::string, int>& GetCtrlName(unsigned Entry) const; - JZDoubleCommand& BankEntry(unsigned entry); + JZDoubleCommand& BankEntry(unsigned Entry); - const char* GetName(int entry) const; + const std::string& GetName(int Entry) const; - const std::string& GetStrValue(int entry) const; + const std::string& GetStrValue(int Entry) const; const int& GetValue(const char* pName) const; const int& GetValue(int Index) const; - bool Get(int entry, char* value); - bool Get(int entry, long& value); + bool Get(int Entry, char* pValue); + bool Get(int Entry, int& Value); - bool Put(int entry, const char *value); - bool Put(int entry, long value); - bool Put(int entry); - bool Put(int entry, int value); + bool Put(int Entry, const std::string& ValueString); + bool Put(int Entry); + bool Put(int Entry, int Value); const std::vector<std::pair<std::string, int> >& GetDrumSets() const; @@ -284,19 +283,19 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- inline -const char* JZConfiguration::GetName(int entry) const +const std::string& JZConfiguration::GetName(int Entry) const { - assert((entry >= 0) && (entry < NumConfigNames)); - return mNames[entry]->GetName(); + assert((Entry >= 0) && (Entry < NumConfigNames)); + return mNames[Entry]->GetName(); } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- inline -const std::string& JZConfiguration::GetStrValue(int entry) const +const std::string& JZConfiguration::GetStrValue(int Entry) const { - assert((entry >= 0) && (entry < NumConfigNames)); - return mNames[entry]->GetStrValue(); + assert((Entry >= 0) && (Entry < NumConfigNames)); + return mNames[Entry]->GetStrValue(); } //----------------------------------------------------------------------------- Modified: trunk/jazz/src/Dialogs/midiTiming.cpp =================================================================== --- trunk/jazz/src/Dialogs/midiTiming.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/Dialogs/midiTiming.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -62,9 +62,9 @@ Config(C_ClockSource) = CsMtc; ClkSrcListBox->SetStringSelection( ClkSrcArray[ Config(C_ClockSource) ] ); Midi = new JZWindowsMtcPlayer(EventWin->Song); - if (!Midi->Installed()) + if (!Midi->IsInstalled()) { - wxMessageBox("no midi driver installed", "Error", wxOK); + wxMessageBox("no MIDI driver installed", "Error", wxOK); Midi = new tNullPlayer(EventWin->Song); } } @@ -149,9 +149,9 @@ Midi = new tWinAudioPlayer(EventWin->Song); break; } - if (!Midi->Installed()) + if (!Midi->IsInstalled()) { - wxMessageBox("no midi driver installed", "Error", wxOK); + wxMessageBox("no MIDI driver installed", "Error", wxOK); Midi = new tNullPlayer(EventWin->Song); } #endif Modified: trunk/jazz/src/Globals.cpp =================================================================== --- trunk/jazz/src/Globals.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/Globals.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -67,3 +67,42 @@ const double gDegreesToRadians = 0.01745329251994330212; const double gRadiansToDegrees = 57.2957795130823; + +//***************************************************************************** +// Decsription: +// This function tokenizes the input string. +//***************************************************************************** +int Tokenize( + const string& String, + const string& Delimiters, + vector<string>& Tokens) +{ + string::size_type Begin, End; + + // Initialize the token index. + int TokenIndex = 0; + + // Search the beginning of the line for the first token. + Begin = String.find_first_not_of(Delimiters); + + // While at the beginning of a word found. + while (Begin != string::npos) + { + // Search for the end of the actual token. + End = String.find_first_of(Delimiters, Begin); + + if (End == string::npos) + { + End = String.length(); + } + + Tokens.push_back(String.substr(Begin, End - Begin)); + + ++TokenIndex; + + Begin = String.find_first_not_of(Delimiters, End); + } + + return TokenIndex; +} + Modified: trunk/jazz/src/Globals.h =================================================================== --- trunk/jazz/src/Globals.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/Globals.h 2008-05-27 14:01:15 UTC (rev 579) @@ -65,4 +65,11 @@ extern const double gDegreesToRadians; extern const double gRadiansToDegrees; +//***************************************************************************** +//***************************************************************************** +int Tokenize( + const std::string& String, + const std::string& Delimiters, + std::vector<std::string>& Tokens); + #endif // !defined(JZ_GLOBALS_H) Modified: trunk/jazz/src/MidiDeviceDialog.cpp =================================================================== --- trunk/jazz/src/MidiDeviceDialog.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/MidiDeviceDialog.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -40,7 +40,7 @@ //----------------------------------------------------------------------------- JZMidiDeviceDialog::JZMidiDeviceDialog( const vector<pair<string, int> >& MidiDevices, - long& DeviceIndex, + int& DeviceIndex, wxWindow* pParent, const wxString& Title) : wxDialog(pParent, wxID_ANY, Title), Modified: trunk/jazz/src/MidiDeviceDialog.h =================================================================== --- trunk/jazz/src/MidiDeviceDialog.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/MidiDeviceDialog.h 2008-05-27 14:01:15 UTC (rev 579) @@ -36,7 +36,7 @@ JZMidiDeviceDialog( const std::vector<std::pair<std::string, int> >& MidiDevices, - long& DeviceIndex, + int& DeviceIndex, wxWindow* pParent = 0, const wxString& Title = wxEmptyString); @@ -46,7 +46,7 @@ private: - long& mDeviceIndex; + int& mDeviceIndex; wxListBox* mpMidiDeviceListBox; Modified: trunk/jazz/src/Player.cpp =================================================================== --- trunk/jazz/src/Player.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/Player.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -686,7 +686,7 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -int tMpuPlayer::Installed() +bool tMpuPlayer::IsInstalled() { return dev >= 0; } @@ -1483,7 +1483,7 @@ if (mididev < 0) { - return; // Installed() == FALSE + return; // IsInstalled() == FALSE } } @@ -1509,7 +1509,7 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -int tSeq2Player::Installed() +bool tSeq2Player::IsInstalled() { return seqfd >= 0 && mididev >= 0; } Modified: trunk/jazz/src/Player.h =================================================================== --- trunk/jazz/src/Player.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/Player.h 2008-05-27 14:01:15 UTC (rev 579) @@ -38,7 +38,8 @@ class JZRecordingInfo; - +//***************************************************************************** +//***************************************************************************** class tPlayLoop { public: @@ -71,6 +72,8 @@ long mStopClock; }; +//***************************************************************************** +//***************************************************************************** enum tClockSource { CsInt = 0, @@ -79,6 +82,8 @@ CsMtc }; +//***************************************************************************** +//***************************************************************************** class tDeviceList { public: @@ -124,6 +129,8 @@ tDeviceList& operator = (const tDeviceList &); }; +//***************************************************************************** +//***************************************************************************** class JZPlayer : public wxTimer { protected: @@ -139,7 +146,9 @@ bool Playing; // successful StartPlay - virtual int Installed() = 0; // Hardware found + // Tests if hardware found and successfully setup. + virtual bool IsInstalled() = 0; + // if unable to install, pop up a messagebox explaining why. virtual void ShowError(); @@ -280,15 +289,17 @@ extern char *midinethost; -// -------------------------------------------------------- +//***************************************************************************** // Roland MPU 401 -// -------------------------------------------------------- +//***************************************************************************** #ifdef DEV_MPU401 #include <unistd.h> #include <fcntl.h> +//***************************************************************************** +//***************************************************************************** class tBuffer : public tWriteBase { @@ -440,6 +451,8 @@ #define ACTIVE_TRACKS 7 #define ACTIVE_TRACKS_MASK 0x7f +//***************************************************************************** +//***************************************************************************** class tMpuPlayer : public JZPlayer { int dev; @@ -465,7 +478,7 @@ void StartPlay(long Clock, long LoopClock = 0, int Continue = 0); void StopPlay(); long GetRealTimeClock(); - int Installed(); + virtual bool IsInstalled(); long GetRecordedData(); void SetHardThru(int on, int idev, int odev); @@ -482,8 +495,10 @@ #endif // DEV_MPU401 -// ------------------------------ null-driver ------------------------------- - +//***************************************************************************** +// Description: +// This is the null driver class declaration. +//***************************************************************************** class tNullPlayer : public JZPlayer { public: @@ -493,9 +508,9 @@ { } - int Installed() + virtual bool IsInstalled() { - return 1; + return true; } virtual ~tNullPlayer() @@ -544,6 +559,8 @@ void seqbuf_flush_last_event(); +//***************************************************************************** +//***************************************************************************** class tOSSThru : public wxTimer { public: @@ -552,14 +569,15 @@ ~tOSSThru(); }; - - +//***************************************************************************** +//***************************************************************************** class tSeq2Player : public JZPlayer { public: + friend class tOSSThru; tSeq2Player(JZSong *song); - int Installed(); + virtual bool IsInstalled(); virtual ~tSeq2Player(); int OutEvent(JZEvent *e, int now); int OutEvent(JZEvent *e) { OutEvent(e, 0); return 0; } Modified: trunk/jazz/src/PortMidiPlayer.cpp =================================================================== --- trunk/jazz/src/PortMidiPlayer.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/PortMidiPlayer.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -1,10 +1,19 @@ #include "WxWidgets.h" #include "PortMidiPlayer.h" +#include "JazzPlusPlusApplication.h" +#include "TrackFrame.h" #include "TrackWindow.h" #include "Song.h" #include "Globals.h" +#include "MidiDeviceDialog.h" +#include <iostream> + +using namespace std; + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- JZPortMidiPlayer::JZPortMidiPlayer(JZSong* pSong) : JZPlayer(pSong), mInputDevices(), @@ -29,96 +38,102 @@ // mOutputQueue = Pm_QueueCreate(1024, sizeof(PmEvent)); } +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- JZPortMidiPlayer::~JZPortMidiPlayer() { // Pm_QueueDestroy(mOutputQueue); TermPM(); } -int -JZPortMidiPlayer::Installed() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +bool JZPortMidiPlayer::IsInstalled() { return true; } -wxString -JZPortMidiPlayer::GetInputDeviceName() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +wxString JZPortMidiPlayer::GetInputDeviceName() { return mInputDevice; } -wxString -JZPortMidiPlayer::GetOutputDeviceName() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +wxString JZPortMidiPlayer::GetOutputDeviceName() { return mOutputDevice; } - -void -JZPortMidiPlayer::SetInputDevice(const wxString & name) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void JZPortMidiPlayer::SetInputDevice(const wxString& Name) { - bool term = InitPM(); - PmDeviceID id = FindDevice(name, true); + bool NeedToTerminate = InitPM(); + PmDeviceID id = FindDevice(Name, true); if (id != pmNoDevice) { - mInputDevice = name; + mInputDevice = Name; } - if (term) + if (NeedToTerminate) { TermPM(); } } -void -JZPortMidiPlayer::SetOutputDevice(const wxString& name) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void JZPortMidiPlayer::SetOutputDevice(const wxString& Name) { - bool term = InitPM(); - PmDeviceID id = FindDevice(name, false); + bool NeedToTerminate = InitPM(); + PmDeviceID id = FindDevice(Name, false); if (id != pmNoDevice) { - mOutputDevice = name; + mOutputDevice = Name; } - if (term) + if (NeedToTerminate) { TermPM(); } } -int -JZPortMidiPlayer::SupportsMultipleDevices() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +int JZPortMidiPlayer::SupportsMultipleDevices() { return true; } -tDeviceList& -JZPortMidiPlayer::GetOutputDevices() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +tDeviceList& JZPortMidiPlayer::GetOutputDevices() { - bool term = InitPM(); - int cnt; + bool NeedToTerminate = InitPM(); + int Count = Pm_CountDevices(); - cnt = Pm_CountDevices(); - mOutputDevices.Clear(); - for (int i = 0; i < cnt; i++) + for (int i = 0; i < Count; ++i) { - const PmDeviceInfo *di = Pm_GetDeviceInfo(i); + const PmDeviceInfo* pPmDeviceInfo = Pm_GetDeviceInfo(i); - if (di && di->output) + if (pPmDeviceInfo && pPmDeviceInfo->output) { - wxString name = - wxString(di->interf, wxConvISO8859_1) + + wxString Name = + wxString(pPmDeviceInfo->interf, wxConvISO8859_1) + wxT(", ") + - wxString(di->name, wxConvISO8859_1); - mOutputDevices.Add(name); + wxString(pPmDeviceInfo->name, wxConvISO8859_1); + mOutputDevices.Add(Name); } } - if (term) + if (NeedToTerminate) { TermPM(); } @@ -126,31 +141,30 @@ return mOutputDevices; } -tDeviceList& -JZPortMidiPlayer::GetInputDevices() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +tDeviceList& JZPortMidiPlayer::GetInputDevices() { - bool term = InitPM(); - int cnt; - - cnt = Pm_CountDevices(); + bool NeedToTerminate = InitPM(); + int Count = Pm_CountDevices(); mInputDevices.Clear(); - for (int i = 0; i < cnt; i++) + for (int i = 0; i < Count; ++i) { - const PmDeviceInfo *di = Pm_GetDeviceInfo(i); + const PmDeviceInfo* pPmDeviceInfo = Pm_GetDeviceInfo(i); - if (di && di->input) + if (pPmDeviceInfo && pPmDeviceInfo->input) { - wxString name = - wxString(di->interf, wxConvISO8859_1) + + wxString Name = + wxString(pPmDeviceInfo->interf, wxConvISO8859_1) + wxT(", ") + - wxString(di->name, wxConvISO8859_1); - mInputDevices.Add(name); + wxString(pPmDeviceInfo->name, wxConvISO8859_1); + mInputDevices.Add(Name); } } - if (term) + if (NeedToTerminate) { TermPM(); } @@ -158,23 +172,24 @@ return mInputDevices; } -PmDeviceID -JZPortMidiPlayer::FindDevice(const wxString & name, bool input) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +PmDeviceID JZPortMidiPlayer::FindDevice(const wxString& Name, bool input) { - int cnt = Pm_CountDevices(); + int Count = Pm_CountDevices(); - for (int i = 0; i < cnt; i++) + for (int i = 0; i < Count; i++) { - const PmDeviceInfo *di = Pm_GetDeviceInfo(i); + const PmDeviceInfo* pPmDeviceInfo = Pm_GetDeviceInfo(i); - if (di && (input ? di->input : di->output)) + if (pPmDeviceInfo && (input ? pPmDeviceInfo->input : pPmDeviceInfo->output)) { wxString n = - wxString(di->interf, wxConvISO8859_1) + + wxString(pPmDeviceInfo->interf, wxConvISO8859_1) + wxT(", ") + - wxString(di->name, wxConvISO8859_1); + wxString(pPmDeviceInfo->name, wxConvISO8859_1); - if (name == n) + if (Name == n) { return i; } @@ -184,8 +199,9 @@ return pmNoDevice; } -int -JZPortMidiPlayer::Clock2Time(int clock) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +int JZPortMidiPlayer::Clock2Time(int clock) { if (clock < mStartClock) { @@ -195,8 +211,9 @@ return (int)((double)(clock - mStartClock) * 60000.0 / (double) mTicksPerMinute + mStartTime); } -int -JZPortMidiPlayer::Time2Clock(int time) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +int JZPortMidiPlayer::Time2Clock(int time) { if (time < mStartTime) { @@ -206,8 +223,9 @@ return (int)((double)(time - mStartTime) * (double) mTicksPerMinute / 60000.0 + mStartClock); } -void -JZPortMidiPlayer::SetTempo(int bpm, int clock) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void JZPortMidiPlayer::SetTempo(int bpm, int clock) { int t1 = Clock2Time(clock); mTicksPerMinute = bpm * Song->GetTicksPerQuarter(); @@ -215,13 +233,15 @@ mStartTime += (t1 - t2); } -void -JZPortMidiPlayer::OutBreak() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void JZPortMidiPlayer::OutBreak() { } -int -JZPortMidiPlayer::OutEvent(JZEvent* pEvent, int now) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +int JZPortMidiPlayer::OutEvent(JZEvent* pEvent, int now) { PmError rc = pmNoError; PmTimestamp t = (now ? 0 : pEvent->GetClock()); @@ -321,27 +341,30 @@ return rc != pmNoError; } -int -JZPortMidiPlayer::OutEvent(JZEvent* pEvent) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +int JZPortMidiPlayer::OutEvent(JZEvent* pEvent) { return OutEvent(pEvent, 0); } -void -JZPortMidiPlayer::OutNow(JZEvent*pEvent) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void JZPortMidiPlayer::OutNow(JZEvent*pEvent) { OutEvent(pEvent, 1); } -void -JZPortMidiPlayer::StartPlay(int clock, int loopClock, int cont) +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void JZPortMidiPlayer::StartPlay(int clock, int loopClock, int cont) { - bool term = InitPM(); + bool NeedToTerminate = InitPM(); PmDeviceID id = FindDevice(mOutputDevice, false); if (id == pmNoDevice) { - if (term) + if (NeedToTerminate) { TermPM(); } @@ -349,7 +372,10 @@ return; } - printf("rc = %d %d\n", Pm_OpenOutput(&mpStream, id, NULL, 0, NULL, NULL, 100), id); + cout + << "rc = " << Pm_OpenOutput(&mpStream, id, NULL, 0, NULL, NULL, 100) + << ' ' << id + << endl; mStartTime = Pt_Time() + 500; mStartClock = clock; @@ -358,8 +384,9 @@ JZPlayer::StartPlay(clock, loopClock, cont); } -void -JZPortMidiPlayer::StopPlay() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void JZPortMidiPlayer::StopPlay() { JZPlayer::StopPlay(); @@ -373,18 +400,21 @@ TermPM(); } -long -JZPortMidiPlayer::GetRealTimeClock() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +long JZPortMidiPlayer::GetRealTimeClock() { long t = Pt_Time(); - gpTrackWindow->NewPlayPosition(PlayLoop->Ext2IntClock(Time2Clock(t) / 48 * 48)); + gpTrackWindow->NewPlayPosition( + PlayLoop->Ext2IntClock(Time2Clock(t) / 48 * 48)); return Time2Clock(t); } -bool -JZPortMidiPlayer::InitPM() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +bool JZPortMidiPlayer::InitPM() { if (mInitialized) { @@ -398,8 +428,9 @@ return true; } -bool -JZPortMidiPlayer::TermPM() +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +bool JZPortMidiPlayer::TermPM() { if (!mInitialized) { @@ -412,3 +443,109 @@ return true; } + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void JZPortMidiPlayer::DeviceSelectionDialog() +{ + // Create a list of devices. + bool NeedToTerminate = InitPM(); + int Count = Pm_CountDevices(); + + vector<pair<string, int> > MidiDevices; + + // Create a container of input devices. + for (int i = 0; i < Count; ++i) + { + const PmDeviceInfo* pPmDeviceInfo = Pm_GetDeviceInfo(i); + + if (pPmDeviceInfo && pPmDeviceInfo->input) + { + wxString Name = + wxString(pPmDeviceInfo->interf, wxConvISO8859_1) + + wxT(", ") + + wxString(pPmDeviceInfo->name, wxConvISO8859_1); + + MidiDevices.push_back(make_pair(Name.c_str(), i)); + } + } + + // Select the input device. + int InputDevice = -1; + if (!MidiDevices.empty()) + { + JZMidiDeviceDialog MidiInputDeviceDialog( + MidiDevices, + InputDevice, + ::wxGetApp().GetMainFrame(), + "Input MIDI device"); + MidiInputDeviceDialog.ShowModal(); + + // Set the input device based on the selected integer. + for ( + vector<pair<string, int> >::const_iterator iDevice = + MidiDevices.begin(); + iDevice != MidiDevices.end(); + ++iDevice) + { + if (iDevice->second == InputDevice) + { + SetOutputDevice(iDevice->first.c_str()); + break; + } + } + } + + MidiDevices.clear(); + + // Create a container of output devices. + for (int i = 0; i < Count; ++i) + { + const PmDeviceInfo* pPmDeviceInfo = Pm_GetDeviceInfo(i); + + if (pPmDeviceInfo && pPmDeviceInfo->output) + { + wxString Name = + wxString(pPmDeviceInfo->interf, wxConvISO8859_1) + + wxT(", ") + + wxString(pPmDeviceInfo->name, wxConvISO8859_1); + + MidiDevices.push_back(make_pair(Name.c_str(), i)); + } + } + + // Select the output device. + int OutputDevice = -1; + if (!MidiDevices.empty()) + { + JZMidiDeviceDialog MidiOutputDeviceDialog( + MidiDevices, + OutputDevice, + gpTrackWindow, + "Output MIDI device"); + MidiOutputDeviceDialog.ShowModal(); + + // Set the output device based on the selected integer. + for ( + vector<pair<string, int> >::const_iterator iDevice = + MidiDevices.begin(); + iDevice != MidiDevices.end(); + ++iDevice) + { + if (iDevice->second == OutputDevice) + { + SetOutputDevice(iDevice->first.c_str()); + break; + } + } + } + +// gpConfig->Put(C_WinInputDevice, InputDevice); + +// gpConfig->Put(C_WinOutputDevice, OutputDevice); + + if (NeedToTerminate) + { + TermPM(); + } +} Modified: trunk/jazz/src/PortMidiPlayer.h =================================================================== --- trunk/jazz/src/PortMidiPlayer.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/PortMidiPlayer.h 2008-05-27 14:01:15 UTC (rev 579) @@ -17,7 +17,7 @@ virtual ~JZPortMidiPlayer(); - int Installed(); + virtual bool IsInstalled(); int SupportsMultipleDevices(); virtual tDeviceList& GetInputDevices(); @@ -41,6 +41,8 @@ int Time2Clock(int time); void SetTempo(int bpm, int clock); + void DeviceSelectionDialog(); + private: bool InitPM(); Modified: trunk/jazz/src/Project.cpp =================================================================== --- trunk/jazz/src/Project.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/Project.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -168,14 +168,14 @@ { #ifdef DEV_SEQUENCER2 mpMidiPlayer = new tAudioPlayer(this); - if (!mpMidiPlayer->Installed()) + if (!mpMidiPlayer->IsInstalled()) { cerr << "tAudioPlayer didn't install." << endl; delete mpMidiPlayer; mpMidiPlayer = new tSeq2Player(this); } - if (!mpMidiPlayer->Installed()) + if (!mpMidiPlayer->IsInstalled()) { cerr << "tSeq2Player didn't install." << endl; @@ -195,14 +195,14 @@ { #ifdef DEV_ALSA mpMidiPlayer = new tAlsaAudioPlayer(this); - if (!mpMidiPlayer->Installed()) + if (!mpMidiPlayer->IsInstalled()) { cerr << "tAlsaAudioPlayer didn't install." << endl; delete mpMidiPlayer; mpMidiPlayer = new tAlsaPlayer(this); } - if (!mpMidiPlayer->Installed()) + if (!mpMidiPlayer->IsInstalled()) { cerr << "tAlsaPlayer didn't install." << endl; @@ -223,7 +223,7 @@ { #ifdef DEV_MPU401 mpMidiPlayer = new tMpuPlayer(this); - if (!mpMidiPlayer->Installed()) + if (!mpMidiPlayer->IsInstalled()) { cerr << "tMpuPlayer didn't install." << endl; @@ -267,7 +267,7 @@ case CsInt: default: mpMidiPlayer = new JZWindowsAudioPlayer(this); - if (!mpMidiPlayer->Installed()) + if (!mpMidiPlayer->IsInstalled()) { mpMidiPlayer->ShowError(); delete mpMidiPlayer; @@ -275,7 +275,7 @@ } break; } - if (!mpMidiPlayer->Installed()) + if (!mpMidiPlayer->IsInstalled()) { mpMidiPlayer->ShowError(); delete mpMidiPlayer; @@ -288,8 +288,12 @@ // Macintosh Drivers //------------------ mpMidiPlayer = new JZPortMidiPlayer(this); - if (!mpMidiPlayer->Installed()) + mpMidiPlayer.DeviceSelectionDialog(); + + if (!mpMidiPlayer->IsInstalled()) { + delete mpMidiPlayer; + mpMidiPlayer = 0; cout << "Jazz++ will start with no play/record ability." << endl; } #endif // __WXMAC__ Modified: trunk/jazz/src/TrackFrame.cpp =================================================================== --- trunk/jazz/src/TrackFrame.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/TrackFrame.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -570,7 +570,7 @@ void JZTrackFrame::OnSettingsMidiDevice(wxCommandEvent& Event) { #ifdef __WXMSW__ - long InputDevice, OutputDevice; + int InputDevice, OutputDevice; gpConfig->Get(C_WinInputDevice, InputDevice); gpConfig->Get(C_WinOutputDevice, OutputDevice); JZWindowsPlayer::SettingsDlg(InputDevice, OutputDevice); Modified: trunk/jazz/src/mswin/WindowsAudioInterface.cpp =================================================================== --- trunk/jazz/src/mswin/WindowsAudioInterface.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/mswin/WindowsAudioInterface.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -157,14 +157,14 @@ long dummy = 0; AudioBuffer = new tEventArray(); - installed = 0; + mInstalled = false; dummy = gpConfig->GetValue(C_EnableAudio); audio_enabled = dummy; hout_open = 0; hinp_open = 0; // check for device - installed = 0; + mInstalled = false; mCanDuplex = (gpConfig->GetValue(C_DuplexAudio) != 0); if (OpenDsp() == 0) @@ -188,11 +188,11 @@ if (!mErrorCode && CloseDsp() == 0) { - installed = 1; + mInstalled = true; } } recbuffers.Clear(); - audio_enabled = (audio_enabled && installed); + audio_enabled = (audio_enabled && mInstalled); } //----------------------------------------------------------------------------- Modified: trunk/jazz/src/mswin/WindowsAudioInterface.h =================================================================== --- trunk/jazz/src/mswin/WindowsAudioInterface.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/mswin/WindowsAudioInterface.h 2008-05-27 14:01:15 UTC (rev 579) @@ -66,9 +66,9 @@ virtual void StartAudio(); // called async by driver - virtual int Installed() + virtual bool IsInstalled() { - return installed && JZWindowsIntPlayer::Installed(); + return mInstalled && JZWindowsIntPlayer::IsInstalled(); } virtual int GetAudioEnabled() const @@ -134,7 +134,7 @@ int OpenDsp(); // 0 = ok int CloseDsp(); // 0 = ok - int installed; + bool mInstalled; int audio_enabled; // 0 means midi only long blocks_played; // # of blocks written to device int play_buffers_needed; // driver requests more output buffers Modified: trunk/jazz/src/mswin/WindowsPlayer.cpp =================================================================== --- trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-27 14:01:15 UTC (rev 579) @@ -63,7 +63,7 @@ state->doing_mtc_rec = FALSE; state->audio_player = 0; - long ilong = -1, olong = -1; + int ilong = -1, olong = -1; if ( !gpConfig->Get(C_WinInputDevice, ilong) || !gpConfig->Get(C_WinOutputDevice, olong)) @@ -162,7 +162,7 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -int JZWindowsPlayer::Installed() +bool JZWindowsPlayer::IsInstalled() { return timer_installed && state->hout; } @@ -996,7 +996,7 @@ //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -void JZWindowsPlayer::SettingsDlg(long& InputDevice, long& OutputDevice) +void JZWindowsPlayer::SettingsDlg(int& InputDevice, int& OutputDevice) { vector<pair<string, int> > MidiDevices; Modified: trunk/jazz/src/mswin/WindowsPlayer.h =================================================================== --- trunk/jazz/src/mswin/WindowsPlayer.h 2008-05-27 04:05:06 UTC (rev 578) +++ trunk/jazz/src/mswin/WindowsPlayer.h 2008-05-27 14:01:15 UTC (rev 579) @@ -40,7 +40,7 @@ JZWindowsPlayer(JZSong* pSong); - int Installed(); + virtual bool IsInstalled(); virtual ~JZWindowsPlayer(); virtual int OutEvent(JZEvent* e); virtual int OutSysex(JZEvent* e, DWORD time); @@ -63,7 +63,7 @@ return 0; } - static void SettingsDlg(long& InputDevice, long& OutputDevice); + static void SettingsDlg(int& InputDevice, int& OutputDevice); enum { MAX_MIDI_DEVS = 10 }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-27 04:05:09
|
Revision: 578 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=578&view=rev Author: pstieber Date: 2008-05-26 21:05:06 -0700 (Mon, 26 May 2008) Log Message: ----------- Added the portmidi driver code. Modified Paths: -------------- trunk/jazz/vc8/JazzPlusPlus-VC8.sln trunk/jazz/vc8/JazzPlusPlus-VC8.vcproj trunk/jazz/vc9/JazzPlusPlus-VC9.sln trunk/jazz/vc9/JazzPlusPlus-VC9.vcproj Modified: trunk/jazz/vc8/JazzPlusPlus-VC8.sln =================================================================== --- trunk/jazz/vc8/JazzPlusPlus-VC8.sln 2008-05-27 04:03:59 UTC (rev 577) +++ trunk/jazz/vc8/JazzPlusPlus-VC8.sln 2008-05-27 04:05:06 UTC (rev 578) @@ -2,18 +2,46 @@ # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "A JazzPlusPlus Application", "JazzPlusPlus-VC8.vcproj", "{8C82269C-4753-428B-B9B1-D21B46C6AD83}" ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "porttime", "..\portmidi\porttime\porttime-VC8.vcproj", "{338224B8-D575-408D-BACF-95C557B429BE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portmidi", "..\portmidi\pm_win\portmidi-VC8.vcproj", "{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug GUI VC8|Win32 = Debug GUI VC8|Win32 + Debug VC8|Win32 = Debug VC8|Win32 Release GUI VC8|Win32 = Release GUI VC8|Win32 + Release VC8|Win32 = Release VC8|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Debug GUI VC8|Win32.ActiveCfg = Debug GUI VC8|Win32 {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Debug GUI VC8|Win32.Build.0 = Debug GUI VC8|Win32 + {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Debug VC8|Win32.ActiveCfg = Debug GUI VC8|Win32 + {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Debug VC8|Win32.Build.0 = Debug GUI VC8|Win32 {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Release GUI VC8|Win32.ActiveCfg = Release GUI VC8|Win32 {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Release GUI VC8|Win32.Build.0 = Release GUI VC8|Win32 + {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Release VC8|Win32.ActiveCfg = Release GUI VC8|Win32 + {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Release VC8|Win32.Build.0 = Release GUI VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug GUI VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug GUI VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release GUI VC8|Win32.ActiveCfg = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release GUI VC8|Win32.Build.0 = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release VC8|Win32.ActiveCfg = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug GUI VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug GUI VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release GUI VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release GUI VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release VC8|Win32.Build.0 = Release VC8|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE Modified: trunk/jazz/vc8/JazzPlusPlus-VC8.vcproj =================================================================== --- trunk/jazz/vc8/JazzPlusPlus-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) +++ trunk/jazz/vc8/JazzPlusPlus-VC8.vcproj 2008-05-27 04:05:06 UTC (rev 578) @@ -557,6 +557,14 @@ > </File> <File + RelativePath="..\src\PortMidiPlayer.cpp" + > + </File> + <File + RelativePath="..\src\PortMidiPlayer.h" + > + </File> + <File RelativePath="..\src\Project.cpp" > </File> Modified: trunk/jazz/vc9/JazzPlusPlus-VC9.sln =================================================================== --- trunk/jazz/vc9/JazzPlusPlus-VC9.sln 2008-05-27 04:03:59 UTC (rev 577) +++ trunk/jazz/vc9/JazzPlusPlus-VC9.sln 2008-05-27 04:05:06 UTC (rev 578) @@ -1,17 +1,47 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "A JazzPlusPlus Application", "JazzPlusPlus-VC9.vcproj", "{8C82269C-4753-428B-B9B1-D21B46C6AD83}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} + EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portmidi", "..\portmidi\pm_win\portmidi-VC9.vcproj", "{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "porttime", "..\portmidi\porttime\porttime-VC9.vcproj", "{338224B8-D575-408D-BACF-95C557B429BE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug GUI VC9|Win32 = Debug GUI VC9|Win32 + Debug VC8|Win32 = Debug VC8|Win32 Release GUI VC9|Win32 = Release GUI VC9|Win32 + Release VC8|Win32 = Release VC8|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Debug GUI VC9|Win32.ActiveCfg = Debug GUI VC9|Win32 {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Debug GUI VC9|Win32.Build.0 = Debug GUI VC9|Win32 + {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Debug VC8|Win32.ActiveCfg = Debug GUI VC9|Win32 + {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Debug VC8|Win32.Build.0 = Debug GUI VC9|Win32 {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Release GUI VC9|Win32.ActiveCfg = Release GUI VC9|Win32 {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Release GUI VC9|Win32.Build.0 = Release GUI VC9|Win32 + {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Release VC8|Win32.ActiveCfg = Release GUI VC9|Win32 + {8C82269C-4753-428B-B9B1-D21B46C6AD83}.Release VC8|Win32.Build.0 = Release GUI VC9|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug GUI VC9|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug GUI VC9|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release GUI VC9|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release GUI VC9|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release VC8|Win32.Build.0 = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug GUI VC9|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug GUI VC9|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release GUI VC9|Win32.ActiveCfg = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release GUI VC9|Win32.Build.0 = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release VC8|Win32.ActiveCfg = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release VC8|Win32.Build.0 = Release VC8|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE Modified: trunk/jazz/vc9/JazzPlusPlus-VC9.vcproj =================================================================== --- trunk/jazz/vc9/JazzPlusPlus-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) +++ trunk/jazz/vc9/JazzPlusPlus-VC9.vcproj 2008-05-27 04:05:06 UTC (rev 578) @@ -557,6 +557,14 @@ > </File> <File + RelativePath="..\src\PortMidiPlayer.cpp" + > + </File> + <File + RelativePath="..\src\PortMidiPlayer.h" + > + </File> + <File RelativePath="..\src\Project.cpp" > </File> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-27 04:04:02
|
Revision: 577 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=577&view=rev Author: pstieber Date: 2008-05-26 21:03:59 -0700 (Mon, 26 May 2008) Log Message: ----------- Changed build options to match Jazz++. Modified Paths: -------------- trunk/jazz/portmidi/pm_test/latency-VC8.vcproj trunk/jazz/portmidi/pm_test/latency-VC9.vcproj trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj trunk/jazz/portmidi/pm_test/midithread-VC9.vcproj trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj trunk/jazz/portmidi/pm_test/midithru-VC9.vcproj trunk/jazz/portmidi/pm_test/mm-VC8.vcproj trunk/jazz/portmidi/pm_test/mm-VC9.vcproj trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj trunk/jazz/portmidi/pm_test/qtest-VC9.vcproj trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj trunk/jazz/portmidi/pm_test/sysex-VC9.vcproj trunk/jazz/portmidi/pm_test/test-VC8.vcproj trunk/jazz/portmidi/pm_test/test-VC9.vcproj trunk/jazz/portmidi/pm_win/pm_dll-VC8.vcproj trunk/jazz/portmidi/pm_win/pm_dll-VC9.vcproj trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj trunk/jazz/portmidi/pm_win/portmidi-VC9.vcproj trunk/jazz/portmidi/porttime/porttime-VC8.vcproj trunk/jazz/portmidi/porttime/porttime-VC9.vcproj Modified: trunk/jazz/portmidi/pm_test/latency-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/latency-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/latency-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -46,7 +46,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\latency.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -138,7 +138,7 @@ AdditionalIncludeDirectories="../porttime,../pm_common" PreprocessorDefinitions="WIN32;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\latency.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/latency-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/latency-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/latency-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -47,7 +47,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\latency.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -138,7 +138,7 @@ AdditionalIncludeDirectories="../porttime,../pm_common" PreprocessorDefinitions="WIN32;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\latency.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -46,7 +46,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\midithread.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -137,7 +137,7 @@ AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\midithread.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/midithread-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithread-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/midithread-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -47,7 +47,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\midithread.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -137,7 +137,7 @@ AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\midithread.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -47,7 +47,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\midithru.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -138,7 +138,7 @@ AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\midithru.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/midithru-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithru-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/midithru-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -48,7 +48,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\midithru.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -138,7 +138,7 @@ AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\midithru.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/mm-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/mm-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/mm-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -46,7 +46,7 @@ AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;DEBUG;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\mm.pch" AssemblerListingLocation=".\$(OutDir)\" @@ -136,7 +136,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\mm.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/mm-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/mm-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/mm-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -47,7 +47,7 @@ AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;DEBUG;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\mm.pch" AssemblerListingLocation=".\$(OutDir)\" @@ -136,7 +136,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\mm.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -44,7 +44,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" UsePrecompiledHeader="0" WarningLevel="3" Detect64BitPortabilityProblems="true" @@ -120,7 +120,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="0" WarningLevel="3" Detect64BitPortabilityProblems="true" Modified: trunk/jazz/portmidi/pm_test/qtest-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/qtest-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/qtest-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -45,7 +45,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" UsePrecompiledHeader="0" WarningLevel="3" Detect64BitPortabilityProblems="true" @@ -120,7 +120,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="0" WarningLevel="3" Detect64BitPortabilityProblems="true" Modified: trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -46,7 +46,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\sysex.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -138,7 +138,7 @@ AdditionalIncludeDirectories="..\pm_common,..\porttime" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\sysex.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/sysex-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/sysex-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/sysex-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -47,7 +47,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\sysex.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -138,7 +138,7 @@ AdditionalIncludeDirectories="..\pm_common,..\porttime" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\sysex.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/test-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/test-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/test-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -47,7 +47,7 @@ AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;DEBUG;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\test.pch" AssemblerListingLocation=".\$(OutDir)\" @@ -137,7 +137,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\test.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_test/test-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/test-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_test/test-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -48,7 +48,7 @@ AdditionalIncludeDirectories="../pm_common,../porttime" PreprocessorDefinitions="WIN32;DEBUG;_CONSOLE" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\test.pch" AssemblerListingLocation=".\$(OutDir)\" @@ -137,7 +137,7 @@ PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\test.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_win/pm_dll-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_win/pm_dll-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_win/pm_dll-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -49,7 +49,7 @@ InlineFunctionExpansion="1" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PM_DLL_EXPORTS" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\pm_dll.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_win/pm_dll-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_win/pm_dll-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_win/pm_dll-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -50,7 +50,7 @@ InlineFunctionExpansion="1" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PM_DLL_EXPORTS" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\pm_dll.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -44,7 +44,7 @@ PreprocessorDefinitions="_LIB;DEBUG;PM_CHECK_ERRORS;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\portmidi.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -118,7 +118,7 @@ AdditionalIncludeDirectories="..\pm_common;..\porttime;..\pm_win" PreprocessorDefinitions="WIN32;_LIB" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\portmidi.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/pm_win/portmidi-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_win/portmidi-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/pm_win/portmidi-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -45,7 +45,7 @@ PreprocessorDefinitions="_LIB;DEBUG;PM_CHECK_ERRORS;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\portmidi.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" @@ -119,7 +119,7 @@ AdditionalIncludeDirectories="..\pm_common;..\porttime;..\pm_win" PreprocessorDefinitions="WIN32;_LIB" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\portmidi.pch" AssemblerListingLocation=".\$(OutDir)\" Modified: trunk/jazz/portmidi/porttime/porttime-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/porttime/porttime-VC8.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/porttime/porttime-VC8.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -43,7 +43,7 @@ InlineFunctionExpansion="1" PreprocessorDefinitions="WIN32;NDEBUG;_LIB" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\porttime.pch" AssemblerListingLocation=".\$(OutDir)\" @@ -116,7 +116,7 @@ PreprocessorDefinitions="_LIB;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\porttime.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" Modified: trunk/jazz/portmidi/porttime/porttime-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/porttime/porttime-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) +++ trunk/jazz/portmidi/porttime/porttime-VC9.vcproj 2008-05-27 04:03:59 UTC (rev 577) @@ -44,7 +44,7 @@ InlineFunctionExpansion="1" PreprocessorDefinitions="WIN32;NDEBUG;_LIB" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\$(OutDir)\porttime.pch" AssemblerListingLocation=".\$(OutDir)\" @@ -117,7 +117,7 @@ PreprocessorDefinitions="_LIB;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" PrecompiledHeaderFile=".\$(OutDir)\porttime.pch" AssemblerListingLocation=".\$(OutDir)\" ObjectFile=".\$(OutDir)\" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-27 03:09:33
|
Revision: 576 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=576&view=rev Author: pstieber Date: 2008-05-26 20:09:27 -0700 (Mon, 26 May 2008) Log Message: ----------- Added Visual Studio .NET 2008 solution and project files. Added Paths: ----------- trunk/jazz/portmidi/pm_test/latency-VC9.vcproj trunk/jazz/portmidi/pm_test/midithread-VC9.vcproj trunk/jazz/portmidi/pm_test/midithru-VC9.vcproj trunk/jazz/portmidi/pm_test/mm-VC9.vcproj trunk/jazz/portmidi/pm_test/qtest-VC9.vcproj trunk/jazz/portmidi/pm_test/sysex-VC9.vcproj trunk/jazz/portmidi/pm_test/test-VC9.vcproj trunk/jazz/portmidi/pm_win/pm_dll-VC9.vcproj trunk/jazz/portmidi/pm_win/portmidi-VC9.vcproj trunk/jazz/portmidi/portmidi-VC9.sln trunk/jazz/portmidi/porttime/porttime-VC9.vcproj Added: trunk/jazz/portmidi/pm_test/latency-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/latency-VC9.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/latency-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,213 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="latency" + ProjectGUID="{EDC3A027-917B-4D23-AE70-73C409B47F85}" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug latency VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\latency.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../porttime,../pm_common" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\$(OutDir)\latency.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalOptions="/verbose:lib" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\latency.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\$(OutDir)\latency.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\latency.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release latency VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\latency.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="../porttime,../pm_common" + PreprocessorDefinitions="WIN32;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\$(OutDir)\latency.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\latency.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\$(OutDir)\latency.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\latency.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath=".\latency.c" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: trunk/jazz/portmidi/pm_test/midithread-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithread-VC9.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/midithread-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,212 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="midithread" + ProjectGUID="{4E555AA6-B348-41C9-A685-0B76149BBBAF}" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug midithread VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\midithread.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\$(OutDir)\midithread.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\midithread.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\$(OutDir)\midithread.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\midithread.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release midithread VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\midithread.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="WIN32;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\$(OutDir)\midithread.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\midithread.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\$(OutDir)\midithread.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\midithread.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath=".\midithread.c" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: trunk/jazz/portmidi/pm_test/midithru-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithru-VC9.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/midithru-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,213 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="midithru" + ProjectGUID="{B4B4240D-7022-4C47-838F-913B4878E938}" + RootNamespace="midithru" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug midithru VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\midithru.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\$(OutDir)\midithru.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\midithru.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\$(OutDir)\midithru.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\midithru.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release midithru VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\midithru.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="WIN32;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\$(OutDir)\midithru.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\midithru.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\$(OutDir)\midithru.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\midithru.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath=".\midithru.c" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: trunk/jazz/portmidi/pm_test/mm-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/mm-VC9.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/mm-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,214 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="mm" + ProjectGUID="{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Release mm VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\mm.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="WIN32;DEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\$(OutDir)\mm.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\mm.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\$(OutDir)\mm.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\mm.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug mm VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\mm.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\$(OutDir)\mm.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + BrowseInformation="1" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalOptions="/VERBOSE:LIB" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\mm.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\$(OutDir)\mm.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\mm.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath=".\mm.c" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: trunk/jazz/portmidi/pm_test/qtest-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/qtest-VC9.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/qtest-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,190 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="qtest" + ProjectGUID="{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}" + RootNamespace="qtest" + Keyword="Win32Proj" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug qtest VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\qtest.exe" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release qtest VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="0" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\qtest.exe" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <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=".\qtest.c" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: trunk/jazz/portmidi/pm_test/sysex-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/sysex-VC9.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/sysex-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,213 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="sysex" + ProjectGUID="{300F59F8-5E94-492B-A899-0EB2B1140E20}" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug sysex VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\sysex.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\pm_common,..\porttime" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\$(OutDir)\sysex.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\sysex.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\$(OutDir)\sysex.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + Profile="false" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\sysex.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release sysex VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\sysex.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="..\pm_common,..\porttime" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\$(OutDir)\sysex.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\sysex.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\$(OutDir)\sysex.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\sysex.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath=".\sysex.c" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: trunk/jazz/portmidi/pm_test/test-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/test-VC9.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/test-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,216 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="test" + ProjectGUID="{49FA3196-A8F8-4E22-98C3-F3A5197CD06D}" + RootNamespace="test" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Release test VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\test.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="WIN32;DEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\$(OutDir)\test.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\test.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\$(OutDir)\test.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\test.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug test VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="1" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\$(OutDir)\test.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\$(OutDir)\test.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + BrowseInformation="1" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalOptions="/VERBOSE:LIB" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib $(NOINHERIT)" + OutputFile=".\$(OutDir)\test.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + IgnoreDefaultLibraryNames="" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\$(OutDir)\test.pdb" + SubSystem="1" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\test.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath=".\test.c" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: trunk/jazz/portmidi/pm_win/pm_dll-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_win/pm_dll-VC9.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_win/pm_dll-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,229 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="pm_dll" + ProjectGUID="{6573A21B-6AE4-4084-A7AC-2691B611DA45}" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Release DLL VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="2" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\$(OutDir)\pm_dll.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PM_DLL_EXPORTS" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\$(OutDir)\pm_dll.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile=".\$(OutDir)\pm_dll.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\$(OutDir)\pm_dll.pdb" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary=".\$(OutDir)\pm_dll.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\pm_dll.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug DLL VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="2" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\$(OutDir)\pm_dll.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="pm_common" + PreprocessorDefinitions="_WINDOWS;_USRDLL;PM_DLL_EXPORTS;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + PrecompiledHeaderFile=".\$(OutDir)\pm_dll.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + BrowseInformation="1" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + IgnoreImportLibrary="true" + AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\pm_dll.dll" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\$(OutDir)\pm_dll.pdb" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary=".\$(OutDir)\pm_dll.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\pm_dll.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath=".\pmdll.c" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + <File + RelativePath=".\pmdll.h" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: trunk/jazz/portmidi/pm_win/portmidi-VC9.vcproj =================================================================== --- trunk/jazz/portmidi/pm_win/portmidi-VC9.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_win/portmidi-VC9.vcproj 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,214 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="portmidi" + ProjectGUID="{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="4" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\pm_common;..\porttime;..\pm_win" + PreprocessorDefinitions="_LIB;DEBUG;PM_CHECK_ERRORS;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\$(OutDir)\portmidi.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + OutputFile=".\$(OutDir)\portmidi.lib" + SuppressStartupBanner="true" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\portmidi.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="4" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="..\pm_common;..\porttime;..\pm_win" + PreprocessorDefinitions="WIN32;_LIB" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\$(OutDir)\portmidi.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + OutputFile=".\$(OutDir)\portmidi.lib" + SuppressStartupBanner="true" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\$(OutDir)\portmidi.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="..\pm_common\pmutil.c" + > + </File> + <File + RelativePath=".\pmwin.c" + > + </File> + <File + RelativePath=".\pmwinmm.c" + > + </File> + <File + RelativePath="..\pm_common\portmidi.c" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + <File + RelativePath="..\pm_common\pminternal.h" + > + </File> + <File + RelativePath="..\pm_common\pmutil.h" + > + </File> + <File + RelativePath=".\pmwinmm.h" + > + </File> + <File + RelativePath="..\pm_common\portmidi.h" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: trunk/jazz/portmidi/portmidi-VC9.sln =================================================================== --- trunk/jazz/portmidi/portmidi-VC9.sln (rev 0) +++ trunk/jazz/portmidi/portmidi-VC9.sln 2008-05-27 03:09:27 UTC (rev 576) @@ -0,0 +1,434 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pm_dll", "pm_win\pm_dll-VC9.vcproj", "{6573A21B-6AE4-4084-A7AC-2691B611DA45}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portmidi", "pm_win\portmidi-VC9.vcproj", "{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" + ProjectSection(ProjectDependencies) = postProject + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "porttime", "porttime\porttime-VC9.vcproj", "{338224B8-D575-408D-BACF-95C557B429BE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "latency", "pm_test\latency-VC9.vcproj", "{EDC3A027-917B-4D23-AE70-73C409B47F85}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "midithread", "pm_test\midithread-VC9.vcproj", "{4E555AA6-B348-41C9-A685-0B76149BBBAF}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "midithru", "pm_test\midithru-VC9.vcproj", "{B4B4240D-7022-4C47-838F-913B4878E938}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sysex", "pm_test\sysex-VC9.vcproj", "{300F59F8-5E94-492B-A899-0EB2B1140E20}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "pm_test\test-VC9.vcproj", "{49FA3196-A8F8-4E22-98C3-F3A5197CD06D}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qtest", "pm_test\qtest-VC9.vcproj", "{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mm", "pm_test\mm-VC9.vcproj", "{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug DLL VC8|Win32 = Debug DLL VC8|Win32 + Debug latency VC8|Win32 = Debug latency VC8|Win32 + Debug midithread VC8|Win32 = Debug midithread VC8|Win32 + Debug midithru VC8|Win32 = Debug midithru VC8|Win32 + Debug mm VC8|Win32 = Debug mm VC8|Win32 + Debug qtest VC8|Win32 = Debug qtest VC8|Win32 + Debug sysex VC8|Win32 = Debug sysex VC8|Win32 + Debug test VC8|Win32 = Debug test VC8|Win32 + Debug VC8|Win32 = Debug VC8|Win32 + Release DLL VC8|Win32 = Release DLL VC8|Win32 + Release latency VC8|Win32 = Release latency VC8|Win32 + Release midithread VC8|Win32 = Release midithread VC8|Win32 + Release midithru VC8|Win32 = Release midithru VC8|Win32 + Release mm VC8|Win32 = Release mm VC8|Win32 + Release qtest VC8|Win32 = Release qtest VC8|Win32 + Release sysex VC8|Win32 = Release sysex VC8|Win32 + Release test VC8|Win32 = Release test VC8|Win32 + Release VC8|Win32 = Release VC8|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug DLL VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug DLL VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug latency VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug latency VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug midithread VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug midithread VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug midithru VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug midithru VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug mm VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug mm VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug qtest VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug qtest VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug sysex VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug sysex VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug test VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug test VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release DLL VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release DLL VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release latency VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release latency VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release midithread VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release midithread VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release midithru VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release midithru VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release mm VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release mm VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release qtest VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release qtest VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release sysex VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release sysex VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release test VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release test VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release VC8|Win32.Build.0 = Release DLL VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug DLL VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug DLL VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug latency VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug latency VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug midithread VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug midithread VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug midithru VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug midithru VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug mm VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug mm VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug qtest VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug qtest VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug sysex VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug sysex VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug test VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug test VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release DLL VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release DLL VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release latency VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release latency VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release midithread VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release midithread VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release midithru VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release midithru VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release mm VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release mm VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release qtest VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release qtest VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release sysex VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release sysex VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release test VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release test VC8|Win32.Build.0 = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release VC8|Win32.ActiveCfg = Release VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release VC8|Win32.Build.0 = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug DLL VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug DLL VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug latency VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug latency VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug midithread VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug midithread VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug midithru VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug midithru VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug mm VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug mm VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug qtest VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug qtest VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug sysex VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug sysex VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug test VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug test VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug VC8|Win32.ActiveCfg = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug VC8|Win32.Build.0 = Debug VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release DLL VC8|Win32.ActiveCfg = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release DLL VC8|Win32.Build.0 = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release latency VC8|Win32.ActiveCfg = Release VC8|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Rele... [truncated message content] |
From: <pst...@us...> - 2008-05-27 03:01:14
|
Revision: 575 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=575&view=rev Author: pstieber Date: 2008-05-26 20:01:07 -0700 (Mon, 26 May 2008) Log Message: ----------- Setup Visual Studio .NET 2005 projects and solutions. Modified Paths: -------------- trunk/jazz/portmidi/pm_test/latency-VC8.vcproj trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj trunk/jazz/portmidi/pm_test/mm-VC8.vcproj trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj trunk/jazz/portmidi/pm_test/test-VC8.vcproj trunk/jazz/portmidi/pm_win/pm_dll-VC8.vcproj trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj trunk/jazz/portmidi/portmidi-VC8.sln trunk/jazz/portmidi/porttime/porttime-VC8.vcproj Modified: trunk/jazz/portmidi/pm_test/latency-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/latency-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/pm_test/latency-VC8.vcproj 2008-05-27 03:01:07 UTC (rev 575) @@ -14,11 +14,10 @@ </ToolFiles> <Configurations> <Configuration - Name="Debug|Win32" - OutputDirectory=".\latencyDebug" - IntermediateDirectory=".\latencyDebug" + Name="Debug latency VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -37,7 +36,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\latencyDebug/latency.tlb" + TypeLibraryName=".\$(OutDir)\latency.tlb" HeaderFileName="" /> <Tool @@ -48,13 +47,13 @@ MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" - PrecompiledHeaderFile=".\latencyDebug/latency.pch" - AssemblerListingLocation=".\latencyDebug/" - ObjectFile=".\latencyDebug/" - ProgramDataBaseFileName=".\latencyDebug/" + PrecompiledHeaderFile=".\$(OutDir)\latency.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" - DebugInformationFormat="4" + DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" @@ -70,12 +69,12 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/verbose:lib" - AdditionalDependencies="..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib winmm.lib" - OutputFile=".\latencyDebug/latency.exe" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\latency.exe" LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile=".\latencyDebug/latency.pdb" + ProgramDatabaseFile=".\$(OutDir)\latency.pdb" SubSystem="1" TargetMachine="1" /> @@ -91,7 +90,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\latencyDebug/latency.bsc" + OutputFile=".\$(OutDir)\latency.bsc" /> <Tool Name="VCFxCopTool" @@ -107,11 +106,10 @@ /> </Configuration> <Configuration - Name="Release|Win32" - OutputDirectory=".\latencyRelease" - IntermediateDirectory=".\latencyRelease" + Name="Release latency VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -130,7 +128,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\latencyRelease/latency.tlb" + TypeLibraryName=".\$(OutDir)\latency.tlb" HeaderFileName="" /> <Tool @@ -142,10 +140,10 @@ StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\latencyRelease/latency.pch" - AssemblerListingLocation=".\latencyRelease/" - ObjectFile=".\latencyRelease/" - ProgramDataBaseFileName=".\latencyRelease/" + PrecompiledHeaderFile=".\$(OutDir)\latency.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" /> @@ -162,11 +160,11 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib winmm.lib" - OutputFile=".\latencyRelease/latency.exe" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\latency.exe" LinkIncremental="1" SuppressStartupBanner="true" - ProgramDatabaseFile=".\latencyRelease/latency.pdb" + ProgramDatabaseFile=".\$(OutDir)\latency.pdb" SubSystem="1" TargetMachine="1" /> @@ -182,7 +180,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\latencyRelease/latency.bsc" + OutputFile=".\$(OutDir)\latency.bsc" /> <Tool Name="VCFxCopTool" @@ -206,38 +204,10 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="latency.c" + RelativePath=".\latency.c" > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> </Files> <Globals> </Globals> Modified: trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj 2008-05-27 03:01:07 UTC (rev 575) @@ -14,11 +14,10 @@ </ToolFiles> <Configurations> <Configuration - Name="Debug|Win32" - OutputDirectory=".\midithreadDebug" - IntermediateDirectory=".\midithreadDebug" + Name="Debug midithread VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -37,7 +36,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\midithreadDebug/midithread.tlb" + TypeLibraryName=".\$(OutDir)\midithread.tlb" HeaderFileName="" /> <Tool @@ -48,13 +47,13 @@ MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" - PrecompiledHeaderFile=".\midithreadDebug/midithread.pch" - AssemblerListingLocation=".\midithreadDebug/" - ObjectFile=".\midithreadDebug/" - ProgramDataBaseFileName=".\midithreadDebug/" + PrecompiledHeaderFile=".\$(OutDir)\midithread.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" - DebugInformationFormat="4" + DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" @@ -69,12 +68,12 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib winmm.lib" - OutputFile=".\midithreadDebug/midithread.exe" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\midithread.exe" LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile=".\midithreadDebug/midithread.pdb" + ProgramDatabaseFile=".\$(OutDir)\midithread.pdb" SubSystem="1" TargetMachine="1" /> @@ -90,7 +89,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\midithreadDebug/midithread.bsc" + OutputFile=".\$(OutDir)\midithread.bsc" /> <Tool Name="VCFxCopTool" @@ -106,11 +105,10 @@ /> </Configuration> <Configuration - Name="Release|Win32" - OutputDirectory=".\midithreadRelease" - IntermediateDirectory=".\midithreadRelease" + Name="Release midithread VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -129,7 +127,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\midithreadRelease/midithread.tlb" + TypeLibraryName=".\$(OutDir)\midithread.tlb" HeaderFileName="" /> <Tool @@ -141,10 +139,10 @@ StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\midithreadRelease/midithread.pch" - AssemblerListingLocation=".\midithreadRelease/" - ObjectFile=".\midithreadRelease/" - ProgramDataBaseFileName=".\midithreadRelease/" + PrecompiledHeaderFile=".\$(OutDir)\midithread.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" /> @@ -161,11 +159,11 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib winmm.lib" - OutputFile=".\midithreadRelease/midithread.exe" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\midithread.exe" LinkIncremental="1" SuppressStartupBanner="true" - ProgramDatabaseFile=".\midithreadRelease/midithread.pdb" + ProgramDatabaseFile=".\$(OutDir)\midithread.pdb" SubSystem="1" TargetMachine="1" /> @@ -181,7 +179,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\midithreadRelease/midithread.bsc" + OutputFile=".\$(OutDir)\midithread.bsc" /> <Tool Name="VCFxCopTool" @@ -205,38 +203,10 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="midithread.c" + RelativePath=".\midithread.c" > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> </Files> <Globals> </Globals> Modified: trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj 2008-05-27 03:01:07 UTC (rev 575) @@ -15,11 +15,10 @@ </ToolFiles> <Configurations> <Configuration - Name="Debug|Win32" - OutputDirectory=".\midithruDebug" - IntermediateDirectory=".\midithruDebug" + Name="Debug midithru VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -38,7 +37,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\midithruDebug/midithru.tlb" + TypeLibraryName=".\$(OutDir)\midithru.tlb" HeaderFileName="" /> <Tool @@ -49,13 +48,13 @@ MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" - PrecompiledHeaderFile=".\midithruDebug/midithru.pch" - AssemblerListingLocation=".\midithruDebug/" - ObjectFile=".\midithruDebug/" - ProgramDataBaseFileName=".\midithruDebug/" + PrecompiledHeaderFile=".\$(OutDir)\midithru.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" - DebugInformationFormat="4" + DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" @@ -70,12 +69,12 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib winmm.lib" - OutputFile=".\midithruDebug/midithru.exe" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\midithru.exe" LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile=".\midithruDebug/midithru.pdb" + ProgramDatabaseFile=".\$(OutDir)\midithru.pdb" SubSystem="1" TargetMachine="1" /> @@ -91,7 +90,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\midithruDebug/midithru.bsc" + OutputFile=".\$(OutDir)\midithru.bsc" /> <Tool Name="VCFxCopTool" @@ -107,11 +106,10 @@ /> </Configuration> <Configuration - Name="Release|Win32" - OutputDirectory=".\midithruRelease" - IntermediateDirectory=".\midithruRelease" + Name="Release midithru VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -130,7 +128,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\midithruRelease/midithru.tlb" + TypeLibraryName=".\$(OutDir)\midithru.tlb" HeaderFileName="" /> <Tool @@ -142,10 +140,10 @@ StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\midithruRelease/midithru.pch" - AssemblerListingLocation=".\midithruRelease/" - ObjectFile=".\midithruRelease/" - ProgramDataBaseFileName=".\midithruRelease/" + PrecompiledHeaderFile=".\$(OutDir)\midithru.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" /> @@ -162,11 +160,11 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib winmm.lib" - OutputFile=".\midithruRelease/midithru.exe" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" winmm.lib" + OutputFile=".\$(OutDir)\midithru.exe" LinkIncremental="1" SuppressStartupBanner="true" - ProgramDatabaseFile=".\midithruRelease/midithru.pdb" + ProgramDatabaseFile=".\$(OutDir)\midithru.pdb" SubSystem="1" TargetMachine="1" /> @@ -182,7 +180,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\midithruRelease/midithru.bsc" + OutputFile=".\$(OutDir)\midithru.bsc" /> <Tool Name="VCFxCopTool" @@ -206,38 +204,10 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="midithru.c" + RelativePath=".\midithru.c" > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> </Files> <Globals> </Globals> Modified: trunk/jazz/portmidi/pm_test/mm-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/mm-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/pm_test/mm-VC8.vcproj 2008-05-27 03:01:07 UTC (rev 575) @@ -14,11 +14,10 @@ </ToolFiles> <Configurations> <Configuration - Name="Release|Win32" - OutputDirectory=".\mmRelease" - IntermediateDirectory=".\mmRelease" + Name="Release mm VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -37,7 +36,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\mmRelease/mm.tlb" + TypeLibraryName=".\$(OutDir)\mm.tlb" HeaderFileName="" /> <Tool @@ -49,10 +48,10 @@ StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\mmRelease/mm.pch" - AssemblerListingLocation=".\mmRelease/" - ObjectFile=".\mmRelease/" - ProgramDataBaseFileName=".\mmRelease/" + PrecompiledHeaderFile=".\$(OutDir)\mm.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" /> @@ -69,11 +68,11 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib" - OutputFile=".\mmRelease/mm.exe" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\mm.exe" LinkIncremental="1" SuppressStartupBanner="true" - ProgramDatabaseFile=".\mmRelease/mm.pdb" + ProgramDatabaseFile=".\$(OutDir)\mm.pdb" SubSystem="1" TargetMachine="1" /> @@ -89,7 +88,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\mmRelease/mm.bsc" + OutputFile=".\$(OutDir)\mm.bsc" /> <Tool Name="VCFxCopTool" @@ -105,11 +104,10 @@ /> </Configuration> <Configuration - Name="Debug|Win32" - OutputDirectory=".\mmDebug" - IntermediateDirectory=".\mmDebug" + Name="Debug mm VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -128,7 +126,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\mmDebug/mm.tlb" + TypeLibraryName=".\$(OutDir)\mm.tlb" HeaderFileName="" /> <Tool @@ -139,14 +137,14 @@ MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" - PrecompiledHeaderFile=".\mmDebug/mm.pch" - AssemblerListingLocation=".\mmDebug/" - ObjectFile=".\mmDebug/" - ProgramDataBaseFileName=".\mmDebug/" + PrecompiledHeaderFile=".\$(OutDir)\mm.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" BrowseInformation="1" WarningLevel="3" SuppressStartupBanner="true" - DebugInformationFormat="4" + DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" @@ -162,12 +160,12 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/VERBOSE:LIB" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib" - OutputFile=".\mmDebug/mm.exe" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\mm.exe" LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile=".\mmDebug/mm.pdb" + ProgramDatabaseFile=".\$(OutDir)\mm.pdb" SubSystem="1" TargetMachine="1" /> @@ -183,7 +181,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\mmDebug/mm.bsc" + OutputFile=".\$(OutDir)\mm.bsc" /> <Tool Name="VCFxCopTool" @@ -207,38 +205,10 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="mm.c" + RelativePath=".\mm.c" > - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> </Files> <Globals> </Globals> Modified: trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj 2008-05-27 03:01:07 UTC (rev 575) @@ -16,9 +16,9 @@ </ToolFiles> <Configurations> <Configuration - Name="Debug|Win32" - OutputDirectory=".\qtestDebug" - IntermediateDirectory=".\qtestDebug" + Name="Debug qtest VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" CharacterSet="1" > @@ -48,7 +48,7 @@ UsePrecompiledHeader="0" WarningLevel="3" Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" + DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" @@ -61,8 +61,8 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib" - OutputFile=".\qtestDebug\qtest.exe" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\qtest.exe" LinkIncremental="2" GenerateDebugInformation="true" SubSystem="1" @@ -94,9 +94,9 @@ /> </Configuration> <Configuration - Name="Release|Win32" - OutputDirectory=".\qtestRelease" - IntermediateDirectory=".\qtestRelease" + Name="Release qtest VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" CharacterSet="1" WholeProgramOptimization="1" @@ -137,8 +137,8 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib" - OutputFile=".\qtestRelease\qtest.exe" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\qtest.exe" LinkIncremental="1" GenerateDebugInformation="true" SubSystem="1" @@ -185,18 +185,6 @@ > </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> Modified: trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj 2008-05-27 03:01:07 UTC (rev 575) @@ -14,11 +14,10 @@ </ToolFiles> <Configurations> <Configuration - Name="Debug|Win32" - OutputDirectory=".\sysexDebug" - IntermediateDirectory=".\sysexDebug" + Name="Debug sysex VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -37,7 +36,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\sysexDebug/sysex.tlb" + TypeLibraryName=".\$(OutDir)\sysex.tlb" HeaderFileName="" /> <Tool @@ -48,13 +47,13 @@ MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" - PrecompiledHeaderFile=".\sysexDebug/sysex.pch" - AssemblerListingLocation=".\sysexDebug/" - ObjectFile=".\sysexDebug/" - ProgramDataBaseFileName=".\sysexDebug/" + PrecompiledHeaderFile=".\$(OutDir)\sysex.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" - DebugInformationFormat="4" + DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" @@ -69,12 +68,12 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib" - OutputFile=".\sysexDebug/sysex.exe" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\sysex.exe" LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile=".\sysexDebug/sysex.pdb" + ProgramDatabaseFile=".\$(OutDir)\sysex.pdb" SubSystem="1" TargetMachine="1" Profile="false" @@ -91,7 +90,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\sysexDebug/sysex.bsc" + OutputFile=".\$(OutDir)\sysex.bsc" /> <Tool Name="VCFxCopTool" @@ -107,11 +106,10 @@ /> </Configuration> <Configuration - Name="Release|Win32" - OutputDirectory=".\sysexRelease" - IntermediateDirectory=".\sysexRelease" + Name="Release sysex VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -130,7 +128,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\sysexRelease/sysex.tlb" + TypeLibraryName=".\$(OutDir)\sysex.tlb" HeaderFileName="" /> <Tool @@ -142,10 +140,10 @@ StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\sysexRelease/sysex.pch" - AssemblerListingLocation=".\sysexRelease/" - ObjectFile=".\sysexRelease/" - ProgramDataBaseFileName=".\sysexRelease/" + PrecompiledHeaderFile=".\$(OutDir)\sysex.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" /> @@ -162,11 +160,11 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib" - OutputFile=".\sysexRelease/sysex.exe" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\sysex.exe" LinkIncremental="1" SuppressStartupBanner="true" - ProgramDatabaseFile=".\sysexRelease/sysex.pdb" + ProgramDatabaseFile=".\$(OutDir)\sysex.pdb" SubSystem="1" TargetMachine="1" /> @@ -182,7 +180,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\sysexRelease/sysex.bsc" + OutputFile=".\$(OutDir)\sysex.bsc" /> <Tool Name="VCFxCopTool" @@ -206,38 +204,10 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="sysex.c" + RelativePath=".\sysex.c" > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> </Files> <Globals> </Globals> Modified: trunk/jazz/portmidi/pm_test/test-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/test-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/pm_test/test-VC8.vcproj 2008-05-27 03:01:07 UTC (rev 575) @@ -15,11 +15,10 @@ </ToolFiles> <Configurations> <Configuration - Name="Release|Win32" - OutputDirectory=".\testRelease" - IntermediateDirectory=".\testRelease" + Name="Release test VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -38,7 +37,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\testRelease/test.tlb" + TypeLibraryName=".\$(OutDir)\test.tlb" HeaderFileName="" /> <Tool @@ -50,10 +49,10 @@ StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\testRelease/test.pch" - AssemblerListingLocation=".\testRelease/" - ObjectFile=".\testRelease/" - ProgramDataBaseFileName=".\testRelease/" + PrecompiledHeaderFile=".\$(OutDir)\test.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" /> @@ -70,11 +69,11 @@ /> <Tool Name="VCLinkerTool" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib" - OutputFile=".\testRelease/test.exe" + AdditionalDependencies=""..\pm_win\Release VC8\portmidi.lib" "..\porttime\Release VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib" + OutputFile=".\$(OutDir)\test.exe" LinkIncremental="1" SuppressStartupBanner="true" - ProgramDatabaseFile=".\testRelease/test.pdb" + ProgramDatabaseFile=".\$(OutDir)\test.pdb" SubSystem="1" TargetMachine="1" /> @@ -90,7 +89,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\testRelease/test.bsc" + OutputFile=".\$(OutDir)\test.bsc" /> <Tool Name="VCFxCopTool" @@ -106,11 +105,10 @@ /> </Configuration> <Configuration - Name="Debug|Win32" - OutputDirectory=".\testDebug" - IntermediateDirectory=".\testDebug" + Name="Debug test VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -129,7 +127,7 @@ /> <Tool Name="VCMIDLTool" - TypeLibraryName=".\testDebug/test.tlb" + TypeLibraryName=".\$(OutDir)\test.tlb" HeaderFileName="" /> <Tool @@ -140,14 +138,14 @@ MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" - PrecompiledHeaderFile=".\testDebug/test.pch" - AssemblerListingLocation=".\testDebug/" - ObjectFile=".\testDebug/" - ProgramDataBaseFileName=".\testDebug/" + PrecompiledHeaderFile=".\$(OutDir)\test.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" BrowseInformation="1" WarningLevel="3" SuppressStartupBanner="true" - DebugInformationFormat="4" + DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" @@ -163,13 +161,13 @@ <Tool Name="VCLinkerTool" AdditionalOptions="/VERBOSE:LIB" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib $(NOINHERIT)" - OutputFile=".\testDebug/test.exe" + AdditionalDependencies=""..\pm_win\Debug VC8\portmidi.lib" "..\porttime\Debug VC8\porttime.lib" odbc32.lib odbccp32.lib winmm.lib $(NOINHERIT)" + OutputFile=".\$(OutDir)\test.exe" LinkIncremental="2" SuppressStartupBanner="true" IgnoreDefaultLibraryNames="" GenerateDebugInformation="true" - ProgramDatabaseFile=".\testDebug/test.pdb" + ProgramDatabaseFile=".\$(OutDir)\test.pdb" SubSystem="1" TargetMachine="1" /> @@ -185,7 +183,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\testDebug/test.bsc" + OutputFile=".\$(OutDir)\test.bsc" /> <Tool Name="VCFxCopTool" @@ -209,38 +207,10 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="test.c" + RelativePath=".\test.c" > - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> </Files> <Globals> </Globals> Modified: trunk/jazz/portmidi/pm_win/pm_dll-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_win/pm_dll-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/pm_win/pm_dll-VC8.vcproj 2008-05-27 03:01:07 UTC (rev 575) @@ -14,11 +14,10 @@ </ToolFiles> <Configurations> <Configuration - Name="Release|Win32" - OutputDirectory="./Release" - IntermediateDirectory="./Release" + Name="Release DLL VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="2" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -41,7 +40,7 @@ MkTypLibCompatible="true" SuppressStartupBanner="true" TargetEnvironment="1" - TypeLibraryName=".\Release/pm_dll.tlb" + TypeLibraryName=".\$(OutDir)\pm_dll.tlb" HeaderFileName="" /> <Tool @@ -52,10 +51,10 @@ StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\Release/pm_dll.pch" - AssemblerListingLocation=".\Release/" - ObjectFile=".\Release/" - ProgramDataBaseFileName=".\Release/" + PrecompiledHeaderFile=".\$(OutDir)\pm_dll.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" /> @@ -72,11 +71,11 @@ /> <Tool Name="VCLinkerTool" - OutputFile=".\Release/pm_dll.dll" + OutputFile=".\$(OutDir)\pm_dll.dll" LinkIncremental="1" SuppressStartupBanner="true" - ProgramDatabaseFile=".\Release/pm_dll.pdb" - ImportLibrary=".\Release/pm_dll.lib" + ProgramDatabaseFile=".\$(OutDir)\pm_dll.pdb" + ImportLibrary=".\$(OutDir)\pm_dll.lib" TargetMachine="1" /> <Tool @@ -91,7 +90,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\Release/pm_dll.bsc" + OutputFile=".\$(OutDir)\pm_dll.bsc" /> <Tool Name="VCFxCopTool" @@ -107,11 +106,10 @@ /> </Configuration> <Configuration - Name="Debug|Win32" - OutputDirectory="./Debug" - IntermediateDirectory="./Debug" + Name="Debug DLL VC8|Win32" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="2" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -134,7 +132,7 @@ MkTypLibCompatible="true" SuppressStartupBanner="true" TargetEnvironment="1" - TypeLibraryName=".\Debug/pm_dll.tlb" + TypeLibraryName=".\$(OutDir)\pm_dll.tlb" HeaderFileName="" /> <Tool @@ -145,14 +143,14 @@ MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" - PrecompiledHeaderFile=".\Debug/pm_dll.pch" - AssemblerListingLocation=".\Debug/" - ObjectFile=".\Debug/" - ProgramDataBaseFileName=".\Debug/" + PrecompiledHeaderFile=".\$(OutDir)\pm_dll.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" BrowseInformation="1" WarningLevel="3" SuppressStartupBanner="true" - DebugInformationFormat="4" + DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" @@ -169,12 +167,12 @@ Name="VCLinkerTool" IgnoreImportLibrary="true" AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib" - OutputFile=".\Debug/pm_dll.dll" + OutputFile=".\$(OutDir)\pm_dll.dll" LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile=".\Debug/pm_dll.pdb" - ImportLibrary=".\Debug/pm_dll.lib" + ProgramDatabaseFile=".\$(OutDir)\pm_dll.pdb" + ImportLibrary=".\$(OutDir)\pm_dll.lib" TargetMachine="1" /> <Tool @@ -189,7 +187,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\Debug/pm_dll.bsc" + OutputFile=".\$(OutDir)\pm_dll.bsc" /> <Tool Name="VCFxCopTool" @@ -213,25 +211,8 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="pmdll.c" + RelativePath=".\pmdll.c" > - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> </Filter> <Filter @@ -239,7 +220,7 @@ Filter="h;hpp;hxx;hm;inl" > <File - RelativePath="pmdll.h" + RelativePath=".\pmdll.h" > </File> </Filter> Modified: trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj 2008-05-27 03:01:07 UTC (rev 575) @@ -15,10 +15,9 @@ <Configurations> <Configuration Name="Debug VC8|Win32" - OutputDirectory=".\pm_win\Debug" - IntermediateDirectory=".\pm_win\Debug" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="4" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -41,18 +40,18 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - AdditionalIncludeDirectories="pm_common,porttime,pm_win" + AdditionalIncludeDirectories="..\pm_common;..\porttime;..\pm_win" PreprocessorDefinitions="_LIB;DEBUG;PM_CHECK_ERRORS;WIN32;_DEBUG" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" - PrecompiledHeaderFile=".\pm_win\Debug/portmidi.pch" - AssemblerListingLocation=".\pm_win\Debug/" - ObjectFile=".\pm_win\Debug/" - ProgramDataBaseFileName=".\pm_win\Debug/" + PrecompiledHeaderFile=".\$(OutDir)\portmidi.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" - DebugInformationFormat="4" + DebugInformationFormat="3" /> <Tool Name="VCManagedResourceCompilerTool" @@ -67,7 +66,7 @@ /> <Tool Name="VCLibrarianTool" - OutputFile=".\pm_win\Debug\portmidi.lib" + OutputFile=".\$(OutDir)\portmidi.lib" SuppressStartupBanner="true" /> <Tool @@ -79,7 +78,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\pm_win\Debug/portmidi.bsc" + OutputFile=".\$(OutDir)\portmidi.bsc" /> <Tool Name="VCFxCopTool" @@ -90,10 +89,9 @@ </Configuration> <Configuration Name="Release VC8|Win32" - OutputDirectory=".\pm_win\Release" - IntermediateDirectory=".\pm_win\Release" + OutputDirectory="$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" ConfigurationType="4" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" @@ -117,15 +115,15 @@ Name="VCCLCompilerTool" Optimization="2" InlineFunctionExpansion="1" - AdditionalIncludeDirectories="pm_common,porttime,pm_win" + AdditionalIncludeDirectories="..\pm_common;..\porttime;..\pm_win" PreprocessorDefinitions="WIN32;_LIB" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\Release/portmidi.pch" - AssemblerListingLocation=".\pm_win\Release/" - ObjectFile=".\pm_win\Release/" - ProgramDataBaseFileName=".\pm_win\Release/" + PrecompiledHeaderFile=".\$(OutDir)\portmidi.pch" + AssemblerListingLocation=".\$(OutDir)\" + ObjectFile=".\$(OutDir)\" + ProgramDataBaseFileName=".\$(OutDir)\" WarningLevel="3" SuppressStartupBanner="true" /> @@ -142,7 +140,7 @@ /> <Tool Name="VCLibrarianTool" - OutputFile=".\pm_win\Release\portmidi.lib" + OutputFile=".\$(OutDir)\portmidi.lib" SuppressStartupBanner="true" /> <Tool @@ -154,7 +152,7 @@ <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" - OutputFile=".\pm_win\Release/portmidi.bsc" + OutputFile=".\$(OutDir)\portmidi.bsc" /> <Tool Name="VCFxCopTool" @@ -172,92 +170,20 @@ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File - RelativePath="pm_common\pmutil.c" + RelativePath="..\pm_common\pmutil.c" > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> <File - RelativePath="pm_win\pmwin.c" + RelativePath=".\pmwin.c" > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> <File - RelativePath="pm_win\pmwinmm.c" + RelativePath=".\pmwinmm.c" > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> <File - RelativePath="pm_common\portmidi.c" + RelativePath="..\pm_common\portmidi.c" > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> </File> </Filter> <Filter @@ -265,19 +191,19 @@ Filter="h;hpp;hxx;hm;inl" > <File - RelativePath="pm_common\pminternal.h" + RelativePath="..\pm_common\pminternal.h" > </File> <File - RelativePath="pm_common\pmutil.h" + RelativePath="..\pm_common\pmutil.h" > </File> <File - RelativePath="pm_win\pmwinmm.h" + RelativePath=".\pmwinmm.h" > </File> <File - RelativePath="pm_common\portmidi.h" + RelativePath="..\pm_common\portmidi.h" > </File> </Filter> Modified: trunk/jazz/portmidi/portmidi-VC8.sln =================================================================== --- trunk/jazz/portmidi/portmidi-VC8.sln 2008-05-27 02:10:11 UTC (rev 574) +++ trunk/jazz/portmidi/portmidi-VC8.sln 2008-05-27 03:01:07 UTC (rev 575) @@ -3,99 +3,432 @@ # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pm_dll", "pm_win\pm_dll-VC8.vcproj", "{6573A21B-6AE4-4084-A7AC-2691B611DA45}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portmidi", "portmidi-VC8.vcproj", "{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" -ProjectSection(ProjectDependencies) = postProject -{338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} -EndProjectSection +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portmidi", "pm_win\portmidi-VC8.vcproj", "{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" + ProjectSection(ProjectDependencies) = postProject + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "porttime", "porttime\porttime-VC8.vcproj", "{338224B8-D575-408D-BACF-95C557B429BE}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "latency", "pm_test\latency-VC8.vcproj", "{EDC3A027-917B-4D23-AE70-73C409B47F85}" -ProjectSection(ProjectDependencies) = postProject -{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} -{338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} -EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "midithread", "pm_test\midithread-VC8.vcproj", "{4E555AA6-B348-41C9-A685-0B76149BBBAF}" -ProjectSection(ProjectDependencies) = postProject -{6573A21B-6AE4-4084-A7AC-2691B611DA45} = {6573A21B-6AE4-4084-A7AC-2691B611DA45} -{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} -{338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} -EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "midithru", "pm_test\midithru-VC8.vcproj", "{B4B4240D-7022-4C47-838F-913B4878E938}" -ProjectSection(ProjectDependencies) = postProject -{6573A21B-6AE4-4084-A7AC-2691B611DA45} = {6573A21B-6AE4-4084-A7AC-2691B611DA45} -{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} -{338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} -EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sysex", "pm_test\sysex-VC8.vcproj", "{300F59F8-5E94-492B-A899-0EB2B1140E20}" -ProjectSection(ProjectDependencies) = postProject -{6573A21B-6AE4-4084-A7AC-2691B611DA45} = {6573A21B-6AE4-4084-A7AC-2691B611DA45} -{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} -{338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} -EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "pm_test\test-VC8.vcproj", "{49FA3196-A8F8-4E22-98C3-F3A5197CD06D}" -ProjectSection(ProjectDependencies) = postProject -{6573A21B-6AE4-4084-A7AC-2691B611DA45} = {6573A21B-6AE4-4084-A7AC-2691B611DA45} -{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} -{338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} -EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qtest", "pm_test\qtest-VC8.vcproj", "{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mm", "pm_test\mm-VC8.vcproj", "{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + EndProjectSection EndProject Global -GlobalSection(SolutionConfigurationPlatforms) = preSolution -Debug|Win32 = Debug|Win32 -Release|Win32 = Release|Win32 -EndGlobalSection -GlobalSection(ProjectConfigurationPlatforms) = postSolution -{6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug|Win32.ActiveCfg = Debug|Win32 -{6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug|Win32.Build.0 = Debug|Win32 -{6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release|Win32.ActiveCfg = Release|Win32 -{6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release|Win32.Build.0 = Release|Win32 -{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug|Win32.ActiveCfg = Debug|Win32 -{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug|Win32.Build.0 = Debug|Win32 -{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release|Win32.ActiveCfg = Release|Win32 -{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release|Win32.Build.0 = Release|Win32 -{338224B8-D575-408D-BACF-95C557B429BE}.Debug|Win32.ActiveCfg = Debug|Win32 -{338224B8-D575-408D-BACF-95C557B429BE}.Debug|Win32.Build.0 = Debug|Win32 -{338224B8-D575-408D-BACF-95C557B429BE}.Release|Win32.ActiveCfg = Release|Win32 -{338224B8-D575-408D-BACF-95C557B429BE}.Release|Win32.Build.0 = Release|Win32 -{EDC3A027-917B-4D23-AE70-73C409B47F85}.Debug|Win32.ActiveCfg = Debug|Win32 -{EDC3A027-917B-4D23-AE70-73C409B47F85}.Debug|Win32.Build.0 = Debug|Win32 -{EDC3A027-917B-4D23-AE70-73C409B47F85}.Release|Win32.ActiveCfg = Release|Win32 -{EDC3A027-917B-4D23-AE70-73C409B47F85}.Release|Win32.Build.0 = Release|Win32 -{4E555AA6-B348-41C9-A685-0B76149BBBAF}.Debug|Win32.ActiveCfg = Debug|Win32 -{4E555AA6-B348-41C9-A685-0B76149BBBAF}.Debug|Win32.Build.0 = Debug|Win32 -{4E555AA6-B348-41C9-A685-0B76149BBBAF}.Release|Win32.ActiveCfg = Release|Win32 -{4E555AA6-B348-41C9-A685-0B76149BBBAF}.Release|Win32.Build.0 = Release|Win32 -{B4B4240D-7022-4C47-838F-913B4878E938}.Debug|Win32.ActiveCfg = Debug|Win32 -{B4B4240D-7022-4C47-838F-913B4878E938}.Debug|Win32.Build.0 = Debug|Win32 -{B4B4240D-7022-4C47-838F-913B4878E938}.Release|Win32.ActiveCfg = Release|Win32 -{B4B4240D-7022-4C47-838F-913B4878E938}.Release|Win32.Build.0 = Release|Win32 -{300F59F8-5E94-492B-A899-0EB2B1140E20}.Debug|Win32.ActiveCfg = Debug|Win32 -{300F59F8-5E94-492B-A899-0EB2B1140E20}.Debug|Win32.Build.0 = Debug|Win32 -{300F59F8-5E94-492B-A899-0EB2B1140E20}.Release|Win32.ActiveCfg = Release|Win32 -{300F59F8-5E94-492B-A899-0EB2B1140E20}.Release|Win32.Build.0 = Release|Win32 -{49FA3196-A8F8-4E22-98C3-F3A5197CD06D}.Debug|Win32.ActiveCfg = Debug|Win32 -{49FA3196-A8F8-4E22-98C3-F3A5197CD06D}.Debug|Win32.Build.0 = Debug|Win32 -{49FA3196-A8F8-4E22-98C3-F3A5197CD06D}.Release|Win32.ActiveCfg = Release|Win32 -{49FA3196-A8F8-4E22-98C3-F3A5197CD06D}.Release|Win32.Build.0 = Release|Win32 -{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}.Debug|Win32.ActiveCfg = Debug|Win32 -{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}.Debug|Win32.Build.0 = Debug|Win32 -{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}.Release|Win32.ActiveCfg = Release|Win32 -{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}.Release|Win32.Build.0 = Release|Win32 -{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}.Debug|Win32.ActiveCfg = Debug|Win32 -{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}.Debug|Win32.Build.0 = Debug|Win32 -{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}.Release|Win32.ActiveCfg = Release|Win32 -{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}.Release|Win32.Build.0 = Release|Win32 -EndGlobalSection -GlobalSection(SolutionProperties) = preSolution -HideSolutionNode = FALSE -EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug DLL VC8|Win32 = Debug DLL VC8|Win32 + Debug latency VC8|Win32 = Debug latency VC8|Win32 + Debug midithread VC8|Win32 = Debug midithread VC8|Win32 + Debug midithru VC8|Win32 = Debug midithru VC8|Win32 + Debug mm VC8|Win32 = Debug mm VC8|Win32 + Debug qtest VC8|Win32 = Debug qtest VC8|Win32 + Debug sysex VC8|Win32 = Debug sysex VC8|Win32 + Debug test VC8|Win32 = Debug test VC8|Win32 + Debug VC8|Win32 = Debug VC8|Win32 + Release DLL VC8|Win32 = Release DLL VC8|Win32 + Release latency VC8|Win32 = Release latency VC8|Win32 + Release midithread VC8|Win32 = Release midithread VC8|Win32 + Release midithru VC8|Win32 = Release midithru VC8|Win32 + Release mm VC8|Win32 = Release mm VC8|Win32 + Release qtest VC8|Win32 = Release qtest VC8|Win32 + Release sysex VC8|Win32 = Release sysex VC8|Win32 + Release test VC8|Win32 = Release test VC8|Win32 + Release VC8|Win32 = Release VC8|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug DLL VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug DLL VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug latency VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug latency VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug midithread VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug midithread VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug midithru VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug midithru VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug mm VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug mm VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug qtest VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug qtest VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug sysex VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug sysex VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug test VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug test VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug VC8|Win32.ActiveCfg = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug VC8|Win32.Build.0 = Debug DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release DLL VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release DLL VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release latency VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release latency VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release midithread VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release midithread VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release midithru VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release midithru VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release mm VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release mm VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release qtest VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release qtest VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release sysex VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release sysex VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release test VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release test VC8|Win32.Build.0 = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release VC8|Win32.ActiveCfg = Release DLL VC8|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release VC8|Win32.Build.0 = Release DLL VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug DLL VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug DLL VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug latency VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug latency VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug midithread VC8|Win32.ActiveCfg = Debug VC8|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug midithread VC8|Win32.Build.0 = Debug VC8|Win32 + {33E3B196-B9F4... [truncated message content] |
From: <pst...@us...> - 2008-05-27 02:10:12
|
Revision: 574 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=574&view=rev Author: pstieber Date: 2008-05-26 19:10:11 -0700 (Mon, 26 May 2008) Log Message: ----------- Moved the non-DLL portmidi project into the Windows specific directory. Added Paths: ----------- trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj Removed Paths: ------------- trunk/jazz/portmidi/portmidi-VC8.vcproj Copied: trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj (from rev 573, trunk/jazz/portmidi/portmidi-VC8.vcproj) =================================================================== --- trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_win/portmidi-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) @@ -0,0 +1,287 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="portmidi" + ProjectGUID="{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug VC8|Win32" + OutputDirectory=".\pm_win\Debug" + IntermediateDirectory=".\pm_win\Debug" + ConfigurationType="4" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="pm_common,porttime,pm_win" + PreprocessorDefinitions="_LIB;DEBUG;PM_CHECK_ERRORS;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\pm_win\Debug/portmidi.pch" + AssemblerListingLocation=".\pm_win\Debug/" + ObjectFile=".\pm_win\Debug/" + ProgramDataBaseFileName=".\pm_win\Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + OutputFile=".\pm_win\Debug\portmidi.lib" + SuppressStartupBanner="true" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\pm_win\Debug/portmidi.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release VC8|Win32" + OutputDirectory=".\pm_win\Release" + IntermediateDirectory=".\pm_win\Release" + ConfigurationType="4" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="pm_common,porttime,pm_win" + PreprocessorDefinitions="WIN32;_LIB" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\Release/portmidi.pch" + AssemblerListingLocation=".\pm_win\Release/" + ObjectFile=".\pm_win\Release/" + ProgramDataBaseFileName=".\pm_win\Release/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + OutputFile=".\pm_win\Release\portmidi.lib" + SuppressStartupBanner="true" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\pm_win\Release/portmidi.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="pm_common\pmutil.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="pm_win\pmwin.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="pm_win\pmwinmm.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="pm_common\portmidi.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + <File + RelativePath="pm_common\pminternal.h" + > + </File> + <File + RelativePath="pm_common\pmutil.h" + > + </File> + <File + RelativePath="pm_win\pmwinmm.h" + > + </File> + <File + RelativePath="pm_common\portmidi.h" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Deleted: trunk/jazz/portmidi/portmidi-VC8.vcproj =================================================================== --- trunk/jazz/portmidi/portmidi-VC8.vcproj 2008-05-27 02:08:35 UTC (rev 573) +++ trunk/jazz/portmidi/portmidi-VC8.vcproj 2008-05-27 02:10:11 UTC (rev 574) @@ -1,287 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="portmidi" - ProjectGUID="{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug VC8|Win32" - OutputDirectory=".\pm_win\Debug" - IntermediateDirectory=".\pm_win\Debug" - ConfigurationType="4" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="pm_common,porttime,pm_win" - PreprocessorDefinitions="_LIB;DEBUG;PM_CHECK_ERRORS;WIN32;_DEBUG" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="1" - PrecompiledHeaderFile=".\pm_win\Debug/portmidi.pch" - AssemblerListingLocation=".\pm_win\Debug/" - ObjectFile=".\pm_win\Debug/" - ProgramDataBaseFileName=".\pm_win\Debug/" - WarningLevel="3" - SuppressStartupBanner="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - OutputFile=".\pm_win\Debug\portmidi.lib" - SuppressStartupBanner="true" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\pm_win\Debug/portmidi.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release VC8|Win32" - OutputDirectory=".\pm_win\Release" - IntermediateDirectory=".\pm_win\Release" - ConfigurationType="4" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - InlineFunctionExpansion="1" - AdditionalIncludeDirectories="pm_common,porttime,pm_win" - PreprocessorDefinitions="WIN32;_LIB" - StringPooling="true" - RuntimeLibrary="0" - EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\Release/portmidi.pch" - AssemblerListingLocation=".\pm_win\Release/" - ObjectFile=".\pm_win\Release/" - ProgramDataBaseFileName=".\pm_win\Release/" - WarningLevel="3" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - OutputFile=".\pm_win\Release\portmidi.lib" - SuppressStartupBanner="true" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\pm_win\Release/portmidi.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" - > - <File - RelativePath="pm_common\pmutil.c" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - <File - RelativePath="pm_win\pmwin.c" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - <File - RelativePath="pm_win\pmwinmm.c" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - <File - RelativePath="pm_common\portmidi.c" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - <File - RelativePath="pm_common\pminternal.h" - > - </File> - <File - RelativePath="pm_common\pmutil.h" - > - </File> - <File - RelativePath="pm_win\pmwinmm.h" - > - </File> - <File - RelativePath="pm_common\portmidi.h" - > - </File> - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-27 02:08:36
|
Revision: 573 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=573&view=rev Author: pstieber Date: 2008-05-26 19:08:35 -0700 (Mon, 26 May 2008) Log Message: ----------- Started the process of dealing with both VC8 and VC9 configurations. Added Paths: ----------- trunk/jazz/portmidi/pm_test/latency-VC8.vcproj trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj trunk/jazz/portmidi/pm_test/mm-VC8.vcproj trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj trunk/jazz/portmidi/pm_test/test-VC8.vcproj trunk/jazz/portmidi/pm_win/pm_dll-VC8.vcproj trunk/jazz/portmidi/portmidi-VC8.sln trunk/jazz/portmidi/portmidi-VC8.vcproj trunk/jazz/portmidi/porttime/porttime-VC8.vcproj Removed Paths: ------------- trunk/jazz/portmidi/pm_test/latency.vcproj trunk/jazz/portmidi/pm_test/midithread.vcproj trunk/jazz/portmidi/pm_test/midithru.vcproj trunk/jazz/portmidi/pm_test/mm.vcproj trunk/jazz/portmidi/pm_test/qtest.vcproj trunk/jazz/portmidi/pm_test/sysex.vcproj trunk/jazz/portmidi/pm_test/test.vcproj trunk/jazz/portmidi/pm_win/pm_dll.vcproj trunk/jazz/portmidi/portmidi.sln trunk/jazz/portmidi/portmidi.vcproj trunk/jazz/portmidi/porttime/porttime.vcproj Copied: trunk/jazz/portmidi/pm_test/latency-VC8.vcproj (from rev 572, trunk/jazz/portmidi/pm_test/latency.vcproj) =================================================================== --- trunk/jazz/portmidi/pm_test/latency-VC8.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/latency-VC8.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -0,0 +1,244 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="latency" + ProjectGUID="{EDC3A027-917B-4D23-AE70-73C409B47F85}" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\latencyDebug" + IntermediateDirectory=".\latencyDebug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\latencyDebug/latency.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../porttime,../pm_common" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\latencyDebug/latency.pch" + AssemblerListingLocation=".\latencyDebug/" + ObjectFile=".\latencyDebug/" + ProgramDataBaseFileName=".\latencyDebug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalOptions="/verbose:lib" + AdditionalDependencies="..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib winmm.lib" + OutputFile=".\latencyDebug/latency.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\latencyDebug/latency.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\latencyDebug/latency.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory=".\latencyRelease" + IntermediateDirectory=".\latencyRelease" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\latencyRelease/latency.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="../porttime,../pm_common" + PreprocessorDefinitions="WIN32;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\latencyRelease/latency.pch" + AssemblerListingLocation=".\latencyRelease/" + ObjectFile=".\latencyRelease/" + ProgramDataBaseFileName=".\latencyRelease/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib winmm.lib" + OutputFile=".\latencyRelease/latency.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\latencyRelease/latency.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\latencyRelease/latency.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="latency.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Deleted: trunk/jazz/portmidi/pm_test/latency.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/latency.vcproj 2008-05-27 01:28:12 UTC (rev 572) +++ trunk/jazz/portmidi/pm_test/latency.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -1,244 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="latency" - ProjectGUID="{EDC3A027-917B-4D23-AE70-73C409B47F85}" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory=".\latencyDebug" - IntermediateDirectory=".\latencyDebug" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TypeLibraryName=".\latencyDebug/latency.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="../porttime,../pm_common" - PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="1" - PrecompiledHeaderFile=".\latencyDebug/latency.pch" - AssemblerListingLocation=".\latencyDebug/" - ObjectFile=".\latencyDebug/" - ProgramDataBaseFileName=".\latencyDebug/" - WarningLevel="3" - SuppressStartupBanner="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalOptions="/verbose:lib" - AdditionalDependencies="..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib winmm.lib" - OutputFile=".\latencyDebug/latency.exe" - LinkIncremental="2" - SuppressStartupBanner="true" - GenerateDebugInformation="true" - ProgramDatabaseFile=".\latencyDebug/latency.pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\latencyDebug/latency.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory=".\latencyRelease" - IntermediateDirectory=".\latencyRelease" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TypeLibraryName=".\latencyRelease/latency.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - InlineFunctionExpansion="1" - AdditionalIncludeDirectories="../porttime,../pm_common" - PreprocessorDefinitions="WIN32;_CONSOLE" - StringPooling="true" - RuntimeLibrary="0" - EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\latencyRelease/latency.pch" - AssemblerListingLocation=".\latencyRelease/" - ObjectFile=".\latencyRelease/" - ProgramDataBaseFileName=".\latencyRelease/" - WarningLevel="3" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib winmm.lib" - OutputFile=".\latencyRelease/latency.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - ProgramDatabaseFile=".\latencyRelease/latency.pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\latencyRelease/latency.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" - > - <File - RelativePath="latency.c" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> Copied: trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj (from rev 572, trunk/jazz/portmidi/pm_test/midithread.vcproj) =================================================================== --- trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/midithread-VC8.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -0,0 +1,243 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="midithread" + ProjectGUID="{4E555AA6-B348-41C9-A685-0B76149BBBAF}" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\midithreadDebug" + IntermediateDirectory=".\midithreadDebug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\midithreadDebug/midithread.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\midithreadDebug/midithread.pch" + AssemblerListingLocation=".\midithreadDebug/" + ObjectFile=".\midithreadDebug/" + ProgramDataBaseFileName=".\midithreadDebug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib winmm.lib" + OutputFile=".\midithreadDebug/midithread.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\midithreadDebug/midithread.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\midithreadDebug/midithread.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory=".\midithreadRelease" + IntermediateDirectory=".\midithreadRelease" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\midithreadRelease/midithread.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="WIN32;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\midithreadRelease/midithread.pch" + AssemblerListingLocation=".\midithreadRelease/" + ObjectFile=".\midithreadRelease/" + ProgramDataBaseFileName=".\midithreadRelease/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib winmm.lib" + OutputFile=".\midithreadRelease/midithread.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\midithreadRelease/midithread.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\midithreadRelease/midithread.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="midithread.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Deleted: trunk/jazz/portmidi/pm_test/midithread.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithread.vcproj 2008-05-27 01:28:12 UTC (rev 572) +++ trunk/jazz/portmidi/pm_test/midithread.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -1,243 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="midithread" - ProjectGUID="{4E555AA6-B348-41C9-A685-0B76149BBBAF}" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory=".\midithreadDebug" - IntermediateDirectory=".\midithreadDebug" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TypeLibraryName=".\midithreadDebug/midithread.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="../pm_common,../porttime" - PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="1" - PrecompiledHeaderFile=".\midithreadDebug/midithread.pch" - AssemblerListingLocation=".\midithreadDebug/" - ObjectFile=".\midithreadDebug/" - ProgramDataBaseFileName=".\midithreadDebug/" - WarningLevel="3" - SuppressStartupBanner="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib winmm.lib" - OutputFile=".\midithreadDebug/midithread.exe" - LinkIncremental="2" - SuppressStartupBanner="true" - GenerateDebugInformation="true" - ProgramDatabaseFile=".\midithreadDebug/midithread.pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\midithreadDebug/midithread.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory=".\midithreadRelease" - IntermediateDirectory=".\midithreadRelease" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TypeLibraryName=".\midithreadRelease/midithread.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - InlineFunctionExpansion="1" - AdditionalIncludeDirectories="../pm_common,../porttime" - PreprocessorDefinitions="WIN32;_CONSOLE" - StringPooling="true" - RuntimeLibrary="0" - EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\midithreadRelease/midithread.pch" - AssemblerListingLocation=".\midithreadRelease/" - ObjectFile=".\midithreadRelease/" - ProgramDataBaseFileName=".\midithreadRelease/" - WarningLevel="3" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib winmm.lib" - OutputFile=".\midithreadRelease/midithread.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - ProgramDatabaseFile=".\midithreadRelease/midithread.pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\midithreadRelease/midithread.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" - > - <File - RelativePath="midithread.c" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> Copied: trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj (from rev 572, trunk/jazz/portmidi/pm_test/midithru.vcproj) =================================================================== --- trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/midithru-VC8.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -0,0 +1,244 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="midithru" + ProjectGUID="{B4B4240D-7022-4C47-838F-913B4878E938}" + RootNamespace="midithru" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\midithruDebug" + IntermediateDirectory=".\midithruDebug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\midithruDebug/midithru.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\midithruDebug/midithru.pch" + AssemblerListingLocation=".\midithruDebug/" + ObjectFile=".\midithruDebug/" + ProgramDataBaseFileName=".\midithruDebug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib winmm.lib" + OutputFile=".\midithruDebug/midithru.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\midithruDebug/midithru.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\midithruDebug/midithru.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory=".\midithruRelease" + IntermediateDirectory=".\midithruRelease" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\midithruRelease/midithru.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="WIN32;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\midithruRelease/midithru.pch" + AssemblerListingLocation=".\midithruRelease/" + ObjectFile=".\midithruRelease/" + ProgramDataBaseFileName=".\midithruRelease/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib winmm.lib" + OutputFile=".\midithruRelease/midithru.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\midithruRelease/midithru.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\midithruRelease/midithru.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="midithru.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Deleted: trunk/jazz/portmidi/pm_test/midithru.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/midithru.vcproj 2008-05-27 01:28:12 UTC (rev 572) +++ trunk/jazz/portmidi/pm_test/midithru.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -1,244 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="midithru" - ProjectGUID="{B4B4240D-7022-4C47-838F-913B4878E938}" - RootNamespace="midithru" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory=".\midithruDebug" - IntermediateDirectory=".\midithruDebug" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TypeLibraryName=".\midithruDebug/midithru.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="../pm_common,../porttime" - PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="1" - PrecompiledHeaderFile=".\midithruDebug/midithru.pch" - AssemblerListingLocation=".\midithruDebug/" - ObjectFile=".\midithruDebug/" - ProgramDataBaseFileName=".\midithruDebug/" - WarningLevel="3" - SuppressStartupBanner="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib winmm.lib" - OutputFile=".\midithruDebug/midithru.exe" - LinkIncremental="2" - SuppressStartupBanner="true" - GenerateDebugInformation="true" - ProgramDatabaseFile=".\midithruDebug/midithru.pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\midithruDebug/midithru.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory=".\midithruRelease" - IntermediateDirectory=".\midithruRelease" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TypeLibraryName=".\midithruRelease/midithru.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - InlineFunctionExpansion="1" - AdditionalIncludeDirectories="../pm_common,../porttime" - PreprocessorDefinitions="WIN32;_CONSOLE" - StringPooling="true" - RuntimeLibrary="0" - EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\midithruRelease/midithru.pch" - AssemblerListingLocation=".\midithruRelease/" - ObjectFile=".\midithruRelease/" - ProgramDataBaseFileName=".\midithruRelease/" - WarningLevel="3" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib winmm.lib" - OutputFile=".\midithruRelease/midithru.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - ProgramDatabaseFile=".\midithruRelease/midithru.pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\midithruRelease/midithru.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" - > - <File - RelativePath="midithru.c" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> Copied: trunk/jazz/portmidi/pm_test/mm-VC8.vcproj (from rev 572, trunk/jazz/portmidi/pm_test/mm.vcproj) =================================================================== --- trunk/jazz/portmidi/pm_test/mm-VC8.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/mm-VC8.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -0,0 +1,245 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="mm" + ProjectGUID="{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Release|Win32" + OutputDirectory=".\mmRelease" + IntermediateDirectory=".\mmRelease" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\mmRelease/mm.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="WIN32;DEBUG;_CONSOLE" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\mmRelease/mm.pch" + AssemblerListingLocation=".\mmRelease/" + ObjectFile=".\mmRelease/" + ProgramDataBaseFileName=".\mmRelease/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib" + OutputFile=".\mmRelease/mm.exe" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\mmRelease/mm.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\mmRelease/mm.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\mmDebug" + IntermediateDirectory=".\mmDebug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\mmDebug/mm.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\mmDebug/mm.pch" + AssemblerListingLocation=".\mmDebug/" + ObjectFile=".\mmDebug/" + ProgramDataBaseFileName=".\mmDebug/" + BrowseInformation="1" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalOptions="/VERBOSE:LIB" + AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib" + OutputFile=".\mmDebug/mm.exe" + LinkIncremental="2" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\mmDebug/mm.pdb" + SubSystem="1" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\mmDebug/mm.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="mm.c" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Deleted: trunk/jazz/portmidi/pm_test/mm.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/mm.vcproj 2008-05-27 01:28:12 UTC (rev 572) +++ trunk/jazz/portmidi/pm_test/mm.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -1,245 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="mm" - ProjectGUID="{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Release|Win32" - OutputDirectory=".\mmRelease" - IntermediateDirectory=".\mmRelease" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TypeLibraryName=".\mmRelease/mm.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - InlineFunctionExpansion="1" - AdditionalIncludeDirectories="../pm_common,../porttime" - PreprocessorDefinitions="WIN32;DEBUG;_CONSOLE" - StringPooling="true" - RuntimeLibrary="0" - EnableFunctionLevelLinking="true" - PrecompiledHeaderFile=".\mmRelease/mm.pch" - AssemblerListingLocation=".\mmRelease/" - ObjectFile=".\mmRelease/" - ProgramDataBaseFileName=".\mmRelease/" - WarningLevel="3" - SuppressStartupBanner="true" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib" - OutputFile=".\mmRelease/mm.exe" - LinkIncremental="1" - SuppressStartupBanner="true" - ProgramDatabaseFile=".\mmRelease/mm.pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\mmRelease/mm.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug|Win32" - OutputDirectory=".\mmDebug" - IntermediateDirectory=".\mmDebug" - ConfigurationType="1" - InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" - UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="false" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - TypeLibraryName=".\mmDebug/mm.tlb" - HeaderFileName="" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="../pm_common,../porttime" - PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="1" - PrecompiledHeaderFile=".\mmDebug/mm.pch" - AssemblerListingLocation=".\mmDebug/" - ObjectFile=".\mmDebug/" - ProgramDataBaseFileName=".\mmDebug/" - BrowseInformation="1" - WarningLevel="3" - SuppressStartupBanner="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="_DEBUG" - Culture="1033" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalOptions="/VERBOSE:LIB" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib" - OutputFile=".\mmDebug/mm.exe" - LinkIncremental="2" - SuppressStartupBanner="true" - GenerateDebugInformation="true" - ProgramDatabaseFile=".\mmDebug/mm.pdb" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - SuppressStartupBanner="true" - OutputFile=".\mmDebug/mm.bsc" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" - > - <File - RelativePath="mm.c" - > - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="" - PreprocessorDefinitions="" - /> - </FileConfiguration> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl" - > - </Filter> - <Filter - Name="Resource Files" - Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" - > - </Filter> - </Files> - <Globals> - </Globals> -</VisualStudioProject> Copied: trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj (from rev 572, trunk/jazz/portmidi/pm_test/qtest.vcproj) =================================================================== --- trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/qtest-VC8.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -0,0 +1,203 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="qtest" + ProjectGUID="{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}" + RootNamespace="qtest" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\qtestDebug" + IntermediateDirectory=".\qtestDebug" + ConfigurationType="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib" + OutputFile=".\qtestDebug\qtest.exe" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="1" + 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=".\qtestRelease" + IntermediateDirectory=".\qtestRelease" + ConfigurationType="1" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="../pm_common,../porttime" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="0" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib" + OutputFile=".\qtestRelease\qtest.exe" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="1" + 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=".\qtest.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> Deleted: trunk/jazz/portmidi/pm_test/qtest.vcproj =================================================================== --- trunk/jazz/portmidi/pm_test/qtest.vcproj 2008-05-27 01:28:12 UTC (rev 572) +++ trunk/jazz/portmidi/pm_test/qtest.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -1,203 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="qtest" - ProjectGUID="{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}" - RootNamespace="qtest" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory=".\qtestDebug" - IntermediateDirectory=".\qtestDebug" - ConfigurationType="1" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="../pm_common,../porttime" - PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="1" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Debug\portmidi.lib ..\porttime\Debug\porttime.lib" - OutputFile=".\qtestDebug\qtest.exe" - LinkIncremental="2" - GenerateDebugInformation="true" - SubSystem="1" - 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=".\qtestRelease" - IntermediateDirectory=".\qtestRelease" - ConfigurationType="1" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="../pm_common,../porttime" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="odbc32.lib odbccp32.lib winmm.lib ..\pm_win\Release\portmidi.lib ..\porttime\Release\porttime.lib" - OutputFile=".\qtestRelease\qtest.exe" - LinkIncremental="1" - GenerateDebugInformation="true" - SubSystem="1" - 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=".\qtest.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> Copied: trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj (from rev 572, trunk/jazz/portmidi/pm_test/sysex.vcproj) =================================================================== --- trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj (rev 0) +++ trunk/jazz/portmidi/pm_test/sysex-VC8.vcproj 2008-05-27 02:08:35 UTC (rev 573) @@ -0,0 +1,244 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="sysex" + ProjectGUID="{300F59F8-5E94-492B-A899-0EB2B1140E20}" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\sysexDebug" + IntermediateDirectory=".\sysexDebug" + ConfigurationType="1" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TypeLibraryName=".\sysexDebug/sysex.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\pm_common,..\porttime" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\sysexDebug/sysex.pch" + AssemblerListingLocation=".\sysexDebug/" + ObjectFile=".\sysexDebug/" + Pro... [truncated message content] |
From: <pst...@us...> - 2008-05-27 01:28:13
|
Revision: 572 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=572&view=rev Author: pstieber Date: 2008-05-26 18:28:12 -0700 (Mon, 26 May 2008) Log Message: ----------- Cleaned up some commented code. Modified Paths: -------------- trunk/jazz/src/JazzPlusPlusApplication.cpp Modified: trunk/jazz/src/JazzPlusPlusApplication.cpp =================================================================== --- trunk/jazz/src/JazzPlusPlusApplication.cpp 2008-05-27 00:42:28 UTC (rev 571) +++ trunk/jazz/src/JazzPlusPlusApplication.cpp 2008-05-27 01:28:12 UTC (rev 572) @@ -137,17 +137,10 @@ // Create the main application window. mpTrackFrame = JZProjectManager::Instance()->CreateTrackView(); -// new JZTrackFrame( -// 0, -// "Jazz++", -// gpSong, -// wxPoint(10, 10), -// wxSize(600, 400)); gpTrackFrame = mpTrackFrame; // Show it and tell the application that it's our main window -// mpTrackFrame->Show(true); SetTopWindow(mpTrackFrame); return true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-27 00:42:30
|
Revision: 571 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=571&view=rev Author: pstieber Date: 2008-05-26 17:42:28 -0700 (Mon, 26 May 2008) Log Message: ----------- Added a path to find the portmidi libraries. Modified Paths: -------------- trunk/jazz/configure.ac Modified: trunk/jazz/configure.ac =================================================================== --- trunk/jazz/configure.ac 2008-05-27 00:41:21 UTC (rev 570) +++ trunk/jazz/configure.ac 2008-05-27 00:42:28 UTC (rev 571) @@ -153,6 +153,9 @@ JAZZ_PATH=\${top_srcdir} AC_SUBST(JAZZ_PATH) +PORTMIDI_PATH=$JAZZ_PATH/portmidi +AC_SUBST(PORTMIDI_PATH) + AC_MSG_CHECKING([whether to enable debugging]) AC_ARG_ENABLE( debug, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-27 00:41:22
|
Revision: 570 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=570&view=rev Author: pstieber Date: 2008-05-26 17:41:21 -0700 (Mon, 26 May 2008) Log Message: ----------- Added some code for portmidi access on a Mac. Modified Paths: -------------- trunk/jazz/src/Project.cpp Modified: trunk/jazz/src/Project.cpp =================================================================== --- trunk/jazz/src/Project.cpp 2008-05-26 23:40:02 UTC (rev 569) +++ trunk/jazz/src/Project.cpp 2008-05-27 00:41:21 UTC (rev 570) @@ -40,7 +40,10 @@ #include "WindowsAudioInterface.h" #elif __WXGTK__ #include "AudioDriver.h" +#elif __WXMAC__ +#include "PortMidiPlayer.h" #endif + #ifdef DEV_ALSA #include "AlsaPlayer.h" #include "AlsaDriver.h" @@ -160,7 +163,7 @@ //-------------- // Linux drivers //-------------- -#ifndef __WXMSW__ +#ifdef __WXGTK__ if (gpConfig->GetValue(C_MidiDriver) == eMidiDriverOss) { #ifdef DEV_SEQUENCER2 @@ -245,7 +248,7 @@ << "Jazz will start with no play/record ability" << endl; } -#endif // !defined(__WXMSW__) +#endif // defined(__WXGTK__) #ifdef __WXMSW__ @@ -280,6 +283,17 @@ } #endif // __WXMSW__ +#ifdef __WXMAC__ + //------------------ + // Macintosh Drivers + //------------------ + mpMidiPlayer = new JZPortMidiPlayer(this); + if (!mpMidiPlayer->Installed()) + { + cout << "Jazz++ will start with no play/record ability." << endl; + } +#endif // __WXMAC__ + if (!mpMidiPlayer) { mpMidiPlayer = new tNullPlayer(this); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-26 23:40:06
|
Revision: 569 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=569&view=rev Author: pstieber Date: 2008-05-26 16:40:02 -0700 (Mon, 26 May 2008) Log Message: ----------- Added some portmidi code and options for the Mac port. Modified Paths: -------------- trunk/jazz/src/Makefile.am Modified: trunk/jazz/src/Makefile.am =================================================================== --- trunk/jazz/src/Makefile.am 2008-05-26 23:38:36 UTC (rev 568) +++ trunk/jazz/src/Makefile.am 2008-05-26 23:40:02 UTC (rev 569) @@ -3,6 +3,7 @@ bin_PROGRAMS = jazz if USE_ALSA + jazz_SOURCES = \ AboutDialog.cpp \ AlsaDriver.cpp \ @@ -81,7 +82,9 @@ Track.cpp \ TrackFrame.cpp \ TrackWindow.cpp + else + jazz_SOURCES = \ AboutDialog.cpp \ AsciiMidiFile.cpp \ @@ -132,6 +135,7 @@ PianoFrame.cpp \ PianoWindow.cpp \ Player.cpp \ +PortMidiPlayer.cpp \ Project.cpp \ ProjectManager.cpp \ PropertyListDialog.cpp \ @@ -156,6 +160,7 @@ Track.cpp \ TrackFrame.cpp \ TrackWindow.cpp + endif noinst_HEADERS = \ @@ -212,6 +217,7 @@ PianoFrame.h \ PianoWindow.h \ Player.h \ +PortMidiPlayer.h \ Project.h \ ProjectManager.h \ PropertyListDialog.h \ @@ -240,6 +246,11 @@ TrackWindow.h \ WxWidgets.h +if !USE_ALSA +jazz_LDFLAGS = -framework CoreMIDI -framework CoreAudio +jazz_LDADD = -L@PORTMIDI_PATH@/porttime -lporttime -L@PORTMIDI_PATH@/pm_mac -lportmidi +endif + # This directive defines the Jazz++ data directory. This may be a hack, but # other programs use similar techniques. # The automake info file suggests using INCLUDES for this purpose This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-26 23:38:38
|
Revision: 568 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=568&view=rev Author: pstieber Date: 2008-05-26 16:38:36 -0700 (Mon, 26 May 2008) Log Message: ----------- Added a portmidi player. Added Paths: ----------- trunk/jazz/src/PortMidiPlayer.cpp trunk/jazz/src/PortMidiPlayer.h Added: trunk/jazz/src/PortMidiPlayer.cpp =================================================================== --- trunk/jazz/src/PortMidiPlayer.cpp (rev 0) +++ trunk/jazz/src/PortMidiPlayer.cpp 2008-05-26 23:38:36 UTC (rev 568) @@ -0,0 +1,414 @@ +#include "WxWidgets.h" + +#include "PortMidiPlayer.h" +#include "TrackWindow.h" +#include "Song.h" +#include "Globals.h" + +JZPortMidiPlayer::JZPortMidiPlayer(JZSong* pSong) + : JZPlayer(pSong), + mInputDevices(), + mOutputDevices(), + mpStream(0), + mInitialized(false), + mStartTime(0), + mStartClock(0), + mTicksPerMinute(100), + mInputDevice(), + mOutputDevice(), + mInDev(-1), + mOutDev(-1) +{ + InitPM(); + mInDev = Pm_GetDefaultOutputDeviceID(); + mOutDev = Pm_GetDefaultOutputDeviceID(); + TermPM(); + + Pt_Start(1, 0, 0); + +// mOutputQueue = Pm_QueueCreate(1024, sizeof(PmEvent)); +} + +JZPortMidiPlayer::~JZPortMidiPlayer() +{ +// Pm_QueueDestroy(mOutputQueue); + TermPM(); +} + +int +JZPortMidiPlayer::Installed() +{ + return true; +} + +wxString +JZPortMidiPlayer::GetInputDeviceName() +{ + return mInputDevice; +} + +wxString +JZPortMidiPlayer::GetOutputDeviceName() +{ + return mOutputDevice; +} + + +void +JZPortMidiPlayer::SetInputDevice(const wxString & name) +{ + bool term = InitPM(); + PmDeviceID id = FindDevice(name, true); + + if (id != pmNoDevice) + { + mInputDevice = name; + } + + if (term) + { + TermPM(); + } +} + +void +JZPortMidiPlayer::SetOutputDevice(const wxString& name) +{ + bool term = InitPM(); + PmDeviceID id = FindDevice(name, false); + + if (id != pmNoDevice) + { + mOutputDevice = name; + } + + if (term) + { + TermPM(); + } +} + +int +JZPortMidiPlayer::SupportsMultipleDevices() +{ + return true; +} + +tDeviceList& +JZPortMidiPlayer::GetOutputDevices() +{ + bool term = InitPM(); + int cnt; + + cnt = Pm_CountDevices(); + + mOutputDevices.Clear(); + + for (int i = 0; i < cnt; i++) + { + const PmDeviceInfo *di = Pm_GetDeviceInfo(i); + + if (di && di->output) + { + wxString name = + wxString(di->interf, wxConvISO8859_1) + + wxT(", ") + + wxString(di->name, wxConvISO8859_1); + mOutputDevices.Add(name); + } + } + + if (term) + { + TermPM(); + } + + return mOutputDevices; +} + +tDeviceList& +JZPortMidiPlayer::GetInputDevices() +{ + bool term = InitPM(); + int cnt; + + cnt = Pm_CountDevices(); + + mInputDevices.Clear(); + + for (int i = 0; i < cnt; i++) + { + const PmDeviceInfo *di = Pm_GetDeviceInfo(i); + + if (di && di->input) + { + wxString name = + wxString(di->interf, wxConvISO8859_1) + + wxT(", ") + + wxString(di->name, wxConvISO8859_1); + mInputDevices.Add(name); + } + } + + if (term) + { + TermPM(); + } + + return mInputDevices; +} + +PmDeviceID +JZPortMidiPlayer::FindDevice(const wxString & name, bool input) +{ + int cnt = Pm_CountDevices(); + + for (int i = 0; i < cnt; i++) + { + const PmDeviceInfo *di = Pm_GetDeviceInfo(i); + + if (di && (input ? di->input : di->output)) + { + wxString n = + wxString(di->interf, wxConvISO8859_1) + + wxT(", ") + + wxString(di->name, wxConvISO8859_1); + + if (name == n) + { + return i; + } + } + } + + return pmNoDevice; +} + +int +JZPortMidiPlayer::Clock2Time(int clock) +{ + if (clock < mStartClock) + { + return mStartTime; + } + + return (int)((double)(clock - mStartClock) * 60000.0 / (double) mTicksPerMinute + mStartTime); +} + +int +JZPortMidiPlayer::Time2Clock(int time) +{ + if (time < mStartTime) + { + return mStartClock; + } + + return (int)((double)(time - mStartTime) * (double) mTicksPerMinute / 60000.0 + mStartClock); +} + +void +JZPortMidiPlayer::SetTempo(int bpm, int clock) +{ + int t1 = Clock2Time(clock); + mTicksPerMinute = bpm * Song->GetTicksPerQuarter(); + int t2 = Clock2Time(clock); + mStartTime += (t1 - t2); +} + +void +JZPortMidiPlayer::OutBreak() +{ +} + +int +JZPortMidiPlayer::OutEvent(JZEvent* pEvent, int now) +{ + PmError rc = pmNoError; + PmTimestamp t = (now ? 0 : pEvent->GetClock()); + + t = Clock2Time(t); + +#define WSHORT(a, b) \ + rc = Pm_WriteShort(mpStream, t, Pm_Message(pEvent->GetStat() | k->GetChannel(), a, b)) + + switch (pEvent->GetStat()) + { + case StatKeyOn: + { + tKeyOn *k = pEvent->IsKeyOn(); + + WSHORT(k->GetKey(), k->GetVelocity()); + } + break; + + case StatKeyOff: + { + tKeyOff *k = pEvent->IsKeyOff(); + + WSHORT(k->GetKey(), k->GetOffVelocity()); + } + break; + + case StatProgram: + { + tProgram *k = pEvent->IsProgram(); + + WSHORT(k->GetProgram(), 0); + } + break; + + case StatKeyPressure: + { + tKeyPressure *k = pEvent->IsKeyPressure(); + + WSHORT(k->GetKey(), k->GetValue()); + } + break; + + case StatChnPressure: + { + tChnPressure *k = pEvent->IsChnPressure(); + + WSHORT(k->GetValue(), 0); + } + break; + + case StatControl: + { + tControl *k = pEvent->IsControl(); + + WSHORT(k->GetControl(), k->GetValue()); + } + break; + + case StatPitch: + { + tPitch *k = pEvent->IsPitch(); + + WSHORT(k->GetValue(), 0); + } + break; + + case StatSetTempo: + { + tSetTempo *k = pEvent->IsSetTempo(); + if (k->GetClock() > 0) + { + SetTempo(k->GetBPM(), k->GetClock()); + } + } + break; + + case StatSysEx: + { + tSysEx *s = pEvent->IsSysEx(); + + unsigned char *buf = new unsigned char[s->GetLength() + 2]; + + buf[0] = 0xF0; + memcpy(&buf[1], s->GetData(), s->GetLength()); + buf[s->GetLength() + 2] = 0xf7; + rc = Pm_WriteSysEx(mpStream, t, buf); + + delete[] buf; + } + break; + + default: + break; + } + + return rc != pmNoError; +} + +int +JZPortMidiPlayer::OutEvent(JZEvent* pEvent) +{ + return OutEvent(pEvent, 0); +} + +void +JZPortMidiPlayer::OutNow(JZEvent*pEvent) +{ + OutEvent(pEvent, 1); +} + +void +JZPortMidiPlayer::StartPlay(int clock, int loopClock, int cont) +{ + bool term = InitPM(); + PmDeviceID id = FindDevice(mOutputDevice, false); + + if (id == pmNoDevice) + { + if (term) + { + TermPM(); + } + + return; + } + + printf("rc = %d %d\n", Pm_OpenOutput(&mpStream, id, NULL, 0, NULL, NULL, 100), id); + + mStartTime = Pt_Time() + 500; + mStartClock = clock; + mTicksPerMinute = Song->GetTicksPerQuarter() * Song->Speed(); + + JZPlayer::StartPlay(clock, loopClock, cont); +} + +void +JZPortMidiPlayer::StopPlay() +{ + JZPlayer::StopPlay(); + + if (mpStream) + { + Pm_Abort(mpStream); + Pm_Close(mpStream); + mpStream = NULL; + } + + TermPM(); +} + +long +JZPortMidiPlayer::GetRealTimeClock() +{ + long t = Pt_Time(); + + gpTrackWindow->NewPlayPosition(PlayLoop->Ext2IntClock(Time2Clock(t) / 48 * 48)); + + return Time2Clock(t); +} + +bool +JZPortMidiPlayer::InitPM() +{ + if (mInitialized) + { + return false; + } + + Pm_Initialize(); + + mInitialized = true; + + return true; +} + +bool +JZPortMidiPlayer::TermPM() +{ + if (!mInitialized) + { + return false; + } + + Pm_Terminate(); + + mInitialized = false; + + return true; +} Added: trunk/jazz/src/PortMidiPlayer.h =================================================================== --- trunk/jazz/src/PortMidiPlayer.h (rev 0) +++ trunk/jazz/src/PortMidiPlayer.h 2008-05-26 23:38:36 UTC (rev 568) @@ -0,0 +1,67 @@ +#ifndef JZ_PORTMIDIDRIVER_H +#define JZ_PORTMIDIDRIVER_H + +#include "Player.h" + +#include "../portmidi/pm_common/portmidi.h" +#include "../portmidi/porttime/porttime.h" + +class JZSong; +class JZEvent; + +class JZPortMidiPlayer : public JZPlayer +{ + public: + + JZPortMidiPlayer(JZSong* pSong); + + virtual ~JZPortMidiPlayer(); + + int Installed(); + int SupportsMultipleDevices(); + + virtual tDeviceList& GetInputDevices(); + wxString GetInputDeviceName(); + void SetInputDevice(const wxString& Name); + + virtual tDeviceList& GetOutputDevices(); + wxString GetOutputDeviceName(); + void SetOutputDevice(const wxString& Name); + + int OutEvent(JZEvent* pEvent, int now); + int OutEvent(JZEvent* pEvent); + void OutNow(JZEvent* pEvent); + void OutBreak(); + + void StartPlay(int Clock, int LoopClock = 0, int Continue = 0); + void StopPlay(); + + long GetRealTimeClock(); + int Clock2Time(int clock); + int Time2Clock(int time); + void SetTempo(int bpm, int clock); + + private: + + bool InitPM(); + bool TermPM(); + PmDeviceID FindDevice(const wxString & name, bool input); + + private: + + tDeviceList mInputDevices; + tDeviceList mOutputDevices; + + PortMidiStream* mpStream; + + bool mInitialized; + int mStartTime; + int mStartClock; + int mTicksPerMinute; + wxString mInputDevice; + wxString mOutputDevice; + int mInDev; + int mOutDev; +}; + +#endif // !defined(JZ_PORTMIDIDRIVER_H) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-26 21:18:35
|
Revision: 567 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=567&view=rev Author: pstieber Date: 2008-05-26 14:18:33 -0700 (Mon, 26 May 2008) Log Message: ----------- Added more portmidi files from the latest svn. Added Paths: ----------- trunk/jazz/portmidi/CHANGELOG.txt trunk/jazz/portmidi/license.txt trunk/jazz/portmidi/pm_cl/ trunk/jazz/portmidi/pm_cl/README_CL.txt trunk/jazz/portmidi/pm_cl/cffi-portmidi.lisp trunk/jazz/portmidi/pm_cl/test-no-cm.lisp trunk/jazz/portmidi/pm_linux/Makefile trunk/jazz/portmidi/portmidi.sln trunk/jazz/portmidi/portmidi.vcproj trunk/jazz/portmidi/portmusic_logo.png Added: trunk/jazz/portmidi/CHANGELOG.txt =================================================================== --- trunk/jazz/portmidi/CHANGELOG.txt (rev 0) +++ trunk/jazz/portmidi/CHANGELOG.txt 2008-05-26 21:18:33 UTC (rev 567) @@ -0,0 +1,158 @@ +/* CHANGELOG FOR PORTMIDI + * + * 17Jan07 Roger Dannenberg + * - Lots more help for Common Lisp user in pm_cl + * - Minor fix to eliminate a compiler warning + * - Went back to single library in OS X for both portmidi and porttime + * + * 16Jan07 Roger Dannenberg + * - OOPS! fixed bug where short messages all had zero data + * - Makefile.osx static library build now makes universal (i386 + ppc) + * binaries + * + * 15Jan07 Roger Dannenberg + * - multiple rewrites of sysex handling code to take care of + * error-handling, embedded messages, message filtering, + * driver bugs, and host limitations. + * - fixed windows to use dwBufferLength rather than + * dwBytesRecorded for long buffer output (fix by Nigel Brown) + * - Win32 MME code always appends an extra zero to long buffer + * output to work around a problem with earlier versions of Midi Yoke + * - Added mm, a command line Midi Monitor to pm_test suite + * - Revised copyright notice to match PortAudio/MIT license (requests + * are moved out of the license proper and into a separate paragraph) + * + * 18Oct06 Roger Dannenberg + * - replace FIFO in pmutil with Light Pipe-based multiprocessor-safe alg. + * - replace FIFO in portmidi.c with PmQueue from pmutil + * + * 07Oct06 cpr & Roger Dannenberg + * - overhaul of CoreMIDI input to handle running status and multiple + * - messages per packet, with additional error detection + * - added Leigh Smith and Rick Taube support for Common Lisp and + * - dynamic link libraries in OSX + * - initialize static global seq = NULL in pmlinuxalsa.c + * + * 05Sep06 Sebastien Frippiat + * - check if (ALSA) seq exists before closing it in pm_linuxalsa_term() + * + * 05Sep06 Andreas Micheler and Cecilio + * - fixed memory leak by freeing someo objects in pm_winmm_term() + * - and another leak by freeing descriptors in Pm_Terminate() + * + * 23Aug06 RBD + * - various minor fixes + * + * 04Nov05 Olivier Tristan + * - changes to OS X to properly retrieve real device name on CoreMidi + * + * 19Jul05 Roger Dannenberg + * - included pmBufferMaxSize in Pm_GetErrorText() + * + * 23Mar05 Torgier Strand Henriksen + * - cleaner termination of porttime thread under Linux + * + * 15Nov04 Ben Allison + * - sysex output now uses one buffer/message and reallocates buffer + * - if needed + * - filters expanded for many message types and channels + * - detailed changes are as follows: + * ------------- in pmwinmm.c -------------- + * - new #define symbol: OUTPUT_BYTES_PER_BUFFER + * - change SYSEX_BYTES_PER_BUFFER to 1024 + * - added MIDIHDR_BUFFER_LENGTH(x) to correctly count midihdr buffer length + * - change MIDIHDR_SIZE(x) to (MIDIHDR_BUFFER_LENGTH(x) + sizeof(MIDIHDR)) + * - change allocate_buffer to use new MIDIHDR_BUFFER_LENGTH macro + * - new macros for MIDIHDR_SYSEX_SIZE and MIDIHDR_SYSEX_BUFFER_LENGTH + * - similar to above, but counts appropriately for sysex messages + * - added the following members to midiwinmm_struct for sysex data: + * - LPMIDIHDR *sysex_buffers; ** pool of buffers for sysex data ** + * - int num_sysex_buffers; ** how many sysex buffers ** + * - int next_sysex_buffer; ** index of next sysexbuffer to send ** + * - HANDLE sysex_buffer_signal; ** to wait for free sysex buffer ** + * - duplicated allocate_buffer, alocate_buffers and get_free_output_buffer + * - into equivalent sysex_buffer form + * - changed winmm_in_open to initialize new midiwinmm_struct members and + * - to use the new allocate_sysex_buffer() function instead of + * - allocate_buffer() + * - changed winmm_out_open to initialize new members, create sysex buffer + * - signal, and allocate 2 sysex buffers + * - changed winmm_out_delete to free sysex buffers and shut down the sysex + * - buffer signal + * - create new function resize_sysex_buffer which resizes m->hdr to the + * - passed size, and corrects the midiwinmm_struct accordingly. + * - changed winmm_write_byte to use new resize_sysex_buffer function, + * - if resize fails, write current buffer to output and continue + * - changed winmm_out_callback to use buffer_signal or sysex_buffer_signal + * - depending on which buffer was finished + * ------------- in portmidi.h -------------- + * - added pmBufferMaxSize to PmError to indicate that the buffer would be + * - too large for the underlying API + * - added additional filters + * - added prototype, documentation, and helper macro for Pm_SetChannelMask + * ------------- in portmidi.c -------------- + * - added pm_status_filtered() and pm_realtime_filtered() functions to + * separate filtering logic from buffer logic in pm_read_short + * - added Pm_SetChannelMask function + * - added pm_channel_filtered() function + * ------------- in pminternal.h -------------- + * - added member to PortMidiStream for channel mask + * + * 25May04 RBD + * - removed support for MIDI THRU + * - moved filtering from Pm_Read to pm_enqueue to avoid buffer ovfl + * - extensive work on Mac OS X port, especially sysex and error handling + * + * 18May04 RBD + * - removed side-effects from assert() calls. Now you can disable assert(). + * - no longer check pm_hosterror everywhere, fixing a bug where an open + * failure could cause a write not to work on a previously opened port + * until you call Pm_GetHostErrorText(). + * 16May04 RBD and Chris Roberts + * - Some documentation wordsmithing in portmidi.h + * - Dynamically allocate port descriptor structures + * - Fixed parameter error in midiInPrepareBuffer and midiInAddBuffer. + * + * 09Oct03 RBD + * - Changed Thru handling. Now the client does all the work and the client + * must poll or read to keep thru messages flowing. + * + * 31May03 RBD + * - Fixed various bugs. + * - Added linux ALSA support with help from Clemens Ladisch + * - Added Mac OS X support, implemented by Jon Parise, updated and + * integrated by Andrew Zeldis and Zico Kolter + * - Added latency program to build histogram of system latency using PortTime. + * + * 30Jun02 RBD Extensive rewrite of sysex handling. It works now. + * Extensive reworking of error reporting and error text -- no + * longer use dictionary call to delete data; instead, Pm_Open + * and Pm_Close clean up before returning an error code, and + * error text is saved in a system-independent location. + * Wrote sysex.c to test sysex message handling. + * + * 15Jun02 BCT changes: + * - Added pmHostError text handling. + * - For robustness, check PortMidi stream args not NULL. + * - Re-C-ANSI-fied code (changed many C++ comments to C style) + * - Reorganized code in pmwinmm according to input/output functionality (made + * cleanup handling easier to reason about) + * - Fixed Pm_Write calls (portmidi.h says these should not return length but Pm_Error) + * - Cleaned up memory handling (now system specific data deleted via dictionary + * call in PortMidi, allows client to query host errors). + * - Added explicit asserts to verify various aspects of pmwinmm implementation behaves as + * logic implies it should. Specifically: verified callback routines not reentrant and + * all verified status for all unchecked Win32 MMedia API calls perform successfully + * - Moved portmidi initialization and clean-up routines into DLL to fix Win32 MMedia API + * bug (i.e. if devices not explicitly closed, must reboot to debug application further). + * With this change, clients no longer need explicitly call Pm_Initialize, Pm_Terminate, or + * explicitly Pm_Close open devices when using WinMM version of PortMidi. + * + * 23Jan02 RBD Fixed bug in pmwinmm.c thru handling + * + * 21Jan02 RBD Added tests in Pm_OpenInput() and Pm_OpenOutput() to prevent + * opening an input as output and vice versa. + * Added comments and documentation. + * Implemented Pm_Terminate(). + * + */ Added: trunk/jazz/portmidi/license.txt =================================================================== --- trunk/jazz/portmidi/license.txt (rev 0) +++ trunk/jazz/portmidi/license.txt 2008-05-26 21:18:33 UTC (rev 567) @@ -0,0 +1,40 @@ +/* + * PortMidi Portable Real-Time MIDI Library + * + * license.txt -- a copy of the PortMidi copyright notice and license information + * + * Latest version available at: http://www.cs.cmu.edu/~music/portmidi/ + * + * Copyright (c) 1999-2000 Ross Bencina and Phil Burk + * Copyright (c) 2001-2006 Roger B. Dannenberg + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * The text above constitutes the entire PortMidi license; however, + * the PortMusic community also makes the following non-binding requests: + * + * Any person wishing to distribute modifications to the Software is + * requested to send the modifications to the original developer so that + * they can be incorporated into the canonical version. It is also + * requested that these non-binding requests be included along with the + * license above. + */ Added: trunk/jazz/portmidi/pm_cl/README_CL.txt =================================================================== --- trunk/jazz/portmidi/pm_cl/README_CL.txt (rev 0) +++ trunk/jazz/portmidi/pm_cl/README_CL.txt 2008-05-26 21:18:33 UTC (rev 567) @@ -0,0 +1,104 @@ +README_CL.txt for PortMidi +Roger B. Dannenberg +17 Jan 2007 + +This is a Common Lisp interface to PortMidi. + +On Mac OSX, you need to build PortMidi as a dynamic link library +before you can use PortMidi from Common Lisp. + +You can build PortMidi as a dynamic link library by running this: + +cd portmidi +make -F pm_mac/Makefile.osx install-with-xcode + +This is just a shortcut for: + +cd portmidi/pm_mac +sudo xcodebuild -project pm_mac.xcodeproj -configuration Deployment install DSTROOT=/ + +You can check the file and the architecture for which it is built using: + file /usr/local/lib/libportmidi.dylib + +If you've done this install of portmidi, then you should also have + /usr/local/include/portmidi.h +This will be necessary to successfully build the cffi interface below. + +To test PortMidi with Common Lisp, I (RBD) am using SBCL, which I +downloaded from http://prdownloads.sourceforge.net/sbcl. Currently, I use + sbcl-0.9.17-x86-darwin-binary.tar.bz2 +To install this, I unpacked it by just double-clicking in the finder. Then, +from a command window, I became root using "sudo sh", and then typed: +# INSTALL_ROOT=/usr/local +# sh install.sh +# exit + +I also downloaded cffi-061012.tar.gz from + http://common-lisp.net/project/cffi/tarballs/?M=D + +To compile cffi, use the following, where "/Lisp/cffi/" is replaced by +the actual directory of cffi, e.g. + "/Users/rbd/sbcl-0.9.17-x86-darwin/cffi-061012": + +% sbcl +* (require 'asdf) +* (push "/Lisp/cffi/" asdf:*central-registry*) +* (asdf:oos 'asdf:load-op :cffi) +* (quit) + +Download Common Music's portmidi module from cvs and build the c side: +(Replace "/Lisp" with your lisp directory, e.g. +"/Users/rbd/sbcl-0.9.17-x86-darwin". These cvs commands will create +a new directory, portmidi.) + +% cd /Lisp +% export CVSROOT=:pserver:ano...@co...:/cvsroot/commonmusic +% cvs login # press Return at password prompt +% cvs checkout portmidi +% cd portmidi +% ./configure +% make +% cd .. + +Now compile/load the portmidi module just like cffi. Again, change +"/Lisp/cffi/" and "/Lisp/portmidi" to correspond to your local file system. +(Note that /Lisp becomes your lisp directory, and "cffi" becomes your +cffi folder name, e.g. "cffi-061012". + +% sbcl +* (require 'asdf) +* (push "/Lisp/cffi/" asdf:*central-registry*) +* (asdf:oos 'asdf:load-op :cffi) +* (push "/Lisp/portmidi/" asdf:*central-registry*) +* (asdf:oos 'asdf:load-op :portmidi) + +Look in the file /Lisp/portmidi/test.lisp for a test of the lisp interface to +portmidi. For example, while still running sbcl: + +* (pm:portmidi) ; initialize portmidi +* (pt:start) ; start time +* (pt:time) ; get time +* (pprint (pm:GetDeviceInfo)) ; get list of devices +((:ID 0 :NAME "IAC Driver Bus 1" :TYPE :INPUT :OPEN NIL) + (:ID 1 :NAME "IAC Driver Bus 1" :TYPE :OUTPUT :OPEN NIL)) + +Notice that test.lisp assumes MIDI input devices are connected +and uses some hard-wired device numbers, so it may not run +as is without error. + +Since test.lisp uses some Common Music calls, I (RBD) wrote a +simpler test, test-no-cm.lisp, which is in the same folder as +this (README_CL.txt) file. To use it, first check that the +values for outid (4) and inid (1) actually match PortMidi device +id's for output and input devices, and make sure the input +device is a keyboard that can generate a middle-C -- otherwise +the program will hang waiting for input. Run sbcl from this +pm_cl folder, and type: + +(load "test-no-cm.lisp") + +The program pauses frequently by calling (READ), so you +should type t or something, then <RETURN> to continue. + + +(Thanks to Leigh Smith and Rick Taube) Added: trunk/jazz/portmidi/pm_cl/cffi-portmidi.lisp =================================================================== --- trunk/jazz/portmidi/pm_cl/cffi-portmidi.lisp (rev 0) +++ trunk/jazz/portmidi/pm_cl/cffi-portmidi.lisp 2008-05-26 21:18:33 UTC (rev 567) @@ -0,0 +1,387 @@ +;;; ********************************************************************** +;;; Copyright (C) 2005 Heinrich Taube, <taube (at) uiuc (dot) edu> +;;; +;;; This program is free software; you can redistribute it and/or +;;; modify it under the terms of the Lisp Lesser Gnu Public License. +;;; See http://www.cliki.net/LLGPL for the text of this agreement. +;;; ********************************************************************** + +;;; $Name: rel-2_0_0 $ +;;; $Revision: 1.1 $ +;;; $Date: 2006/04/30 15:00:28 $ + +;;; A CFFI interface to Portmidi. Should run in most Common Lisp +;;; implementations on Linux, OS X and Windows. For information about +;;; CFFI see http://common-lisp.net/project/cffi/ + +(in-package :cl-user) + +(defvar *libportmidi* + (let ((type #+(or darwin macos macosx) "dylib" + #+(or linux linux-target (and unix pc386) freebsd) "so" + #+(or win32 microsoft-32 cygwin) "dll") + (paths (list "/usr/lib/" "/usr/local/lib/" *load-pathname*))) + (loop for d in paths + for p = (make-pathname :name "libportmidi" :type type + :defaults d) + when (probe-file p) do (return p) + finally + (error "Library \"portmidi.~A\" not found. Fix *libportmidi*." + type)))) + +;;; linux: guess i need to load porttime.so first (?) osx doesnt seem +;;; to need this lib at all... + +#+(or linux (and clisp unix (not macos))) +(let ((lpt (merge-pathnames "libporttime" *libportmidi*))) + (if (probe-file lpt) + (cffi:load-foreign-library lpt) + (error "Porttime: ~a not found. Fix *libportmidi* path." lpt))) + +;;; load portmidi lib + +(cffi:load-foreign-library *libportmidi*) + +(defpackage :portmidi + (:use :common-lisp) + (:nicknames :pm :pt) + (:shadow :initialize :terminate :time :start :stop :abort + :close :read :write :poll) + (:export :Initialize :Terminate + :HasHostError :GetErrorText :GetHostErrorText + :CountDevices :GetDefaultInputDeviceID + :GetDefaultOutputDeviceID :GetDeviceInfo + :Message :Message.status :Message.data1 :Message.data2 + :Event.message :Event.timestamp + ;; event buffers added to api + :EventBufferNew :EventBufferFree :EventBufferElt + :EventBufferMap + :OpenInput :OpenOutput :SetFilter :SetChannelMask + :Abort :Close :Read :Write :Poll :WriteShort :WriteSysex + ;; filtering constants + :filt-active :filt-sysex :filt-clock :filt-play :filt-f9 + :filt-fd :filt-reset :filt-note :filt-channel-aftertouch + :filt-poly-aftertouch :filt-program :filt-control + :filt-pitchbend :filt-mtc :filt-song-position + :filt-song-select :filt-tune :filt-tick :filt-undefined + :filt-realtime :filt-aftertouch :filt-systemcommon + ;; porttime. + :Start :Stop :Started :Time + ;; initialization insurers added to api + :portmidi :*portmidi* )) + +(in-package :portmidi) + +(cffi:defcstruct pm-device-info + (struct-version :int) + (interf :pointer) + (name :pointer) + (input :int) + (output :int) + (opened :int)) + +(cffi:define-foreign-type pm-message () ':long) +(cffi:define-foreign-type pm-timestamp () ':long) +(cffi:defcstruct pm-event + (message pm-message) + (timestamp pm-timestamp)) +(cffi:define-foreign-type pm-error () ':int) + +(cffi:define-foreign-type port-midi-stream () ':void) +(cffi:define-foreign-type pm-device-id () ':int) +(cffi:define-foreign-type pm-time-proc-ptr () ':pointer) +(cffi:defcfun ("Pm_WriteSysEx" pm-write-sys-ex) pm-error (stream :pointer) (when pm-timestamp) (msg :pointer)) +(cffi:defcfun ("Pm_WriteShort" pm-write-short) pm-error (stream :pointer) (when pm-timestamp) (msg :long)) +(cffi:defcfun ("Pm_Write" pm-write) pm-error (stream :pointer) (buffer :pointer) (length :long)) +(cffi:defcfun ("Pm_Poll" pm-poll) pm-error (stream :pointer)) +(cffi:defcfun ("Pm_Read" pm-read) pm-error (stream :pointer) (buffer :pointer) (length :long)) +(cffi:defcfun ("Pm_Close" pm-close) pm-error (stream :pointer)) +(cffi:defcfun ("Pm_Abort" pm-abort) pm-error (stream :pointer)) +;(cffi:defcfun ("Pm_SetChannelMask" pm-set-channel-mask) pm-error (stream :pointer) (mask :int)) +(cffi:defcfun ("Pm_SetFilter" pm-set-filter) pm-error (stream :pointer) (filters :long)) +(cffi:defcfun ("Pm_OpenOutput" pm-open-output) pm-error (stream :pointer) (output-device pm-device-id) (output-driver-info :pointer) (buffer-size :long) (time-proc pm-time-proc-ptr) (time-info :pointer) (latency :long)) +(cffi:defcfun ("Pm_OpenInput" pm-open-input) pm-error (stream :pointer) (input-device pm-device-id) (input-driver-info :pointer) (buffer-size :long) (time-proc pm-time-proc-ptr) (time-info :pointer)) +(cffi:defcfun ("Pm_GetDeviceInfo" pm-get-device-info) :pointer (id pm-device-id)) +(cffi:defcfun ("Pm_GetDefaultOutputDeviceID" pm-get-default-output-device-id) pm-device-id) +(cffi:defcfun ("Pm_GetDefaultInputDeviceID" pm-get-default-input-device-id) pm-device-id) +(cffi:defcfun ("Pm_CountDevices" pm-count-devices) :int) +(cffi:defcfun ("Pm_GetHostErrorText" pm-get-host-error-text) :void (msg :pointer) (len :unsigned-int)) +(cffi:defcfun ("Pm_GetErrorText" pm-get-error-text) :pointer (errnum pm-error)) +(cffi:defcfun ("Pm_HasHostError" pm-has-host-error) :int (stream :pointer)) +(cffi:defcfun ("Pm_Terminate" pm-terminate) pm-error) +(cffi:defcfun ("Pm_Initialize" pm-initialize) pm-error) + +;;; porttime.h + +(cffi:define-foreign-type pt-error () ':int) +(cffi:define-foreign-type pt-timestamp () ':long) +(cffi:defcfun ("Pt_Start" pt-start) pt-error (a :int) (b :pointer) (c :pointer)) +(cffi:defcfun ("Pt_Stop" pt-stop) pt-error ) +(cffi:defcfun ("Pt_Started" pt-started) :int) +(cffi:defcfun ("Pt_Time" pt-time) pt-timestamp) + +(defconstant true 1) +(defconstant false 0) +(defconstant pmNoError 0) +(defconstant pmHostError -10000) +(defconstant pm-no-device -1) +(defconstant pm-default-sysex-buffer-size 1024) +(defconstant filt-active 1) +(defconstant filt-sysex 2) +(defconstant filt-clock 4) +(defconstant filt-play 8) +(defconstant filt-f9 16) +(defconstant filt-fd 32) +(defconstant filt-reset 64) +(defconstant filt-note 128) +(defconstant filt-channel-aftertouch 256) +(defconstant filt-poly-aftertouch 512) +(defconstant filt-program 1024) +(defconstant filt-control 2048) +(defconstant filt-pitchbend 4096) +(defconstant filt-mtc 8192) +(defconstant filt-song-position 16384) +(defconstant filt-song-select 32768) +(defconstant filt-tune 65536) +(defconstant filt-tick filt-f9) +(defconstant filt-undefined (logior filt-f9 filt-fd)) +(defconstant filt-realtime (logior filt-active filt-sysex + filt-clock filt-play + filt-undefined filt-reset)) +(defconstant filt-aftertouch (logior filt-channel-aftertouch + filt-poly-aftertouch )) +(defconstant filt-systemcommon (logior filt-mtc filt-song-position + filt-song-select filt-tune)) +(defvar *portmidi* nil) ; t if loaded + +;;; +;;; utils +;;; + +(defvar host-error-text (make-string 256 :initial-element #\*)) + +(defmacro with-pm-error (form) + (let ((v (gensym))) + `(let ((,v ,form)) + (if (not (= ,v pmNoError)) + (if (= ,v pmHostError) + (cffi:with-foreign-string (host-error host-error-text) + (pm-get-host-error-text host-error + (length host-error-text)) + (error "Host error is: ~a" + (cffi:foreign-string-to-lisp host-error))) + (error (cffi:foreign-string-to-lisp + (pm-get-error-text ,v)))) + ,v)))) + +(defun portmidi () + ;; initializer, call before using lib + (or *portmidi* + (progn (pm-initialize) + (setq *portmidi* t)))) + +(defun Message (status data1 data2) + ;; portmidi messages are just unsigneds + (logior (logand (ash data2 16) #xFF0000) + (logand (ash data1 08) #xFF00) + (logand status #xFF))) + +(defun Message.status (m) + (logand m #xFF)) + +(defun Message.data1 (m) + (logand (ash m -08) #xFF)) + +(defun Message.data2 (m) + (logand (ash m -16) #xFF)) + +;;; accessors + +(defun DeviceInfo.interf (ptr) + (cffi:foreign-string-to-lisp + (cffi:foreign-slot-value ptr 'pm-device-info 'interf))) + +(defun DeviceInfo.name (ptr) + (cffi:foreign-string-to-lisp + (cffi:foreign-slot-value ptr 'pm-device-info 'name))) + +(defun DeviceInfo.input (ptr) + (if (= (cffi:foreign-slot-value ptr 'pm-device-info 'input) 0) + nil + t)) + +(defun DeviceInfo.output (ptr) + (if (= (cffi:foreign-slot-value ptr 'pm-device-info 'output) 0) + nil + t)) + +(defun DeviceInfo.opened (ptr) + (if (= (cffi:foreign-slot-value ptr 'pm-device-info 'opened) 0) + nil + t)) + +(defun Event.message (e &optional (v nil vp)) + (if vp + (progn + (setf (cffi:foreign-slot-value e 'pm-event 'message) v) + v) + (cffi:foreign-slot-value e 'pm-event 'message))) + +(defun Event.timestamp (e &optional (v nil vp)) + (if vp + (progn + (setf (cffi:foreign-slot-value e 'pm-event 'timestamp) v) + v) + (cffi:foreign-slot-value e 'pm-event 'timestamp))) + +;;; functions + +(defun Initialize () + (with-pm-error (pm-initialize))) + +(defun terminate () + (with-pm-error (pm-terminate))) + + +(defun HasHostError (pms) + (pm-has-host-error pms)) + +(defun GetErrorText (err) + (pm-get-error-text err)) + +; how do i do this? +;(progn +; (defalien "pm-GetHostErrorText" void (a c-string) (b unsigned-int)) +; (defun GetHostErrorText () +; (pm-GetHostErrorText 256))) + +(defun CountDevices () + (portmidi) + (pm-count-devices )) + +(defun GetDefaultInputDeviceID () + (let ((id (pm-get-default-input-device-id ))) + (if (= id pm-no-device) nil id))) + +(defun GetDefaultOutputDeviceID () + (let ((id (pm-get-default-output-device-id ))) + (if (= id pm-no-device) nil id))) + +;replaced by lispy version end of file. +;(defun GetDeviceInfo (id) (pm-get-device-info id)) + +(defun OpenInput (device bufsiz) + ;; portmidi: timer must be running before opening + (unless (Started) (Start)) + (cffi:with-foreign-object (p1 :pointer) + (let ((err (pm-open-input p1 device (cffi:null-pointer) + bufsiz (cffi:null-pointer) (cffi:null-pointer)))) + (if (= err pmNoError) + (cffi:mem-ref p1 :pointer) + (error (pm-get-error-text err)))))) + +(defun OpenOutput (device bufsiz latency) + (unless (Started) (Start)) + (cffi:with-foreign-object (p1 :pointer) ;(p (* PortMidi)) + (let ((err (pm-open-output p1 device (cffi:null-pointer) + bufsiz (cffi:null-pointer) (cffi:null-pointer) + latency))) + (if (= err pmNoError) + (cffi:mem-ref p1 :pointer) + (error (pm-get-error-text err)))))) + +(defun SetFilter (a filts) + (with-pm-error + (pm-set-filter a filts))) + +;(defun SetChannelMask (pms mask) +; (with-pm-error (pm-set-channel-mask pms mask))) + +(defun Abort (pms) + (with-pm-error (pm-abort pms))) + +(defun Close (pms) + (with-pm-error (pm-close pms))) + +(defun EventBufferFree (buf) + (cffi:foreign-free buf)) + +(defun EventBufferNew (len) + (cffi:foreign-alloc 'pm-event :count len)) + +(defun EventBufferElt (buf i) + ;; buf is POINTER to buf + (cffi:mem-aref buf 'pm-event i)) + +(defun EventBufferSet (buffer index timestamp message) + (setf (cffi:foreign-slot-value + (cffi:mem-aref buffer 'pm-event index) 'pm-event 'timestamp) + timestamp) + (setf (cffi:foreign-slot-value + (cffi:mem-aref buffer 'pm-event index) 'pm-event 'message) + message) + (values)) + +(defun EventBufferMap (fn buf end) + (loop for i below end + for e = (EventBufferElt buf i) + do (funcall fn (Event.message e) (Event.timestamp e))) + (values)) + +(defun Read (pms *evbuf len) + (let ((res (pm-read pms *evbuf len))) + (if (< res 0) + (error (pm-get-error-text res)) + res))) + +(defun Poll (pms) + (let ((res (pm-poll pms))) + (cond ((= res 0) nil) + ((= res 1) t) + (t (error (pm-get-error-text res)))))) + +(defun Write (pms *evbuf len) + (with-pm-error (pm-write pms *evbuf len))) + +(defun WriteShort (pms when msg) + (with-pm-error (pm-write-short pms when msg))) + +(defun WriteSysex (pms when string) + (cffi:with-foreign-string (ptr string) + (with-pm-error (pm-write-sys-ex pms when ptr)))) + +;;; porttime.h + +(defun Started () + (let ((res (pt-started))) + (if (= res false) nil t))) + +(defun Start () + ;; NB: This has to be called before opening output or input. + ;; it seems that if its called 2x we get an error. + (unless (Started) + (with-pm-error (pt-start 1 (cffi:null-pointer) (cffi:null-pointer)))) + (values)) + +(defun Stop () + (when (Started) + (with-pm-error (pt-stop))) + (values)) + +(defun Time () + (pt-time)) + +(defun GetDeviceInfo (&optional id) + (flet ((getone (id) + (let ((d (pm-get-device-info id))) + (list :id id + :name (DeviceInfo.name d) + :type (if (DeviceInfo.input d) ':input ':output) + :open (DeviceInfo.opened d))))) + ;; make sure lib is initialized before checking devices + (portmidi) + (if id (getone id) + (loop for i below (CountDevices) + collect (getone i))))) + +(pushnew ':portmidi *features*) Added: trunk/jazz/portmidi/pm_cl/test-no-cm.lisp =================================================================== --- trunk/jazz/portmidi/pm_cl/test-no-cm.lisp (rev 0) +++ trunk/jazz/portmidi/pm_cl/test-no-cm.lisp 2008-05-26 21:18:33 UTC (rev 567) @@ -0,0 +1,112 @@ +;; this is a half-baked sequence of PortMidi calls to test the interface +;; No calls to Common Music are made, hence test-no-cm.lisp + +; setup cffi if it has not been done already +(if (not (boundp '*clpath*)) + (load "setup-pm.lisp")) + +(defun println (s) (print s) (terpri)) + +;; initialize portmidi lib +(pm:portmidi) +;; timer testing +(pt:Start ) +(pt:Started) +(format t "time is ~A, type something~%" (pt:Time)) +(read) +(format t "time is ~A, type something~%" (pt:Time)) +(read) +(pt:Time) +(format t "time is ~A, type something~%" (pt:Time)) + +;; device testing +(pm:CountDevices) +(pprint (pm:GetDeviceInfo )) +(defparameter inid (pm:GetDefaultInputDeviceID )) +(pm:GetDeviceInfo inid) +(defparameter outid (pm:GetDefaultOutputDeviceID )) +(pm:GetDeviceInfo outid) +;; output testing +(defparameter outid 4) ; 4 = my SimpleSynth +(defparameter outdev (pm:OpenOutput outid 100 1000)) +(pm:getDeviceInfo outid) ; :OPEN should be T +;; message tests +(defun pm (m &optional (s t)) + (format s "#<message :op ~2,'0x :ch ~2,'0d :data1 ~3,'0d :data2 ~3,'0d>" + (ash (logand (pm:Message.status m) #xf0) -4) + (logand (pm:Message.status m) #x0f) + (pm:Message.data1 m) + (pm:Message.data2 m))) +(defparameter on (pm:message #b10010000 60 64)) +(terpri) +(pm on) +(pm:Message.status on) +(logand (ash (pm:Message.status on) -4) #x0f) +(pm:Message.data1 on) +(pm:Message.data2 on) +(pm:WriteShort outdev (+ (pm:time) 100) on) +(defparameter off (pm:message #b10000000 60 64)) +(terpri) +(pm off) +(terpri) +(println "type something for note off") +(read) +(pm:WriteShort outdev (+ (pm:time) 100) off) +(println "type something to close output device") +(read) +(pm:Close outdev) +;; event buffer testing +(defparameter buff (pm:EventBufferNew 8)) +(loop for i below 8 for x = (pm:EventBufferElt buff i) + ;; set buffer events + do + (pm:Event.message x (pm:message #b1001000 (+ 60 i) (+ 100 i))) + (pm:Event.timestamp x (* 1000 i))) +(loop for i below 8 for x = (pm:EventBufferElt buff i) + ;; check buffer contents + collect (list (pm:Event.timestamp x) + (pm:Message.data1 (pm:Event.message x)) + (pm:Message.data2 (pm:Event.message x)))) +(pm:EventBufferFree buff) +;; input testing -- requires external midi keyboard +(println (pm:GetDeviceInfo )) +(defparameter inid 1) ; 1 = my external keyboard +(defparameter indev (pm:OpenInput inid 256)) +(pm:GetDeviceInfo inid) ; :OPEN should be T +(pm:SetFilter indev pm:filt-realtime) ; ignore active sensing etc. +(println "poll says:") +(println (pm:Poll indev)) +(println "play midi keyboard and type something") +(read) +;; +;; ...play midi keyboard, then ... +;; +(println "poll says") +(println (pm:Poll indev)) +(defparameter buff (pm:EventBufferNew 32)) +(defparameter num (pm:Read indev buff 32)) +(println "pm:Read gets") +(println num) +(println "input messages:") +(pm:EventBufferMap (lambda (a b) b (terpri) (pm a)) + buff num) +(pm:Poll indev) + +(println "play keyboard, to stop, play middle-C") + +;;; recv testing + +(defparameter pitch 0) +(loop while (/= pitch 60) do + (let ((n (pm:Read indev buff 1))) + (cond ((= n 1) + (pm:EventBufferMap + (lambda (a b) + b (pm a) (terpri) + (setf pitch (pm:Message.data1 a))) + buff n))))) + +(pm:EventBufferFree buff) +(pm:Close indev) + + Added: trunk/jazz/portmidi/pm_linux/Makefile =================================================================== --- trunk/jazz/portmidi/pm_linux/Makefile (rev 0) +++ trunk/jazz/portmidi/pm_linux/Makefile 2008-05-26 21:18:33 UTC (rev 567) @@ -0,0 +1,100 @@ +# MAKEFILE FOR PORTMIDI AND PORTTIME + +# NOTE: make should be run from the portmidi directory, but this +# Makefile is in pm_linux, so you should run: +# make -f pm_linux/Makefile +# I suggest putting this command line into a script or alias, e.g. +# do this: +#----------------- +# cd; cd portmidi; cat > m +# make -f pm_linux/Makefile +# <CONTROL-D> +# chmod +x m +#----------------- +# Now you can just type ./m to run make. (the script "m" is not +# part of PortMidi because it is different for OS X and it's so +# simple to create.) + +# For debugging, define PM_CHECK_ERRORS +# Define NEWBUFFER to use new FIFO code that is multiprocessor safe +# (Besides, it looks like old code (non-NEWBUFFER) is broken now. -RBD) +PMFLAGS = -DPM_CHECK_ERRORS -DNEWBUFFER +# Otherwise do not define PM_CHECK_ERRORS +# PMFLAGS = -DNEWBUFFER + +# Use this for linux alsa (0.9x) version +versions = pm_linux/pmlinuxalsa.o +ALSALIB = -lasound +VFLAGS = -DPMALSA + +# Use this for null (a dummy implementation for no Midi I/O: +# versions = pmlinuxnull.o +# ALSALIB = +# VFLAGS = -DPMNULL + +pmlib = pm_linux/libportmidi.a + +ptlib = porttime/libporttime.a + +CC = gcc $(VFLAGS) $(PMFLAGS) -g -Ipm_common -Iporttime + +pmobjects = pm_common/pmutil.o $(versions) pm_linux/pmlinux.o \ + pm_common/portmidi.o + +ptobjects = porttime/porttime.o porttime/ptlinux.o + +current: all + +all: $(pmlib) $(ptlib) pm_test/test pm_test/sysex pm_test/midithread \ + pm_test/latency pm_test/midithru pm_test/qtest pm_test/mm + +$(pmlib): pm_linux/Makefile $(pmobjects) + ar -cr $(pmlib) $(pmobjects) + +$(ptlib): pm_linux/Makefile $(ptobjects) + ar -cr $(ptlib) $(ptobjects) + +pm_linux/pmlinuxalsa.o: pm_linux/Makefile pm_linux/pmlinuxalsa.c pm_linux/pmlinuxalsa.h + $(CC) -c pm_linux/pmlinuxalsa.c -o pm_linux/pmlinuxalsa.o + +pm_test/test: pm_linux/Makefile pm_test/test.o $(pmlib) $(ptlib) + $(CC) pm_test/test.o -o pm_test/test $(pmlib) $(ptlib) $(ALSALIB) + +pm_test/sysex: pm_linux/Makefile pm_test/sysex.o $(pmlib) $(ptlib) + $(CC) pm_test/sysex.o -o pm_test/sysex $(pmlib) $(ptlib) $(ALSALIB) + +pm_test/midithread: pm_linux/Makefile pm_test/midithread.o $(pmlib) $(ptlib) + $(CC) pm_test/midithread.o -o pm_test/midithread \ + $(pmlib) $(ptlib) $(ALSALIB) + +pm_test/latency: pm_linux/Makefile $(ptlib) pm_test/latency.o + $(CC) pm_test/latency.o -o pm_test/latency $(pmlib) $(ptlib) \ + $(ALSALIB) -lpthread -lm + +pm_test/midithru: pm_linux/Makefile $(ptlib) pm_test/midithru.o + $(CC) pm_test/midithru.o -o pm_test/midithru $(pmlib) $(ptlib) \ + $(ALSALIB) -lpthread -lm + +pm_test/mm: pm_linux/Makefile $(ptlib) pm_test/mm.o + $(CC) pm_test/mm.o -o pm_test/mm $(pmlib) $(ptlib) \ + $(ALSALIB) -lpthread -lm + +porttime/ptlinux.o: pm_linux/Makefile porttime/ptlinux.c + $(CC) -c porttime/ptlinux.c -o porttime/ptlinux.o + +pm_test/qtest: pm_linux/Makefile pm_test/qtest.o $(pmlib) $(ptlib) + $(CC) pm_test/qtest.o -o pm_test/qtest $(pmlib) $(ptlib) $(ALSALIB) + +clean: + rm -f *.o *~ core* */*.o */*.so */*~ */core* pm_test/*/pm_dll.dll + rm -f *.opt *.ncb *.plg pm_win/Debug/pm_dll.lib pm_win/Release/pm_dll.lib + rm -f pm_test/*.opt pm_test/*.ncb + +cleaner: clean + +cleanest: cleaner + rm -f $(pmlib) $(ptlib) pm_test/test pm_test/sysex pm_test/midithread + rm -f pm_test/latency pm_test/midithru pm_test/qtest pm_test/mm + +backup: cleanest + cd ..; zip -r portmidi.zip portmidi Property changes on: trunk/jazz/portmidi/pm_linux/Makefile ___________________________________________________________________ Name: svn:executable + * Added: trunk/jazz/portmidi/portmidi.sln =================================================================== --- trunk/jazz/portmidi/portmidi.sln (rev 0) +++ trunk/jazz/portmidi/portmidi.sln 2008-05-26 21:18:33 UTC (rev 567) @@ -0,0 +1,101 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pm_dll", "pm_win\pm_dll.vcproj", "{6573A21B-6AE4-4084-A7AC-2691B611DA45}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portmidi", "portmidi.vcproj", "{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" + ProjectSection(ProjectDependencies) = postProject + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "porttime", "porttime\porttime.vcproj", "{338224B8-D575-408D-BACF-95C557B429BE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "latency", "pm_test\latency.vcproj", "{EDC3A027-917B-4D23-AE70-73C409B47F85}" + ProjectSection(ProjectDependencies) = postProject + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "midithread", "pm_test\midithread.vcproj", "{4E555AA6-B348-41C9-A685-0B76149BBBAF}" + ProjectSection(ProjectDependencies) = postProject + {6573A21B-6AE4-4084-A7AC-2691B611DA45} = {6573A21B-6AE4-4084-A7AC-2691B611DA45} + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "midithru", "pm_test\midithru.vcproj", "{B4B4240D-7022-4C47-838F-913B4878E938}" + ProjectSection(ProjectDependencies) = postProject + {6573A21B-6AE4-4084-A7AC-2691B611DA45} = {6573A21B-6AE4-4084-A7AC-2691B611DA45} + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sysex", "pm_test\sysex.vcproj", "{300F59F8-5E94-492B-A899-0EB2B1140E20}" + ProjectSection(ProjectDependencies) = postProject + {6573A21B-6AE4-4084-A7AC-2691B611DA45} = {6573A21B-6AE4-4084-A7AC-2691B611DA45} + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "pm_test\test.vcproj", "{49FA3196-A8F8-4E22-98C3-F3A5197CD06D}" + ProjectSection(ProjectDependencies) = postProject + {6573A21B-6AE4-4084-A7AC-2691B611DA45} = {6573A21B-6AE4-4084-A7AC-2691B611DA45} + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} = {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A} + {338224B8-D575-408D-BACF-95C557B429BE} = {338224B8-D575-408D-BACF-95C557B429BE} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qtest", "pm_test\qtest.vcproj", "{8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mm", "pm_test\mm.vcproj", "{2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug|Win32.ActiveCfg = Debug|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Debug|Win32.Build.0 = Debug|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release|Win32.ActiveCfg = Release|Win32 + {6573A21B-6AE4-4084-A7AC-2691B611DA45}.Release|Win32.Build.0 = Release|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug|Win32.ActiveCfg = Debug|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Debug|Win32.Build.0 = Debug|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release|Win32.ActiveCfg = Release|Win32 + {33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}.Release|Win32.Build.0 = Release|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug|Win32.ActiveCfg = Debug|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Debug|Win32.Build.0 = Debug|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release|Win32.ActiveCfg = Release|Win32 + {338224B8-D575-408D-BACF-95C557B429BE}.Release|Win32.Build.0 = Release|Win32 + {EDC3A027-917B-4D23-AE70-73C409B47F85}.Debug|Win32.ActiveCfg = Debug|Win32 + {EDC3A027-917B-4D23-AE70-73C409B47F85}.Debug|Win32.Build.0 = Debug|Win32 + {EDC3A027-917B-4D23-AE70-73C409B47F85}.Release|Win32.ActiveCfg = Release|Win32 + {EDC3A027-917B-4D23-AE70-73C409B47F85}.Release|Win32.Build.0 = Release|Win32 + {4E555AA6-B348-41C9-A685-0B76149BBBAF}.Debug|Win32.ActiveCfg = Debug|Win32 + {4E555AA6-B348-41C9-A685-0B76149BBBAF}.Debug|Win32.Build.0 = Debug|Win32 + {4E555AA6-B348-41C9-A685-0B76149BBBAF}.Release|Win32.ActiveCfg = Release|Win32 + {4E555AA6-B348-41C9-A685-0B76149BBBAF}.Release|Win32.Build.0 = Release|Win32 + {B4B4240D-7022-4C47-838F-913B4878E938}.Debug|Win32.ActiveCfg = Debug|Win32 + {B4B4240D-7022-4C47-838F-913B4878E938}.Debug|Win32.Build.0 = Debug|Win32 + {B4B4240D-7022-4C47-838F-913B4878E938}.Release|Win32.ActiveCfg = Release|Win32 + {B4B4240D-7022-4C47-838F-913B4878E938}.Release|Win32.Build.0 = Release|Win32 + {300F59F8-5E94-492B-A899-0EB2B1140E20}.Debug|Win32.ActiveCfg = Debug|Win32 + {300F59F8-5E94-492B-A899-0EB2B1140E20}.Debug|Win32.Build.0 = Debug|Win32 + {300F59F8-5E94-492B-A899-0EB2B1140E20}.Release|Win32.ActiveCfg = Release|Win32 + {300F59F8-5E94-492B-A899-0EB2B1140E20}.Release|Win32.Build.0 = Release|Win32 + {49FA3196-A8F8-4E22-98C3-F3A5197CD06D}.Debug|Win32.ActiveCfg = Debug|Win32 + {49FA3196-A8F8-4E22-98C3-F3A5197CD06D}.Debug|Win32.Build.0 = Debug|Win32 + {49FA3196-A8F8-4E22-98C3-F3A5197CD06D}.Release|Win32.ActiveCfg = Release|Win32 + {49FA3196-A8F8-4E22-98C3-F3A5197CD06D}.Release|Win32.Build.0 = Release|Win32 + {8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}.Debug|Win32.Build.0 = Debug|Win32 + {8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}.Release|Win32.ActiveCfg = Release|Win32 + {8C30CCF4-0D5F-4CC0-9EF3-76D491B829DF}.Release|Win32.Build.0 = Release|Win32 + {2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}.Debug|Win32.ActiveCfg = Debug|Win32 + {2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}.Debug|Win32.Build.0 = Debug|Win32 + {2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}.Release|Win32.ActiveCfg = Release|Win32 + {2FC1D7B8-E434-4D6F-A50D-AB262C825BCD}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Property changes on: trunk/jazz/portmidi/portmidi.sln ___________________________________________________________________ Name: svn:executable + * Added: trunk/jazz/portmidi/portmidi.vcproj =================================================================== --- trunk/jazz/portmidi/portmidi.vcproj (rev 0) +++ trunk/jazz/portmidi/portmidi.vcproj 2008-05-26 21:18:33 UTC (rev 567) @@ -0,0 +1,287 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="portmidi" + ProjectGUID="{33E3B196-B9F4-4D0A-85E1-31C7BBD4967A}" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\pm_win\Debug" + IntermediateDirectory=".\pm_win\Debug" + ConfigurationType="4" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="pm_common,porttime,pm_win" + PreprocessorDefinitions="_LIB;DEBUG;PM_CHECK_ERRORS;WIN32;_DEBUG" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + PrecompiledHeaderFile=".\pm_win\Debug/portmidi.pch" + AssemblerListingLocation=".\pm_win\Debug/" + ObjectFile=".\pm_win\Debug/" + ProgramDataBaseFileName=".\pm_win\Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + OutputFile=".\pm_win\Debug\portmidi.lib" + SuppressStartupBanner="true" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\pm_win\Debug/portmidi.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory=".\pm_win\Release" + IntermediateDirectory=".\pm_win\Release" + ConfigurationType="4" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="pm_common,porttime,pm_win" + PreprocessorDefinitions="WIN32;_LIB" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + PrecompiledHeaderFile=".\Release/portmidi.pch" + AssemblerListingLocation=".\pm_win\Release/" + ObjectFile=".\pm_win\Release/" + ProgramDataBaseFileName=".\pm_win\Release/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + OutputFile=".\pm_win\Release\portmidi.lib" + SuppressStartupBanner="true" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\pm_win\Release/portmidi.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="pm_common\pmutil.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="pm_win\pmwin.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="pm_win\pmwinmm.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="pm_common\portmidi.c" + > + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + <File + RelativePath="pm_common\pminternal.h" + > + </File> + <File + RelativePath="pm_common\pmutil.h" + > + </File> + <File + RelativePath="pm_win\pmwinmm.h" + > + </File> + <File + RelativePath="pm_common\portmidi.h" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Property changes on: trunk/jazz/portmidi/portmidi.vcproj ___________________________________________________________________ Name: svn:executable + * Added: trunk/jazz/portmidi/portmusic_logo.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/portmidi/portmusic_logo.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-26 21:16:50
|
Revision: 566 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=566&view=rev Author: pstieber Date: 2008-05-26 14:16:48 -0700 (Mon, 26 May 2008) Log Message: ----------- Cleaned up an old Mac project. Removed Paths: ------------- trunk/jazz/portmidi/pm_mac/pm_test.pbproj/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-26 20:50:21
|
Revision: 565 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=565&view=rev Author: pstieber Date: 2008-05-26 13:50:13 -0700 (Mon, 26 May 2008) Log Message: ----------- Updated to match the current portmidi repository (revision 78) Revision Links: -------------- http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=78&view=rev Modified Paths: -------------- trunk/jazz/portmidi/README.txt trunk/jazz/portmidi/pm_common/pminternal.h trunk/jazz/portmidi/pm_common/pmutil.c trunk/jazz/portmidi/pm_common/pmutil.h trunk/jazz/portmidi/pm_common/portmidi.c trunk/jazz/portmidi/pm_common/portmidi.h trunk/jazz/portmidi/pm_linux/README_LINUX.txt trunk/jazz/portmidi/pm_linux/pmlinux.c trunk/jazz/portmidi/pm_linux/pmlinux.h trunk/jazz/portmidi/pm_linux/pmlinuxalsa.c trunk/jazz/portmidi/pm_linux/pmlinuxalsa.h trunk/jazz/portmidi/pm_mac/pmmacosxcm.c trunk/jazz/portmidi/pm_test/latency.c trunk/jazz/portmidi/pm_test/midithread.c trunk/jazz/portmidi/pm_test/sysex.c trunk/jazz/portmidi/pm_test/test.c trunk/jazz/portmidi/pm_win/README_WIN.txt trunk/jazz/portmidi/pm_win/pmwin.c trunk/jazz/portmidi/pm_win/pmwinmm.c trunk/jazz/portmidi/porttime/porttime.h trunk/jazz/portmidi/porttime/ptlinux.c trunk/jazz/portmidi/porttime/ptmacosx_cf.c trunk/jazz/portmidi/porttime/ptmacosx_mach.c trunk/jazz/portmidi/porttime/ptwinmm.c Added Paths: ----------- trunk/jazz/portmidi/pm_mac/Makefile.osx trunk/jazz/portmidi/pm_mac/README_MAC.txt trunk/jazz/portmidi/pm_mac/pm_mac.xcodeproj/ trunk/jazz/portmidi/pm_mac/pm_mac.xcodeproj/project.pbxproj trunk/jazz/portmidi/pm_test/latency.vcproj trunk/jazz/portmidi/pm_test/midithread.vcproj trunk/jazz/portmidi/pm_test/midithru.c trunk/jazz/portmidi/pm_test/midithru.vcproj trunk/jazz/portmidi/pm_test/mm.c trunk/jazz/portmidi/pm_test/mm.vcproj trunk/jazz/portmidi/pm_test/qtest.c trunk/jazz/portmidi/pm_test/qtest.vcproj trunk/jazz/portmidi/pm_test/sysex.vcproj trunk/jazz/portmidi/pm_test/test.vcproj trunk/jazz/portmidi/pm_test/txdata.syx trunk/jazz/portmidi/pm_win/copy-dll.bat trunk/jazz/portmidi/pm_win/pm_dll.vcproj trunk/jazz/portmidi/porttime/porttime.vcproj Removed Paths: ------------- trunk/jazz/portmidi/Makefile trunk/jazz/portmidi/pm_mac/.DS_Store trunk/jazz/portmidi/pm_mac/pm_mac.pbproj/ trunk/jazz/portmidi/pm_test/latency.dsp trunk/jazz/portmidi/pm_test/midithread.dsp trunk/jazz/portmidi/pm_test/sysex.dsp trunk/jazz/portmidi/pm_test/test.dsp trunk/jazz/portmidi/pm_win/Debug/ trunk/jazz/portmidi/portmidi.dsp trunk/jazz/portmidi/portmidi.dsw Deleted: trunk/jazz/portmidi/Makefile =================================================================== --- trunk/jazz/portmidi/Makefile 2008-05-24 21:59:59 UTC (rev 564) +++ trunk/jazz/portmidi/Makefile 2008-05-26 20:50:13 UTC (rev 565) @@ -1,61 +0,0 @@ -# MAKEFILE FOR PORTMIDI AND PORTTIME - -# Use this for linux alsa (0.9x) version -versions = pm_linux/pmlinuxalsa.o -ALSALIB = -lasound -VFLAGS = -DPMALSA - -# Use this for null (a dummy implementation for no Midi I/O: -# versions = pmlinuxnull.o -# ALSALIB = -# VFLAGS = -DPMNULL - -pmlib = pm_linux/libportmidi.a - -ptlib = porttime/libporttime.a - -CC = gcc $(VFLAGS) -g -Ipm_common -Iporttime - -pmobjects = pm_common/pmutil.o $(versions) pm_linux/pmlinux.o \ - pm_common/portmidi.o pm_linux/pmlinuxalsa.o - -ptobjects = porttime/porttime.o porttime/ptlinux.o - -current: all - -all: $(pmlib) $(ptlib) pm_test/test pm_test/sysex pm_test/midithread \ - pm_test/latency - -$(pmlib): Makefile $(pmobjects) - ar -cr $(pmlib) $(pmobjects) - -$(ptlib): Makefile $(ptobjects) - ar -cr $(ptlib) $(ptobjects) - -pm_linux/pmlinuxalsa.o: Makefile pm_linux/pmlinuxalsa.c pm_linux/pmlinuxalsa.h - $(CC) -c pm_linux/pmlinuxalsa.c -o pm_linux/pmlinuxalsa.o - -pm_test/test: Makefile pm_test/test.o $(pmlib) $(ptlib) - $(CC) pm_test/test.c -o pm_test/test $(pmlib) $(ptlib) $(ALSALIB) - -pm_test/sysex: Makefile pm_test/sysex.o $(pmlib) $(ptlib) - $(CC) pm_test/sysex.c -o pm_test/sysex $(pmlib) $(ptlib) $(ALSALIB) - -pm_test/midithread: Makefile pm_test/midithread.o $(pmlib) $(ptlib) - $(CC) pm_test/midithread.c -o pm_test/midithread $(pmlib) $(ptlib) $(ALSALIB) - -pm_test/latency: Makefile $(ptlib) $(pmlib) pm_test/latency.o - $(CC) pm_test/latency.c -o pm_test/latency $(ptlib) $(pmlib) $(ALSALIB) -lpthread -lm - -porttime/ptlinux.o: Makefile porttime/ptlinux.c - $(CC) -c porttime/ptlinux.c -o porttime/ptlinux.o - -clean: - rm -f *.o *~ core* */*.o */*~ */core* - -cleaner: clean - -cleanest: cleaner - rm -f $(pmlib) $(ptlib) pm_test/test pm_test/sysex pm_test/midithread - rm -f pm_test/latency - Modified: trunk/jazz/portmidi/README.txt =================================================================== --- trunk/jazz/portmidi/README.txt 2008-05-24 21:59:59 UTC (rev 564) +++ trunk/jazz/portmidi/README.txt 2008-05-26 20:50:13 UTC (rev 565) @@ -1,12 +1,19 @@ README for PortMidi -Roger Dannenberg -6 April 2003 -For Windows, please see also README_WIN.txt and debugging_dlls.txt -in pm_win. +Roger B. Dannenberg -For Linux, please see also README_LINUX.txt in pm_linux. +VERSION: please use "svn info" to get info. +Documentation for PortMidi is found in pm_common/portmidi.h. + +Additional documentation: + - Windows: see pm_win/README_WIN.txt and pm_win/debugging_dlls.txt + - Linux: see pm_linux/README_LINUX.txt + - Mac OSX: see pm_mac/README_MAC.txt + - Common Lisp: see pm_cl/README_CL.txt + +---------- some notes on the design of PortMidi ---------- + POINTERS VS DEVICE NUMBERS When you open a MIDI port, PortMidi allocates a structure to @@ -21,26 +28,53 @@ Error handling turned out to be much more complicated than expected. PortMidi functions return error codes that the caller can check. -In addition, errors may occur asynchronously due to MIDI input. In -this case, the error code is transferred to the next call to -Pm_Read. Furthermore, an error can arise during a MIDI THRU -operation that is also invoked asynchronously when MIDI input -arrives. +In addition, errors may occur asynchronously due to MIDI input. +However, for Windows, there are virtually no errors that can +occur if the code is correct and not passing bogus values. One +exception is an error that the system is out of memory, but my +guess is that one is unlikely to recover gracefully from that. +Therefore, all errors in callbacks are guarded by assert(), which +means not guarded at all in release configurations. Ordinarily, the caller checks for an error code. If the error is system-dependent, pmHostError is returned and the caller can call Pm_GetHostErrorText to get a text description of the error. -Host errors are recorded in the system-specific data allocated for -each open MIDI port. However, if an error occurs on open or close, +Host error codes are system-specific and are recorded in the +system-specific data allocated for each open MIDI port. +However, if an error occurs on open or close, we cannot store the error with the device because there will be no device data (assuming PortMidi cleans up after devices that -are not open). For open and close, we will store the host error -in a global variable. The PortMidi is smart enough to look here -first when the user asks for ErrorText. +are not open). For open and close, we will convert the error +to text, copy it to a global string, and set pm_hosterror, a +global flag. -Another problem is that when an error occurs in a MIDI THRU -operation, the caller must go to the output port to retrieve -the error, even though the initial indication of error will be -on the input port. +Similarly, whenever a Read or Write operation returns pmHostError, +the corresponding error string is copied to a global string +and pm_hosterror is set. This makes getting error strings +simple and uniform, although it does cost a string copy and some +overhead even if the user does not want to look at the error data. +The system-specific Read, Write, Poll, etc. implementations should +check for asynchronous errors and return immediately if one is +found so that these get reported. This happens in the Mac OS X +code, where lots of things are happening in callbacks, but again, +in Windows, there are no error codes recorded in callbacks. + +DEBUGGING + +If you are building a console application for research, we suggest +compiling with the option PM_CHECK_ERRORS. This will insert a +check for error return values at the end of each PortMidi +function. If an error is encountered, a text message is printed +using printf(), the user is asked to type ENTER, and then exit(-1) +is called to clean up and terminate the program. + +You should not use PM_CHECK_ERRORS if printf() does not work +(e.g. this is not a console application under Windows, or there +is no visible console on some other OS), and you should not use +PM_CHECK_ERRORS if you intend to recover from errors rather than +abruptly terminate the program. + +The Windows version (and perhaps others) also offers a DEBUG +compile-time option. See README_WIN.txt. Modified: trunk/jazz/portmidi/pm_common/pminternal.h =================================================================== --- trunk/jazz/portmidi/pm_common/pminternal.h 2008-05-24 21:59:59 UTC (rev 564) +++ trunk/jazz/portmidi/pm_common/pminternal.h 2008-05-26 20:50:13 UTC (rev 565) @@ -3,7 +3,7 @@ /* this file is included by files that implement library internals */ /* Here is a guide to implementers: provide an initialization function similar to pm_winmm_init() - add your initizliation function to pm_init() + add your initialization function to pm_init() Note that your init function should never require not-standard libraries or fail in any way. If the interface is not available, simply do not call pm_add_device. This means that non-standard @@ -21,12 +21,6 @@ extern "C" { #endif -#ifdef NDEBUG -Please do not disable assert -- PortMidi depends upon actions inside assert() -calls. If you really want to turn off assertion checking, you must change -the code inside assert() macros to be side-effect free. -#endif - /* these are defined in system-specific file */ void *pm_alloc(size_t s); void pm_free(void *ptr); @@ -38,8 +32,19 @@ struct pm_internal_struct; /* these do not use PmInternal because it is not defined yet... */ -typedef PmError (*pm_write_fn)(struct pm_internal_struct *midi, - PmEvent *buffer, long length); +typedef PmError (*pm_write_short_fn)(struct pm_internal_struct *midi, + PmEvent *buffer); +typedef PmError (*pm_begin_sysex_fn)(struct pm_internal_struct *midi, + PmTimestamp timestamp); +typedef PmError (*pm_end_sysex_fn)(struct pm_internal_struct *midi, + PmTimestamp timestamp); +typedef PmError (*pm_write_byte_fn)(struct pm_internal_struct *midi, + unsigned char byte, PmTimestamp timestamp); +typedef PmError (*pm_write_realtime_fn)(struct pm_internal_struct *midi, + PmEvent *buffer); +typedef PmError (*pm_write_flush_fn)(struct pm_internal_struct *midi, + PmTimestamp timestamp); +typedef PmTimestamp (*pm_synchronize_fn)(struct pm_internal_struct *midi); /* pm_open_fn should clean up all memory and close the device if any part of the open fails */ typedef PmError (*pm_open_fn)(struct pm_internal_struct *midi, @@ -54,7 +59,13 @@ typedef unsigned int (*pm_has_host_error_fn)(struct pm_internal_struct *midi); typedef struct { - pm_write_fn write; /* output MIDI */ + pm_write_short_fn write_short; /* output short MIDI msg */ + pm_begin_sysex_fn begin_sysex; /* prepare to send a sysex message */ + pm_end_sysex_fn end_sysex; /* marks end of sysex message */ + pm_write_byte_fn write_byte; /* accumulate one more sysex byte */ + pm_write_realtime_fn write_realtime; /* send real-time message within sysex */ + pm_write_flush_fn write_flush; /* send any accumulated but unsent data */ + pm_synchronize_fn synchronize; /* synchronize portmidi time to stream time */ pm_open_fn open; /* open MIDI device */ pm_abort_fn abort; /* abort */ pm_close_fn close; /* close device */ @@ -78,9 +89,9 @@ pm_fns_type dictionary; } descriptor_node, *descriptor_type; -#define pm_descriptor_max 32 -extern descriptor_node descriptors[pm_descriptor_max]; -extern int descriptor_index; +extern int pm_descriptor_max; +extern descriptor_type descriptors; +extern int pm_descriptor_index; typedef unsigned long (*time_get_proc_type)(void *time_info); @@ -90,60 +101,73 @@ PmTimeProcPtr time_proc; /* where to get the time */ void *time_info; /* pass this to get_time() */ - - long buffer_len; /* how big is the buffer */ - PmEvent *buffer; /* storage for: - - midi input - - midi output w/latency != 0 */ - long head; - long tail; - + long buffer_len; /* how big is the buffer or queue? */ + PmQueue *queue; + long latency; /* time delay in ms between timestamps and actual output */ /* set to zero to get immediate, simple blocking output */ - /* if latency is zero, timestamps will be ignored; + /* if latency is zero, timestamps will be ignored; */ /* if midi input device, this field ignored */ - int overflow; /* set to non-zero if input is dropped */ - int flush; /* flag to drop incoming sysex data because of overflow */ - int sysex_in_progress; /* use for overflow management */ + int sysex_in_progress; /* when sysex status is seen, this flag becomes + * true until EOX is seen. When true, new data is appended to the + * stream of outgoing bytes. When overflow occurs, sysex data is + * dropped (until an EOX or non-real-timei status byte is seen) so + * that, if the overflow condition is cleared, we don't start + * sending data from the middle of a sysex message. If a sysex + * message is filtered, sysex_in_progress is false, causing the + * message to be dropped. */ + PmMessage sysex_message; /* buffer for 4 bytes of sysex data */ + int sysex_message_count; /* how many bytes in sysex_message so far */ long filters; /* flags that filter incoming message classes */ - - struct pm_internal_struct *thru; /* only used on midi input */ - PmError callback_thru_error; /* stores error code from the Pm_Write - that implements midi thru */ + int channel_mask; /* flter incoming messages based on channel */ PmTimestamp last_msg_time; /* timestamp of last message */ + PmTimestamp sync_time; /* time of last synchronization */ + PmTimestamp now; /* set by PmWrite to current time */ + int first_message; /* initially true, used to run first synchronization */ pm_fns_type dictionary; /* implementation functions */ void *descriptor; /* system-dependent state */ - + /* the following are used to expedite sysex data */ + /* on windows, in debug mode, based on some profiling, these optimizations + * cut the time to process sysex bytes from about 7.5 to 0.26 usec/byte, + * but this does not count time in the driver, so I don't know if it is + * important + */ + unsigned char *fill_base; /* addr of ptr to sysex data */ + int *fill_offset_ptr; /* offset of next sysex byte */ + int fill_length; /* how many sysex bytes to write */ } PmInternal; -typedef struct { - long head; - long tail; - long len; - long msg_size; - long overflow; - char *buffer; -} PmQueueRep; /* defined by system specific implementation, e.g. pmwinmm, used by PortMidi */ void pm_init(void); void pm_term(void); /* defined by portMidi, used by pmwinmm */ -PmError none_write(PmInternal *midi, PmEvent *buffer, long length); +PmError none_write_short(PmInternal *midi, PmEvent *buffer); +PmError none_write_byte(PmInternal *midi, unsigned char byte, + PmTimestamp timestamp); +PmTimestamp none_synchronize(PmInternal *midi); + PmError pm_fail_fn(PmInternal *midi); +PmError pm_fail_timestamp_fn(PmInternal *midi, PmTimestamp timestamp); PmError pm_success_fn(PmInternal *midi); PmError pm_add_device(char *interf, char *name, int input, void *descriptor, pm_fns_type dictionary); -extern int descriptor_index; -void pm_enqueue(PmInternal *midi, PmEvent *event); +unsigned int pm_read_bytes(PmInternal *midi, unsigned char *data, int len, + PmTimestamp timestamp); +void pm_read_short(PmInternal *midi, PmEvent *event); +#define none_write_flush pm_fail_timestamp_fn +#define none_sysex pm_fail_timestamp_fn #define none_poll pm_fail_fn - #define success_poll pm_success_fn +#define MIDI_REALTIME_MASK 0xf8 +#define is_real_time(msg) \ + ((Pm_MessageStatus(msg) & MIDI_REALTIME_MASK) == MIDI_REALTIME_MASK) + #ifdef __cplusplus } #endif Modified: trunk/jazz/portmidi/pm_common/pmutil.c =================================================================== --- trunk/jazz/portmidi/pm_common/pmutil.c 2008-05-24 21:59:59 UTC (rev 564) +++ trunk/jazz/portmidi/pm_common/pmutil.c 2008-05-26 20:50:13 UTC (rev 565) @@ -2,30 +2,73 @@ applications that use PortMidi */ #include "stdlib.h" +#include "assert.h" #include "memory.h" #include "portmidi.h" #include "pmutil.h" #include "pminternal.h" +#ifdef WIN32 +#define bzero(addr, siz) memset(addr, 0, siz) +#endif +// #define QUEUE_DEBUG 1 +#ifdef QUEUE_DEBUG +#include "stdio.h" +#endif + +/* code is based on 4-byte words -- it should work on a 64-bit machine + as long as a "long" has 4 bytes. This code could be generalized to + be independent of the size of "long" */ + +typedef long int32; + +typedef struct { + long head; + long tail; + long len; + long msg_size; /* number of int32 in a message including extra word */ + long overflow; + long peek_overflow; + int32 *buffer; + int32 *peek; + int peek_flag; +} PmQueueRep; + + PmQueue *Pm_QueueCreate(long num_msgs, long bytes_per_msg) { PmQueueRep *queue = (PmQueueRep *) pm_alloc(sizeof(PmQueueRep)); + int int32s_per_msg = ((bytes_per_msg + sizeof(int32) - 1) & + ~(sizeof(int32) - 1)) / sizeof(int32); + /* arg checking */ + if (!queue) + return NULL; - /* arg checking */ - if (!queue) - return NULL; - - queue->len = num_msgs * bytes_per_msg; - queue->buffer = pm_alloc(queue->len); + /* need extra word per message for non-zero encoding */ + queue->len = num_msgs * (int32s_per_msg + 1); + queue->buffer = (int32 *) pm_alloc(queue->len * sizeof(int32)); + bzero(queue->buffer, queue->len * sizeof(int32)); if (!queue->buffer) { pm_free(queue); return NULL; + } else { /* allocate the "peek" buffer */ + queue->peek = (int32 *) pm_alloc(int32s_per_msg * sizeof(int32)); + if (!queue->peek) { + /* free everything allocated so far and return */ + pm_free(queue->buffer); + pm_free(queue); + return NULL; + } } + bzero(queue->buffer, queue->len * sizeof(int32)); queue->head = 0; queue->tail = 0; - queue->msg_size = bytes_per_msg; + /* msg_size is in words */ + queue->msg_size = int32s_per_msg + 1; /* note extra word is counted */ queue->overflow = FALSE; + queue->peek_overflow = FALSE; + queue->peek_flag = FALSE; return queue; } @@ -33,12 +76,13 @@ PmError Pm_QueueDestroy(PmQueue *q) { PmQueueRep *queue = (PmQueueRep *) q; - - /* arg checking */ - if (!queue || !queue->buffer) - return pmBadPtr; + + /* arg checking */ + if (!queue || !queue->buffer || !queue->peek) + return pmBadPtr; - pm_free(queue->buffer); + pm_free(queue->peek); + pm_free(queue->buffer); pm_free(queue); return pmNoError; } @@ -48,19 +92,87 @@ { long head; PmQueueRep *queue = (PmQueueRep *) q; + int i; + int32 *msg_as_int32 = (int32 *) msg; - /* arg checking */ - if(!queue) - return pmBadPtr; + /* arg checking */ + if (!queue) + return pmBadPtr; + /* a previous peek operation encountered an overflow, but the overflow + * has not yet been reported to client, so do it now. No message is + * returned, but on the next call, we will return the peek buffer. + */ + if (queue->peek_overflow) { + queue->peek_overflow = FALSE; + return pmBufferOverflow; + } + if (queue->peek_flag) { +#ifdef QUEUE_DEBUG + printf("Pm_Dequeue returns peek msg:"); + for (i = 0; i < queue->msg_size - 1; i++) { + printf(" %d", queue->peek[i]); + } + printf("\n"); +#endif + memcpy(msg, queue->peek, (queue->msg_size - 1) * sizeof(int32)); + queue->peek_flag = FALSE; + return 1; + } - if (queue->overflow) { - queue->overflow = FALSE; + head = queue->head; + /* if writer overflows, it writes queue->overflow = tail+1 so that + * when the reader gets to that position in the buffer, it can + * return the overflow condition to the reader. The problem is that + * at overflow, things have wrapped around, so tail == head, and the + * reader will detect overflow immediately instead of waiting until + * it reads everything in the buffer, wrapping around again to the + * point where tail == head. So the condition also checks that + * queue->buffer[head] is zero -- if so, then the buffer is now + * empty, and we're at the point in the msg stream where overflow + * occurred. It's time to signal overflow to the reader. If + * queue->buffer[head] is non-zero, there's a message there and we + * should read all the way around the buffer before signalling overflow. + * There is a write-order dependency here, but to fail, the overflow + * field would have to be written while an entire buffer full of + * writes are still pending. I'm assuming out-of-order writes are + * possible, but not that many. + */ + if (queue->overflow == head + 1 && !queue->buffer[head]) { + queue->overflow = 0; /* non-overflow condition */ return pmBufferOverflow; } - head = queue->head; /* make sure this is written after access */ - if (head == queue->tail) return 0; - memcpy(msg, queue->buffer + head, queue->msg_size); + /* test to see if there is data in the queue -- test from back + * to front so if writer is simultaneously writing, we don't + * waste time discovering the write is not finished + */ + for (i = queue->msg_size - 1; i >= 0; i--) { + if (!queue->buffer[head + i]) { + return 0; + } + } +#ifdef QUEUE_DEBUG + printf("Pm_Dequeue:"); + for (i = 0; i < queue->msg_size; i++) { + printf(" %d", queue->buffer[head + i]); + } + printf("\n"); +#endif + memcpy(msg, (char *) &queue->buffer[head + 1], + sizeof(int32) * (queue->msg_size - 1)); + /* fix up zeros */ + i = queue->buffer[head]; + while (i < queue->msg_size) { + int32 j; + i--; /* msg does not have extra word so shift down */ + j = msg_as_int32[i]; + msg_as_int32[i] = 0; + i = j; + } + /* signal that data has been removed by zeroing: */ + bzero((char *) &queue->buffer[head], sizeof(int32) * queue->msg_size); + + /* update head */ head += queue->msg_size; if (head == queue->len) head = 0; queue->head = head; @@ -68,44 +180,132 @@ } -/* source should not enqueue data if overflow is set */ -/**/ + +PmError Pm_SetOverflow(PmQueue *q) +{ + PmQueueRep *queue = (PmQueueRep *) q; + long tail; + /* no more enqueue until receiver acknowledges overflow */ + if (queue->overflow) return pmBufferOverflow; + if (!queue) + return pmBadPtr; + tail = queue->tail; + queue->overflow = tail + 1; + return pmBufferOverflow; +} + + PmError Pm_Enqueue(PmQueue *q, void *msg) { PmQueueRep *queue = (PmQueueRep *) q; long tail; + int i; + int32 *src = (int32 *) msg; + int32 *ptr; - /* arg checking */ - if (!queue) - return pmBadPtr; + int32 *dest; - tail = queue->tail; - memcpy(queue->buffer + tail, msg, queue->msg_size); + int rslt; + /* no more enqueue until receiver acknowledges overflow */ + if (!queue) return pmBadPtr; + if (queue->overflow) return pmBufferOverflow; + rslt = Pm_QueueFull(q); + /* already checked above: if (rslt == pmBadPtr) return rslt; */ + tail = queue->tail; + if (rslt) { + queue->overflow = tail + 1; + return pmBufferOverflow; + } + + /* queue is has room for message, and overflow flag is cleared */ + ptr = &queue->buffer[tail]; + dest = ptr + 1; + for (i = 1; i < queue->msg_size; i++) { + int32 j = src[i - 1]; + if (!j) { + *ptr = i; + ptr = dest; + } else { + *dest = j; + } + dest++; + } + *ptr = i; +#ifdef QUEUE_DEBUG + printf("Pm_Enqueue:"); + for (i = 0; i < queue->msg_size; i++) { + printf(" %d", queue->buffer[tail + i]); + } + printf("\n"); +#endif tail += queue->msg_size; if (tail == queue->len) tail = 0; - if (tail == queue->head) { - queue->overflow = TRUE; - /* do not update tail, so message is lost */ - return pmBufferOverflow; - } queue->tail = tail; return pmNoError; } + +int Pm_QueueEmpty(PmQueue *q) +{ + PmQueueRep *queue = (PmQueueRep *) q; + if (!queue) return TRUE; + return (queue->buffer[queue->head] == 0); +} + + int Pm_QueueFull(PmQueue *q) { PmQueueRep *queue = (PmQueueRep *) q; - long tail; - - /* arg checking */ - if(!queue) - return pmBadPtr; - - tail = queue->tail; - tail += queue->msg_size; - if (tail == queue->len) { - tail = 0; + int tail; + int i; + /* arg checking */ + if (!queue) + return pmBadPtr; + tail = queue->tail; + /* test to see if there is space in the queue */ + for (i = 0; i < queue->msg_size; i++) { + if (queue->buffer[tail + i]) { + return TRUE; + } } - return (tail == queue->head); + return FALSE; } +void *Pm_QueuePeek(PmQueue *q) +{ + PmQueueRep *queue = (PmQueueRep *) q; + PmError rslt; + long temp; + + /* arg checking */ + if (!queue) + return NULL; + + if (queue->peek_flag) { + return queue->peek; + } + /* this is ugly: if peek_overflow is set, then Pm_Dequeue() + * returns immediately with pmBufferOverflow, but here, we + * want Pm_Dequeue() to really check for data. If data is + * there, we can return it + */ + temp = queue->peek_overflow; + queue->peek_overflow = FALSE; + rslt = Pm_Dequeue(q, queue->peek); + queue->peek_overflow = temp; + + if (rslt == 1) { + queue->peek_flag = TRUE; + return queue->peek; + } else if (rslt == pmBufferOverflow) { + /* when overflow is indicated, the queue is empty and the + * first message that was dropped by Enqueue (signalling + * pmBufferOverflow to its caller) would have been the next + * message in the queue. Pm_QueuePeek will return NULL, but + * remember that an overflow occurred. (see Pm_Dequeue) + */ + queue->peek_overflow = TRUE; + } + return NULL; +} + Modified: trunk/jazz/portmidi/pm_common/pmutil.h =================================================================== --- trunk/jazz/portmidi/pm_common/pmutil.h 2008-05-24 21:59:59 UTC (rev 564) +++ trunk/jazz/portmidi/pm_common/pmutil.h 2008-05-26 20:50:13 UTC (rev 565) @@ -2,6 +2,10 @@ applications that use PortMidi */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + typedef void PmQueue; /* @@ -10,6 +14,33 @@ the message size as parameters. The queue only accepts fixed sized messages. Returns NULL if memory cannot be allocated. + This queue implementation uses the "light pipe" algorithm which + operates correctly even with multi-processors and out-of-order + memory writes. (see Alexander Dokumentov, "Lock-free Interprocess + Communication," Dr. Dobbs Portal, http://www.ddj.com/, + articleID=189401457, June 15, 2006. This algorithm requires + that messages be translated to a form where no words contain + zeros. Each word becomes its own "data valid" tag. Because of + this translation, we cannot return a pointer to data still in + the queue when the "peek" method is called. Instead, a buffer + is preallocated so that data can be copied there. Pm_QueuePeek() + dequeues a message into this buffer and returns a pointer to + it. A subsequent Pm_Dequeue() will copy from this buffer. + + This implementation does not try to keep reader/writer data in + separate cache lines or prevent thrashing on cache lines. + However, this algorithm differs by doing inserts/removals in + units of messages rather than units of machine words. Some + performance improvement might be obtained by not clearing data + immediately after a read, but instead by waiting for the end + of the cache line, especially if messages are smaller than + cache lines. See the Dokumentov article for explanation. + + The algorithm is extended to handle "overflow" reporting. To report + an overflow, the sender writes the current tail position to a field. + The receiver must acknowlege receipt by zeroing the field. The sender + will not send more until the field is zeroed. + Pm_QueueDestroy() destroys the queue and frees its storage. */ @@ -19,10 +50,11 @@ /* Pm_Dequeue() removes one item from the queue, copying it into msg. Returns 1 if successful, and 0 if the queue is empty. - Returns pmBufferOverflow, clears the overflow flag, and does not - return a data item if the overflow flag is set. (This protocol - ensures that the reader will be notified when data is lost due - to overflow.) + Returns pmBufferOverflow if what would have been the next thing + in the queue was dropped due to overflow. (So when overflow occurs, + the receiver can receive a queue full of messages before getting the + overflow report. This protocol ensures that the reader will be + notified when data is lost due to overflow. */ PmError Pm_Dequeue(PmQueue *queue, void *msg); @@ -40,7 +72,53 @@ Pm_QueueEmpty() returns non-zero if the queue is empty Either condition may change immediately because a parallel - enqueue or dequeue operation could be in progress. + enqueue or dequeue operation could be in progress. Furthermore, + Pm_QueueEmpty() is optimistic: it may say false, when due to + out-of-order writes, the full message has not arrived. Therefore, + Pm_Dequeue() could still return 0 after Pm_QueueEmpty() returns + false. On the other hand, Pm_QueueFull() is pessimistic: if it + returns false, then Pm_Enqueue() is guaranteed to succeed. */ int Pm_QueueFull(PmQueue *queue); -#define Pm_QueueEmpty(m) (m->head == m->tail) +int Pm_QueueEmpty(PmQueue *queue); + + +/* + Pm_QueuePeek() returns a pointer to the item at the head of the queue, + or NULL if the queue is empty. The item is not removed from the queue. + Pm_QueuePeek() will not indicate when an overflow occurs. If you want + to get and check pmBufferOverflow messages, use the return value of + Pm_QueuePeek() *only* as an indication that you should call + Pm_Dequeue(). At the point where a direct call to Pm_Dequeue() would + return pmBufferOverflow, Pm_QueuePeek() will return NULL but internally + clear the pmBufferOverflow flag, enabling Pm_Enqueue() to resume + enqueuing messages. A subsequent call to Pm_QueuePeek() + will return a pointer to the first message *after* the overflow. + Using this as an indication to call Pm_Dequeue(), the first call + to Pm_Dequeue() will return pmBufferOverflow. The second call will + return success, copying the same message pointed to by the previous + Pm_QueuePeek(). + + When to use Pm_QueuePeek(): (1) when you need to look at the message + data to decide who should be called to receive it. (2) when you need + to know a message is ready but cannot accept the message. + + Note that Pm_QueuePeek() is not a fast check, so if possible, you + might as well just call Pm_Dequeue() and accept the data if it is there. + */ +void *Pm_QueuePeek(PmQueue *queue); + +/* + Pm_SetOverflow() allows the writer (enqueuer) to signal an overflow + condition to the reader (dequeuer). E.g. when transfering data from + the OS to an application, if the OS indicates a buffer overrun, + Pm_SetOverflow() can be used to insure that the reader receives a + pmBufferOverflow result from Pm_Dequeue(). Returns pmBadPtr if queue + is NULL, returns pmBufferOverflow if buffer is already in an overflow + state, returns pmNoError if successfully set overflow state. + */ +PmError Pm_SetOverflow(PmQueue *queue); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ Modified: trunk/jazz/portmidi/pm_common/portmidi.c =================================================================== --- trunk/jazz/portmidi/pm_common/portmidi.c 2008-05-24 21:59:59 UTC (rev 564) +++ trunk/jazz/portmidi/pm_common/portmidi.c 2008-05-26 20:50:13 UTC (rev 565) @@ -1,25 +1,85 @@ #include "stdlib.h" #include "string.h" #include "portmidi.h" +#include "porttime.h" +#include "pmutil.h" #include "pminternal.h" +#include <assert.h> #define MIDI_CLOCK 0xf8 #define MIDI_ACTIVE 0xfe +#define MIDI_STATUS_MASK 0x80 +#define MIDI_SYSEX 0xf0 +#define MIDI_EOX 0xf7 +#define MIDI_START 0xFA +#define MIDI_STOP 0xFC +#define MIDI_CONTINUE 0xFB +#define MIDI_F9 0xF9 +#define MIDI_FD 0xFD +#define MIDI_RESET 0xFF +#define MIDI_NOTE_ON 0x90 +#define MIDI_NOTE_OFF 0x80 +#define MIDI_CHANNEL_AT 0xD0 +#define MIDI_POLY_AT 0xA0 +#define MIDI_PROGRAM 0xC0 +#define MIDI_CONTROL 0xB0 +#define MIDI_PITCHBEND 0xE0 +#define MIDI_MTC 0xF1 +#define MIDI_SONGPOS 0xF2 +#define MIDI_SONGSEL 0xF3 +#define MIDI_TUNE 0xF6 #define is_empty(midi) ((midi)->tail == (midi)->head) static int pm_initialized = FALSE; -int pm_hosterror = FALSE; +int pm_hosterror; char pm_hosterror_text[PM_HOST_ERROR_MSG_LEN]; +#ifdef PM_CHECK_ERRORS + +#include <stdio.h> + +#define STRING_MAX 80 + +static void prompt_and_exit(void) +{ + char line[STRING_MAX]; + printf("type ENTER..."); + fgets(line, STRING_MAX, stdin); + /* this will clean up open ports: */ + exit(-1); +} + + +static PmError pm_errmsg(PmError err) +{ + if (err == pmHostError) { + /* it seems pointless to allocate memory and copy the string, + * so I will do the work of Pm_GetHostErrorText directly + */ + printf("PortMidi found host error...\n %s\n", pm_hosterror_text); + pm_hosterror = FALSE; + pm_hosterror_text[0] = 0; /* clear the message */ + prompt_and_exit(); + } else if (err < 0) { + printf("PortMidi call failed...\n %s\n", Pm_GetErrorText(err)); + prompt_and_exit(); + } + return err; +} +#else +#define pm_errmsg(err) err +#endif + /* ==================================================================== system implementation of portmidi interface ==================================================================== */ -int descriptor_index = 0; -descriptor_node descriptors[pm_descriptor_max]; +int pm_descriptor_max = 0; +int pm_descriptor_index = 0; +descriptor_type descriptors = NULL; /* pm_add_device -- describe interface/device pair to library * @@ -32,26 +92,36 @@ */ PmError pm_add_device(char *interf, char *name, int input, void *descriptor, pm_fns_type dictionary) { - if (descriptor_index >= pm_descriptor_max) { - return pmInvalidDeviceId; + if (pm_descriptor_index >= pm_descriptor_max) { + // expand descriptors + descriptor_type new_descriptors = + pm_alloc(sizeof(descriptor_node) * (pm_descriptor_max + 32)); + if (!new_descriptors) return pmInsufficientMemory; + if (descriptors) { + memcpy(new_descriptors, descriptors, + sizeof(descriptor_node) * pm_descriptor_max); + free(descriptors); + } + pm_descriptor_max += 32; + descriptors = new_descriptors; } - descriptors[descriptor_index].pub.interf = interf; - descriptors[descriptor_index].pub.name = name; - descriptors[descriptor_index].pub.input = input; - descriptors[descriptor_index].pub.output = !input; + descriptors[pm_descriptor_index].pub.interf = interf; + descriptors[pm_descriptor_index].pub.name = name; + descriptors[pm_descriptor_index].pub.input = input; + descriptors[pm_descriptor_index].pub.output = !input; /* default state: nothing to close (for automatic device closing) */ - descriptors[descriptor_index].pub.opened = FALSE; + descriptors[pm_descriptor_index].pub.opened = FALSE; /* ID number passed to win32 multimedia API open */ - descriptors[descriptor_index].descriptor = descriptor; + descriptors[pm_descriptor_index].descriptor = descriptor; /* points to PmInternal, allows automatic device closing */ - descriptors[descriptor_index].internalDescriptor = NULL; + descriptors[pm_descriptor_index].internalDescriptor = NULL; - descriptors[descriptor_index].dictionary = dictionary; + descriptors[pm_descriptor_index].dictionary = dictionary; - descriptor_index++; + pm_descriptor_index++; return pmNoError; } @@ -64,18 +134,15 @@ */ int Pm_CountDevices( void ) { - PmError err = Pm_Initialize(); - if (err) - return err; - return descriptor_index; + Pm_Initialize(); + /* no error checking -- Pm_Initialize() does not fail */ + return pm_descriptor_index; } const PmDeviceInfo* Pm_GetDeviceInfo( PmDeviceID id ) { - PmError err = Pm_Initialize(); - if (err) - return NULL; - if (id >= 0 && id < descriptor_index) { + Pm_Initialize(); /* no error check needed */ + if (id >= 0 && id < pm_descriptor_index) { return &descriptors[id].pub; } return NULL; @@ -87,10 +154,20 @@ } /* none_write -- returns an error if called */ -PmError none_write(PmInternal *midi, PmEvent *buffer, long length) { +PmError none_write_short(PmInternal *midi, PmEvent *buffer) { return pmBadPtr; } +/* pm_fail_timestamp_fn -- placeholder for begin_sysex and flush */ +PmError pm_fail_timestamp_fn(PmInternal *midi, PmTimestamp timestamp) { + return pmBadPtr; +} + +PmError none_write_byte(PmInternal *midi, unsigned char byte, + PmTimestamp timestamp) { + return pmBadPtr; +} + /* pm_fail_fn -- generic function, returns error if called */ PmError pm_fail_fn(PmInternal *midi) { return pmBadPtr; @@ -100,17 +177,26 @@ return pmBadPtr; } static void none_get_host_error(PmInternal * midi, char * msg, unsigned int len) { - strcpy(msg,""); + strcpy(msg, ""); } static unsigned int none_has_host_error(PmInternal * midi) { return FALSE; } +PmTimestamp none_synchronize(PmInternal *midi) { + return 0; +} #define none_abort pm_fail_fn #define none_close pm_fail_fn pm_fns_node pm_none_dictionary = { - none_write, + none_write_short, + none_sysex, + none_sysex, + none_write_byte, + none_write_short, + none_write_flush, + none_synchronize, none_open, none_abort, none_close, @@ -149,6 +235,12 @@ case pmBufferOverflow: msg = "PortMidi: `Buffer overflow'"; break; + case pmBadData: + msg = "PortMidi: `Invalid MIDI message Data'"; + break; + case pmBufferMaxSize: + msg = "PortMidi: `Buffer cannot be made larger'"; + break; default: msg = "PortMidi: `Illegal error number'"; break; @@ -157,41 +249,44 @@ } -void Pm_GetHostErrorText(PortMidiStream * stream, char * msg, - unsigned int len) { - PmInternal * midi = (PmInternal *) stream; - - if (pm_hosterror) { /* we have the string already from open or close */ +/* This can be called whenever you get a pmHostError return value. + * The error will always be in the global pm_hosterror_text. + */ +void Pm_GetHostErrorText(char * msg, unsigned int len) { + assert(msg); + assert(len > 0); + if (pm_hosterror) { strncpy(msg, (char *) pm_hosterror_text, len); pm_hosterror = FALSE; pm_hosterror_text[0] = 0; /* clear the message; not necessary, but it - might help with debugging */ - } else if (midi == NULL) { - /* make this routine bullet-proof so we can always count on - it running */ - strncpy(msg,"Can't print host error for bogus stream argument", len); + might help with debugging */ + msg[len - 1] = 0; /* make sure string is terminated */ } else { - (*midi->dictionary->host_error)(midi, msg, len); + msg[0] = 0; /* no string to return */ } - msg[len - 1] = 0; /* make sure string is terminated */ } int Pm_HasHostError(PortMidiStream * stream) { - if (pm_hosterror) { - return TRUE; - } else if (stream) { + if (pm_hosterror) return TRUE; + if (stream) { PmInternal * midi = (PmInternal *) stream; - return (*midi->dictionary->has_host_error)(midi); - } else { - return FALSE; + pm_hosterror = (*midi->dictionary->has_host_error)(midi); + if (pm_hosterror) { + midi->dictionary->host_error(midi, pm_hosterror_text, + PM_HOST_ERROR_MSG_LEN); + /* now error message is global */ + return TRUE; + } } + return FALSE; } PmError Pm_Initialize( void ) { - pm_hosterror_text[0] = 0; /* the null string */ if (!pm_initialized) { + pm_hosterror = FALSE; + pm_hosterror_text[0] = 0; /* the null string */ pm_init(); pm_initialized = TRUE; } @@ -202,6 +297,13 @@ PmError Pm_Terminate( void ) { if (pm_initialized) { pm_term(); + // if there are no devices, descriptors might still be NULL + if (descriptors != NULL) { + free(descriptors); + descriptors = NULL; + } + pm_descriptor_index = 0; + pm_descriptor_max = 0; pm_initialized = FALSE; } return pmNoError; @@ -210,91 +312,231 @@ /* Pm_Read -- read up to length longs from source into buffer */ /* - returns number of longs actually read, or error code - - When the reader wants data: - if overflow_flag: - do not get anything - empty the buffer (read_ptr = write_ptr) - clear overflow_flag - return pmBufferOverflow - get data - return number of messages -*/ + * returns number of longs actually read, or error code + */ PmError Pm_Read(PortMidiStream *stream, PmEvent *buffer, long length) { PmInternal *midi = (PmInternal *) stream; int n = 0; - long head; - + PmError err = pmNoError; + pm_hosterror = FALSE; /* arg checking */ if(midi == NULL) - return pmBadPtr; - if(Pm_HasHostError(midi)) - return pmHostError; - if(!descriptors[midi->device_id].pub.opened) - return pmBadPtr; - if(!descriptors[midi->device_id].pub.input) - return pmBadPtr; - + err = pmBadPtr; + else if(!descriptors[midi->device_id].pub.opened) + err = pmBadPtr; + else if(!descriptors[midi->device_id].pub.input) + err = pmBadPtr; /* First poll for data in the buffer... * This either simply checks for data, or attempts first to fill the buffer - * with data from the MIDI hardware; this depends on the implementation. */ - if (Pm_Poll(midi) == 0) - return 0; + * with data from the MIDI hardware; this depends on the implementation. + * We could call Pm_Poll here, but that would redo a lot of redundant + * parameter checking, so I copied some code from Pm_Poll to here: */ + else err = (*(midi->dictionary->poll))(midi); - head = midi->head; - while (head != midi->tail && n < length) { - *buffer++ = midi->buffer[head++]; - if (head == midi->buffer_len) head = 0; + if (err != pmNoError) { + if (err == pmHostError) { + midi->dictionary->host_error(midi, pm_hosterror_text, + PM_HOST_ERROR_MSG_LEN); + pm_hosterror = TRUE; + } + return pm_errmsg(err); + } + + while (n < length) { + PmError err = Pm_Dequeue(midi->queue, buffer++); + if (err == pmBufferOverflow) { + /* ignore the data we have retreived so far */ + return pm_errmsg(pmBufferOverflow); + } else if (err == 0) { /* empty queue */ + break; + } n++; } - midi->head = head; - if (midi->overflow) { - midi->head = midi->tail; - midi->overflow = FALSE; - return pmBufferOverflow; - } return n; } PmError Pm_Poll( PortMidiStream *stream ) { PmInternal *midi = (PmInternal *) stream; - PmError result; + PmError err; + PmEvent *event; + pm_hosterror = FALSE; /* arg checking */ if(midi == NULL) - return pmBadPtr; - if(Pm_HasHostError(midi)) - return pmHostError; - if(!descriptors[midi->device_id].pub.opened) - return pmBadPtr; - if(!descriptors[midi->device_id].pub.input) - return pmBadPtr; - - result = (*(midi->dictionary->poll))(midi); - if (result != pmNoError) - return result; + err = pmBadPtr; + else if(!descriptors[midi->device_id].pub.opened) + err = pmBadPtr; + else if(!descriptors[midi->device_id].pub.input) + err = pmBadPtr; else - return midi->head != midi->tail; + err = (*(midi->dictionary->poll))(midi); + + if (err != pmNoError) { + if (err == pmHostError) { + midi->dictionary->host_error(midi, pm_hosterror_text, + PM_HOST_ERROR_MSG_LEN); + pm_hosterror = TRUE; + } + return pm_errmsg(err); + } + + event = (PmEvent *) Pm_QueuePeek(midi->queue); + return event != NULL; } +/* this is called from Pm_Write and Pm_WriteSysEx to issue a + * call to the system-dependent end_sysex function and handle + * the error return + */ +static PmError pm_end_sysex(PmInternal *midi) +{ + PmError err = (*midi->dictionary->end_sysex)(midi, 0); + midi->sysex_in_progress = FALSE; + if (err == pmHostError) { + midi->dictionary->host_error(midi, pm_hosterror_text, + PM_HOST_ERROR_MSG_LEN); + pm_hosterror = TRUE; + } + return err; +} + + +/* to facilitate correct error-handling, Pm_Write, Pm_WriteShort, and + Pm_WriteSysEx all operate a state machine that "outputs" calls to + write_short, begin_sysex, write_byte, end_sysex, and write_realtime */ + PmError Pm_Write( PortMidiStream *stream, PmEvent *buffer, long length) { PmInternal *midi = (PmInternal *) stream; + PmError err; + int i; + int bits; + pm_hosterror = FALSE; /* arg checking */ if(midi == NULL) - return pmBadPtr; - if(Pm_HasHostError(midi)) - return pmHostError; - if(!descriptors[midi->device_id].pub.opened) - return pmBadPtr; - if(!descriptors[midi->device_id].pub.output) - return pmBadPtr; + err = pmBadPtr; + else if(!descriptors[midi->device_id].pub.opened) + err = pmBadPtr; + else if(!descriptors[midi->device_id].pub.output) + err = pmBadPtr; + else + err = pmNoError; - return (*midi->dictionary->write)(midi, buffer, length); + if (err != pmNoError) goto pm_write_error; + + if (midi->latency == 0) { + midi->now = 0; + } else { + midi->now = (*(midi->time_proc))(midi->time_info); + if (midi->first_message || midi->sync_time + 100 /*ms*/ < midi->now) { + /* time to resync */ + midi->now = (*midi->dictionary->synchronize)(midi); + midi->first_message = FALSE; + } + } + /* error recovery: when a sysex is detected, we call + * dictionary->begin_sysex() followed by calls to + * dictionary->write_byte() and dictionary->write_realtime() + * until an end-of-sysex is detected, when we call + * dictionary->end_sysex(). After an error occurs, + * Pm_Write() continues to call functions. For example, + * it will continue to call write_byte() even after + * an error sending a sysex message, and end_sysex() will be + * called when an EOX or non-real-time status is found. + * When errors are detected, Pm_Write() returns immediately, + * so it is possible that this will drop data and leave + * sysex messages in a partially transmitted state. + */ + for (i = 0; i < length; i++) { + unsigned long msg = buffer[i].message; + bits = 0; + /* is this a sysex message? */ + if (Pm_MessageStatus(msg) == MIDI_SYSEX) { + if (midi->sysex_in_progress) { + /* error: previous sysex was not terminated by EOX */ + midi->sysex_in_progress = FALSE; + err = pmBadData; + goto pm_write_error; + } + midi->sysex_in_progress = TRUE; + if ((err = (*midi->dictionary->begin_sysex)(midi, + buffer[i].timestamp)) != pmNoError) + goto pm_write_error; + if ((err = (*midi->dictionary->write_byte)(midi, MIDI_SYSEX, + buffer[i].timestamp)) != pmNoError) + goto pm_write_error; + bits = 8; + /* fall through to continue sysex processing */ + } else if ((msg & MIDI_STATUS_MASK) && + (Pm_MessageStatus(msg) != MIDI_EOX)) { + /* a non-sysex message */ + if (midi->sysex_in_progress) { + /* this should be a realtime message */ + if (is_real_time(msg)) { + if ((err = (*midi->dictionary->write_realtime)(midi, + &(buffer[i]))) != pmNoError) + goto pm_write_error; + } else { + midi->sysex_in_progress = FALSE; + err = pmBadData; + /* ignore any error from this, because we already have one */ + /* pass 0 as timestamp -- it's ignored */ + (*midi->dictionary->end_sysex)(midi, 0); + goto pm_write_error; + } + } else { /* regular short midi message */ + if ((err = (*midi->dictionary->write_short)(midi, + &(buffer[i]))) != pmNoError) + goto pm_write_error; + continue; + } + } + if (midi->sysex_in_progress) { /* send sysex bytes until EOX */ + /* see if we can accelerate data transfer */ + if (bits == 0 && midi->fill_base && /* 4 bytes to copy */ + (*midi->fill_offset_ptr) + 4 <= midi->fill_length && + (msg & 0x80808080) == 0) { /* all data */ + /* copy 4 bytes from msg to fill_base + fill_offset */ + unsigned char *ptr = midi->fill_base + + *(midi->fill_offset_ptr); + ptr[0] = msg; ptr[1] = msg >> 8; + ptr[2] = msg >> 18; ptr[3] = msg >> 24; + (*midi->fill_offset_ptr) += 4; + continue; + } + /* no acceleration, so do byte-by-byte copying */ + while (bits < 32) { + unsigned char midi_byte = (unsigned char) (msg >> bits); + if ((err = (*midi->dictionary->write_byte)(midi, midi_byte, + buffer[i].timestamp)) != pmNoError) + goto pm_write_error; + if (midi_byte == MIDI_EOX) { + err = pm_end_sysex(midi); + if (err != pmNoError) goto error_exit; + break; /* from while loop */ + } + bits += 8; + } + } else { + /* not in sysex mode, but message did not start with status */ + err = pmBadData; + goto pm_write_error; + } + } + /* after all messages are processed, send the data */ + if (!midi->sysex_in_progress) + err = (*midi->dictionary->write_flush)(midi, 0); +pm_write_error: + if (err == pmHostError) { + midi->dictionary->host_error(midi, pm_hosterror_text, + PM_HOST_ERROR_MSG_LEN); + pm_hosterror = TRUE; + } +error_exit: + return pm_errmsg(err); } @@ -308,13 +550,15 @@ } -PmError Pm_WriteSysEx(PortMidiStream *stream, PmTimestamp when, unsigned char *msg) +PmError Pm_WriteSysEx(PortMidiStream *stream, PmTimestamp when, + unsigned char *msg) { /* allocate buffer space for PM_DEFAULT_SYSEX_BUFFER_SIZE bytes */ /* each PmEvent holds sizeof(PmMessage) bytes of sysex data */ #define BUFLEN (PM_DEFAULT_SYSEX_BUFFER_SIZE / sizeof(PmMessage)) -#define MIDI_EOX 0xf7 PmEvent buffer[BUFLEN]; + int buffer_size = 1; /* first time, send 1. After that, it's BUFLEN */ + PmInternal *midi = (PmInternal *) stream; /* the next byte in the buffer is represented by an index, bufx, and a shift in bits */ int shift = 0; @@ -326,28 +570,58 @@ /* insert next byte into buffer */ buffer[bufx].message |= ((*msg) << shift); shift += 8; + if (*msg++ == MIDI_EOX) break; if (shift == 32) { shift = 0; bufx++; - if (bufx == BUFLEN) { - PmError err = Pm_Write(stream, buffer, BUFLEN); + if (bufx == buffer_size) { + PmError err = Pm_Write(stream, buffer, buffer_size); + /* note: Pm_Write has already called errmsg() */ if (err) return err; /* prepare to fill another buffer */ bufx = 0; + buffer_size = BUFLEN; + /* optimization: maybe we can just copy bytes */ + if (midi->fill_base) { + PmError err; + while (*(midi->fill_offset_ptr) < midi->fill_length) { + midi->fill_base[(*midi->fill_offset_ptr)++] = *msg; + if (*msg++ == MIDI_EOX) { + err = pm_end_sysex(midi); + if (err != pmNoError) return pm_errmsg(err); + goto end_of_sysex; + } + } + /* I thought that I could do a pm_Write here and + * change this if to a loop, avoiding calls in Pm_Write + * to the slower write_byte, but since + * sysex_in_progress is true, this will not flush + * the buffer, and we'll infinite loop: */ + /* err = Pm_Write(stream, buffer, 0); + if (err) return err; */ + /* instead, the way this works is that Pm_Write calls + * write_byte on 4 bytes. The first, since the buffer + * is full, will flush the buffer and allocate a new + * one. This primes the buffer so + * that we can return to the loop above and fill it + * efficiently without a lot of function calls. + */ + buffer_size = 1; /* get another message started */ + } } buffer[bufx].message = 0; buffer[bufx].timestamp = when; - } + } /* keep inserting bytes until you find MIDI_EOX */ - if (*msg++ == MIDI_EOX) break; } - +end_of_sysex: /* we're finished sending full buffers, but there may * be a partial one left. */ if (shift != 0) bufx++; /* add partial message to buffer len */ if (bufx) { /* bufx is number of PmEvents to send from buffer */ - return Pm_Write(stream, buffer, bufx); + PmError err = Pm_Write(stream, buffer, bufx); + if (err) return err; } return pmNoError; } @@ -359,61 +633,61 @@ void *inputDriverInfo, long bufferSize, PmTimeProcPtr time_proc, - void *time_info, - PmStream *thru) { - PmInternal *midi, *midiThru; - PmError err; + void *time_info) { + PmInternal *midi; + PmError err = pmNoError; pm_hosterror = FALSE; *stream = NULL; /* arg checking */ - if (inputDevice < 0 || inputDevice >= descriptor_index) - return pmInvalidDeviceId; - if (!descriptors[inputDevice].pub.input) - return pmBadPtr; - if(descriptors[inputDevice].pub.opened) - return pmBadPtr; - + if (inputDevice < 0 || inputDevice >= pm_descriptor_index) + err = pmInvalidDeviceId; + else if (!descriptors[inputDevice].pub.input) + err = pmBadPtr; + else if(descriptors[inputDevice].pub.opened) + err = pmBadPtr; + + if (err != pmNoError) + goto error_return; + /* create portMidi internal data */ midi = (PmInternal *) pm_alloc(sizeof(PmInternal)); *stream = midi; - if (!midi) - return pmInsufficientMemory; + if (!midi) { + err = pmInsufficientMemory; + goto error_return; + } midi->device_id = inputDevice; midi->write_flag = FALSE; midi->time_proc = time_proc; midi->time_info = time_info; + /* windows adds timestamps in the driver and these are more accurate than + using a time_proc, so do not automatically provide a time proc. Non-win + implementations may want to provide a default time_proc in their + system-specific midi_out_open() method. + */ if (bufferSize <= 0) bufferSize = 256; /* default buffer size */ - else bufferSize++; /* buffer holds N-1 msgs, so increase request by 1 */ - midi->buffer_len = bufferSize; /* portMidi input storage */ - midi->buffer = (PmEvent *) pm_alloc(sizeof(PmEvent) * midi->buffer_len); - if (!midi->buffer) { + midi->queue = Pm_QueueCreate(bufferSize, sizeof(PmEvent)); + if (!midi->queue) { /* free portMidi data */ *stream = NULL; pm_free(midi); - return pmInsufficientMemory; + err = pmInsufficientMemory; + goto error_return; } - midi->head = 0; - midi->tail = 0; + midi->buffer_len = bufferSize; /* portMidi input storage */ midi->latency = 0; /* not used */ - midi->overflow = FALSE; - midi->flush = FALSE; midi->sysex_in_progress = FALSE; + midi->sysex_message = 0; + midi->sysex_message_count = 0; midi->filters = PM_FILT_ACTIVE; - midiThru = (PmInternal *) thru; - /* verify midi thru is acceptable device */ - if(midiThru && - (!descriptors[midiThru->device_id].pub.opened || - !descriptors[midiThru->device_id].pub.output)) { - /* failed, release portMidi internal data */ - *stream = NULL; - pm_free(midi->buffer); - pm_free(midi); - return pmBadPtr; - } - midi->thru = midiThru; - midi->callback_thru_error = FALSE; - midi->dictionary = descriptors[inputDevice].dictionary; + midi->channel_mask = 0xFFFF; + midi->sync_time = 0; + mid... [truncated message content] |
From: <pst...@us...> - 2008-05-24 22:00:00
|
Revision: 564 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=564&view=rev Author: pstieber Date: 2008-05-24 14:59:59 -0700 (Sat, 24 May 2008) Log Message: ----------- Encapsulated the members of tKeyPressure. Modified Paths: -------------- trunk/jazz/src/AlsaPlayer.cpp trunk/jazz/src/Command.cpp trunk/jazz/src/ControlEdit.cpp trunk/jazz/src/Events.h trunk/jazz/src/Filter.h trunk/jazz/src/PianoWindow.cpp trunk/jazz/src/Player.cpp trunk/jazz/src/StandardFile.cpp trunk/jazz/src/mswin/WindowsPlayer.cpp Modified: trunk/jazz/src/AlsaPlayer.cpp =================================================================== --- trunk/jazz/src/AlsaPlayer.cpp 2008-05-24 19:10:41 UTC (rev 563) +++ trunk/jazz/src/AlsaPlayer.cpp 2008-05-24 21:59:59 UTC (rev 564) @@ -443,11 +443,11 @@ case StatKeyPressure: { - tKeyPressure *k = pEvent->IsKeyPressure(); + tKeyPressure* pKeyPressure = pEvent->IsKeyPressure(); set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_KEYPRESS); - ev.data.note.channel = k->GetChannel(); - ev.data.note.note = k->Key; - ev.data.note.velocity = k->Value; + ev.data.note.channel = pKeyPressure->GetChannel(); + ev.data.note.note = pKeyPressure->GetKey(); + ev.data.note.velocity = pKeyPressure->GetPressureValue(); rc = write(&ev, now); } break; Modified: trunk/jazz/src/Command.cpp =================================================================== --- trunk/jazz/src/Command.cpp 2008-05-24 19:10:41 UTC (rev 563) +++ trunk/jazz/src/Command.cpp 2008-05-24 21:59:59 UTC (rev 564) @@ -408,22 +408,23 @@ pTrack->Kill(pEvent); pTrack->Put(pKeyOn); } -// SN++ Aftertouch - tKeyPressure *a; + + // After touch. if (pEvent->IsKeyPressure()) { - a = (tKeyPressure *)pEvent->Copy(); + tKeyPressure* pKeyPressure = (tKeyPressure *)pEvent->Copy(); if (FitIntoScale) { - a->Key += Notes; - a->Key = Scale.FitInto(a->Key); + pKeyPressure->SetKey(pKeyPressure->GetKey() + Notes); + pKeyPressure->SetKey(Scale.FitInto(pKeyPressure->GetKey())); } else if (Notes) - a->Key = Scale.Transpose(a->Key, Notes); + { + pKeyPressure->SetKey(Scale.Transpose(pKeyPressure->GetKey(), Notes)); + } pTrack->Kill(pEvent); - pTrack->Put(a); + pTrack->Put(pKeyPressure); } -// } // ************************************************************************ Modified: trunk/jazz/src/ControlEdit.cpp =================================================================== --- trunk/jazz/src/ControlEdit.cpp 2008-05-24 19:10:41 UTC (rev 563) +++ trunk/jazz/src/ControlEdit.cpp 2008-05-24 21:59:59 UTC (rev 564) @@ -631,9 +631,10 @@ int tPolyAfterEdit::GetValue(JZEvent* pEvent) { - if (pEvent->IsKeyPressure()) + tKeyPressure* pKeyPressure = pEvent->IsKeyPressure(); + if (pKeyPressure) { - return pEvent->IsKeyPressure()->Value; + return pKeyPressure->GetPressureValue(); } return -1; } @@ -666,7 +667,6 @@ from_clk = from_clock; to_clk = to_clock; } - tKeyPressure *k; tKeyOn* pKeyOn; if (!ctrlmode) @@ -681,10 +681,10 @@ !mpPianoWindow->mpSnapSel->IsSelected() || mpPianoWindow->GetFilter()->IsSelected(pEvent)) { - k = pEvent->IsKeyPressure(); - if (k) + tKeyPressure* pKeyPressure = pEvent->IsKeyPressure(); + if (pKeyPressure) { - track->Kill(k); + track->Kill(pKeyPressure); } } pEvent = iter.Next(); @@ -693,7 +693,7 @@ long key_end(-1), key_clk(-1); int key_val = -1; int key_cha(-1); - JZEvent *after; + tKeyPressure* pKeyPressure; pEvent = iter.Range(from_clk, to_clk); while (pEvent) { @@ -720,8 +720,8 @@ // und der Wert groesser als 0 ist. if (array[i] > 0 && array[i] != temp) { - after = new tKeyPressure(iclk, key_cha, key_val, array[i]); - track->Put(after); + pKeyPressure = new tKeyPressure(iclk, key_cha, key_val, array[i]); + track->Put(pKeyPressure); temp = array[i]; } } @@ -747,10 +747,12 @@ { if (pEvent->IsKeyPressure()) { - if (Clock2Val(pEvent->GetClock()) != pEvent->IsKeyPressure()->Value) + if ( + Clock2Val(pEvent->GetClock()) != + pEvent->IsKeyPressure()->GetPressureValue()) { pKeyPressureCopy = pEvent->Copy()->IsKeyPressure(); - pKeyPressureCopy->Value = Clock2Val(pEvent->GetClock()); + pKeyPressureCopy->SetPressureValue(Clock2Val(pEvent->GetClock())); track->Kill(pEvent); track->Put(pKeyPressureCopy); } Modified: trunk/jazz/src/Events.h =================================================================== --- trunk/jazz/src/Events.h 2008-05-24 19:10:41 UTC (rev 563) +++ trunk/jazz/src/Events.h 2008-05-24 21:59:59 UTC (rev 564) @@ -1692,23 +1692,22 @@ class tKeyPressure: public tChannelEvent { public: - short Value; - short Key; tKeyPressure( int Clock, unsigned short Channel, - unsigned char key, - unsigned char val) - : tChannelEvent(Clock, StatKeyPressure, Channel) + unsigned char Key, + unsigned char Value) + : tChannelEvent(Clock, StatKeyPressure, Channel), + mKey(Key), + mValue(Value) { - Value = val; - Key = key; } virtual int Write(JZWriteBase &io) { - edb(); return io.Write(this, Key, Value); + edb(); + return io.Write(this, mKey, mValue); } virtual tKeyPressure* IsKeyPressure() @@ -1726,20 +1725,45 @@ virtual int GetValue() const { edb(); - return Value; + return mValue; } virtual int GetPitch() const { edb(); - return Key; + return mKey; } - virtual void SetPitch(int p) + virtual void SetPitch(int Pitch) { edb(); - Key = p; + mKey = Pitch; } + + unsigned char GetKey() const + { + return mKey; + } + + void SetKey(unsigned char Key) + { + mKey = Key; + } + + short GetPressureValue() const + { + return mValue; + } + + void SetPressureValue(short Value) + { + mValue = Value; + } + + private: + + short mKey; + short mValue; }; //***************************************************************************** Modified: trunk/jazz/src/Filter.h =================================================================== --- trunk/jazz/src/Filter.h 2008-05-24 19:10:41 UTC (rev 563) +++ trunk/jazz/src/Filter.h 2008-05-24 21:59:59 UTC (rev 564) @@ -89,7 +89,7 @@ // SN++ Aftertouch gehoert eigendlich zu KeyOn Events. if (pEvent->GetStat() == StatKeyPressure) { - int aval = pEvent->IsKeyPressure()->Key; + int aval = pEvent->IsKeyPressure()->GetKey(); return FltEvents[i].Selected && FltEvents[i].FromValue <= aval && Modified: trunk/jazz/src/PianoWindow.cpp =================================================================== --- trunk/jazz/src/PianoWindow.cpp 2008-05-24 19:10:41 UTC (rev 563) +++ trunk/jazz/src/PianoWindow.cpp 2008-05-24 21:59:59 UTC (rev 564) @@ -281,18 +281,23 @@ { int key, channel; tEventIterator iter(Win->GetTrack()); - tKeyPressure *a; key = Copy->GetKey(); channel = Copy->GetChannel(); + + tKeyPressure* pKeyPressure; + JZEvent* pEvent = iter.Range( Copy->GetClock() + Copy->GetEventLength(), Copy->GetClock() + mpKeyOn->GetEventLength()); + while (pEvent) { - a = pEvent->IsKeyPressure(); - if (a) + pKeyPressure = pEvent->IsKeyPressure(); + if (pKeyPressure) { - if (a->Key == key && a->GetChannel() == channel) + if ( + pKeyPressure->GetKey() == key && + pKeyPressure->GetChannel() == channel) { Win->KillTrackEvent(pEvent); } @@ -2404,7 +2409,6 @@ { int key,channel; tEventIterator iter(pTrack); - tKeyPressure *a; tKeyOn* pKeyOn = pEvent->IsKeyOn(); if (!pKeyOn) { @@ -2416,15 +2420,19 @@ } key = pKeyOn->GetKey(); channel = pKeyOn->GetChannel(); + + tKeyPressure* pKeyPressure; pEvent = iter.Range( pKeyOn->GetClock() + 1, pKeyOn->GetClock() + pKeyOn->GetEventLength()); while (pEvent) { - a = pEvent->IsKeyPressure(); - if (a) + pKeyPressure = pEvent->IsKeyPressure(); + if (pKeyPressure) { - if (a->Key == key && a->GetChannel() == channel) + if ( + pKeyPressure->GetKey() == key && + pKeyPressure->GetChannel() == channel) { pTrack->Kill(pEvent); } @@ -2439,7 +2447,6 @@ { int key,channel; tEventIterator iter(pTrack); - tKeyPressure *a; tKeyOn* pKeyOn = pEvent->IsKeyOn(); if (!pKeyOn) { @@ -2452,16 +2459,20 @@ } key = pKeyOn->GetKey(); + tKeyPressure* pKeyPressure; + pEvent = iter.Range( pKeyOn->GetClock() + 1, pKeyOn->GetClock() + pKeyOn->GetEventLength()); while (pEvent) { - a = pEvent->IsKeyPressure(); - if (a) + pKeyPressure = pEvent->IsKeyPressure(); + if (pKeyPressure) { - if (a->Key == key && a->GetChannel() == channel) + if ( + pKeyPressure->GetKey() == key && + pKeyPressure->GetChannel() == channel) { mPasteBuffer.Put(pEvent->Copy()); } Modified: trunk/jazz/src/Player.cpp =================================================================== --- trunk/jazz/src/Player.cpp 2008-05-24 19:10:41 UTC (rev 563) +++ trunk/jazz/src/Player.cpp 2008-05-24 21:59:59 UTC (rev 564) @@ -1668,8 +1668,14 @@ // SN++ Aftertouch case StatKeyPressure: { - tKeyPressure *k = pEvent->IsKeyPressure(); - SEQ_KEY_PRESSURE(mididev, k->GetChannel(), k->Key, k->Value); + tKeyPressure* pKeyPressure = pEvent->IsKeyPressure(); + + SEQ_KEY_PRESSURE( + mididev, + pKeyPressure->GetChannel(), + pKeyPressure->GetKey(), + pKeyPressure->GetPressureValue()); + if (now) { seqbuf_flush_last_event(); Modified: trunk/jazz/src/StandardFile.cpp =================================================================== --- trunk/jazz/src/StandardFile.cpp 2008-05-24 19:10:41 UTC (rev 563) +++ trunk/jazz/src/StandardFile.cpp 2008-05-24 21:59:59 UTC (rev 564) @@ -476,7 +476,6 @@ return pEvent; case StatKeyPressure: -// SN++ Aftertouch pEvent = new tKeyPressure(Clock, Channel, cp[0], cp[1]); cp += 2; return pEvent; Modified: trunk/jazz/src/mswin/WindowsPlayer.cpp =================================================================== --- trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-24 19:10:41 UTC (rev 563) +++ trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-24 21:59:59 UTC (rev 564) @@ -310,10 +310,10 @@ case StatKeyPressure: { - tKeyPressure *k = pEvent->IsKeyPressure(); - u.c[0] = 0xA0 | k->GetChannel(); - u.c[1] = k->Key; - u.c[2] = k->Value; + tKeyPressure* pKeyPressure = pEvent->IsKeyPressure(); + u.c[0] = 0xA0 | pKeyPressure->GetChannel(); + u.c[1] = pKeyPressure->GetKey(); + u.c[2] = pKeyPressure->GetPressureValue(); } break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-24 19:10:45
|
Revision: 563 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=563&view=rev Author: pstieber Date: 2008-05-24 12:10:41 -0700 (Sat, 24 May 2008) Log Message: ----------- Updated to handle the latest tMetaEvent encapsulation changes on Linux. Modified Paths: -------------- trunk/jazz/src/Player.cpp Modified: trunk/jazz/src/Player.cpp =================================================================== --- trunk/jazz/src/Player.cpp 2008-05-24 19:03:32 UTC (rev 562) +++ trunk/jazz/src/Player.cpp 2008-05-24 19:10:41 UTC (rev 563) @@ -1734,13 +1734,14 @@ { // todo tSysEx *s = pEvent->IsSysEx(); - struct sysex_info *sysex = (struct sysex_info *)new char [sizeof(struct sysex_info) + s->Length + 1]; + struct sysex_info *sysex = (struct sysex_info *)new char [ + sizeof(struct sysex_info) + s->GetDataLength() + 1]; sysex->key = SYSEX_PATCH; sysex->device_no = mididev; - sysex->len = s->Length + 1; + sysex->len = s->GetDataLength() + 1; sysex->data[0] = 0xf0; - memcpy(sysex->data + 1, s->mpData, s->Length); + memcpy(sysex->data + 1, s->GetData(), s->GetDataLength()); SEQ_WRPATCH(sysex, sizeof(*sysex) + sysex->len - 1); delete [] (char *)sysex; @@ -1749,19 +1750,23 @@ { // OSS wants small packets with max 6 bytes tSysEx *sx = pEvent->IsSysEx(); + const unsigned char* pData = pEvent->IsSysEx()->GetData(); const int N = 6; int i, j; char buf[N]; buf[0] = (char)0xf0; i = 1; - for (j = 0; j < sx->Length; j++) { - if (i == N) { + for (j = 0; j < sx->GetDataLength(); j++) + { + if (i == N) + { SEQ_SYSEX(mididev, (unsigned char *)buf, N); i = 0; } - buf[i++] = sx->mpData[j]; + buf[i++] = pData[j]; } - if (i > 0) { + if (i > 0) + { SEQ_SYSEX(mididev, (unsigned char *)buf, i); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-24 19:03:35
|
Revision: 562 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=562&view=rev Author: pstieber Date: 2008-05-24 12:03:32 -0700 (Sat, 24 May 2008) Log Message: ----------- 1. Changed tMetaEvent::pData to tMetaEvent::mpData and tMetaEvent::Length to tMetaEvent::mLength. 2. Encapsulated the mLength and mpData data members in tMetaEvent by making them protected and adding GetData, and GetDataLength. 3. Added FixCheckSum to tMetaEvent, and called it from 4. Added some class comment headers. 5. Changed tEventArray::mName to tEventArray::mpName. 6. Changed tSynthSysex::GetValPtr and tSynthSysex::GetChaPtr to return constant pointers. This *will break the Linux build*, but I will fix this soon. Modified Paths: -------------- trunk/jazz/src/AlsaPlayer.cpp trunk/jazz/src/Dialogs.cpp trunk/jazz/src/Events.cpp trunk/jazz/src/Events.h trunk/jazz/src/Synth.cpp trunk/jazz/src/Synth.h trunk/jazz/src/Track.cpp trunk/jazz/src/Track.h trunk/jazz/src/mswin/WindowsPlayer.cpp Modified: trunk/jazz/src/AlsaPlayer.cpp =================================================================== --- trunk/jazz/src/AlsaPlayer.cpp 2008-05-24 18:53:41 UTC (rev 561) +++ trunk/jazz/src/AlsaPlayer.cpp 2008-05-24 19:03:32 UTC (rev 562) @@ -495,14 +495,18 @@ case StatSysEx: { - tSysEx *s = pEvent->IsSysEx(); + tSysEx* pSysEx = pEvent->IsSysEx(); // prepend 0xf0 - char *buf = new char[s->Length + 1]; - buf[0] = 0xF0; - memcpy(buf + 1, s->mpData, s->Length); - set_event_header(&ev, pEvent->GetClock(), s->Length + 1, buf); + char* pBuffer = new char[pSysEx->GetDataLength() + 1]; + pBuffer[0] = 0xF0; + memcpy(pBuffer + 1, pSysEx->GetData(), pSysEx->GetDataLength()); + set_event_header( + &ev, + pEvent->GetClock(), + pSysEx->GetDataLength() + 1, + pBuffer); rc = write(&ev, now); - delete [] buf; + delete [] pBuffer; } break; Modified: trunk/jazz/src/Dialogs.cpp =================================================================== --- trunk/jazz/src/Dialogs.cpp 2008-05-24 18:53:41 UTC (rev 561) +++ trunk/jazz/src/Dialogs.cpp 2008-05-24 19:03:32 UTC (rev 562) @@ -1140,21 +1140,24 @@ }; -tSysexDlg::tSysexDlg(tSysEx *s, JZPianoWindow* w, JZTrack *t) - : tEventDlg(s, w, t) +tSysexDlg::tSysexDlg(tSysEx* pSysEx, JZPianoWindow* w, JZTrack *t) + : tEventDlg(pSysEx, w, t) { - Event = s; + Event = pSysEx; char hexbyte[10]; str = new char[256]; str[0] = 0; - if (s->Length) - strcat( str, "f0 " ); + if (pSysEx->GetDataLength()) + { + strcat(str, "f0 "); + } - for (int i = 0; i < s->Length; i++) + const unsigned char* pData = pSysEx->GetData(); + for (int i = 0; i < pSysEx->GetDataLength(); i++) { - sprintf(hexbyte, "%02x ", s->mpData[i]); + sprintf(hexbyte, "%02x ", pData[i]); strcat(str, hexbyte); } } @@ -1223,9 +1226,8 @@ void tSysexDlg::AddProperties() { // char label1[100]; - unsigned char* uptr; - if (Event->IsSysEx()->Length) + if (Event->IsSysEx()->GetDataLength()) { // sprintf( // label1, @@ -1240,16 +1242,16 @@ Event->IsSysEx()))), "string"));//r/o - uptr = gpSynth->GetSysexValPtr(Event->IsSysEx()); + const unsigned char* pData = gpSynth->GetSysexValPtr(Event->IsSysEx()); - if (uptr) + if (pData) { ostringstream Oss; Oss << "First data byte is at offset " - << uptr - Event->IsSysEx()->mpData + 1 << ", value " - << setw(2) << hex << static_cast<int>(*uptr) - << dec << " (" << static_cast<int>(*uptr) << " decimal)"; + << pData - Event->IsSysEx()->GetData() + 1 << ", value " + << setw(2) << hex << static_cast<int>(*pData) + << dec << " (" << static_cast<int>(*pData) << " decimal)"; sheet->AddProperty(new wxProperty( Oss.str().c_str(), wxPropertyValue((char*)""), Modified: trunk/jazz/src/Events.cpp =================================================================== --- trunk/jazz/src/Events.cpp 2008-05-24 18:53:41 UTC (rev 561) +++ trunk/jazz/src/Events.cpp 2008-05-24 19:03:32 UTC (rev 562) @@ -185,9 +185,30 @@ } //***************************************************************************** +// Description: +// This is the meta event class definition. //***************************************************************************** //----------------------------------------------------------------------------- +// Description: +// This function fixed the checksum bytes at the end of the data stream. //----------------------------------------------------------------------------- +void tMetaEvent::FixCheckSum() +{ + unsigned char Sum = 0x00; + for (unsigned short i = 4; i < (mLength - 2); ++i) + { + Sum += mpData[i]; + } + mpData[mLength - 2] = (0x80 - (Sum & 0x7f)) & 0x7f; + mpData[mLength - 1] = 0xf7; +} + +//***************************************************************************** +// Description: +// This is the System Exclusive (SysEx) event class definition. +//***************************************************************************** +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- int tSysEx::GetPitch() const { edb(); Modified: trunk/jazz/src/Events.h =================================================================== --- trunk/jazz/src/Events.h 2008-05-24 18:53:41 UTC (rev 561) +++ trunk/jazz/src/Events.h 2008-05-24 19:03:32 UTC (rev 562) @@ -898,7 +898,8 @@ unsigned char mValue; }; - +//***************************************************************************** +//***************************************************************************** class tProgram : public tChannelEvent { public: @@ -969,27 +970,27 @@ unsigned char mProgram; }; - - +//***************************************************************************** +//***************************************************************************** class tMetaEvent : public JZEvent { public: - unsigned char* mpData; - unsigned short Length; - tMetaEvent( int Clock, unsigned char sta, - unsigned char* dat, - unsigned short len) - : JZEvent(Clock, sta) + unsigned char* pData, + unsigned short Length) + : JZEvent(Clock, sta), + mpData(0), + mLength(Length) { - Length = len; - mpData = new unsigned char [len + 1]; - if (dat) - memcpy(mpData, dat, len); - mpData[len] = 0; + mpData = new unsigned char [Length + 1]; + if (pData) + { + memcpy(mpData, pData, Length); + } + mpData[Length] = 0; } virtual ~tMetaEvent() @@ -1000,7 +1001,7 @@ virtual int Write(JZWriteBase &io) { edb(); - return io.Write(this, mpData, Length); + return io.Write(this, mpData, mLength); } virtual tMetaEvent* IsMetaEvent() @@ -1012,23 +1013,47 @@ virtual JZEvent* Copy() const { edb(); - return new tMetaEvent(mClock, mStat, mpData, Length); + return new tMetaEvent(mClock, mStat, mpData, mLength); } -}; + const unsigned char* GetData() const + { + return mpData; + } + unsigned short GetDataLength() const + { + return mLength; + } + virtual void FixCheckSum(); + + protected: + + unsigned char* mpData; + unsigned short mLength; +}; + +//***************************************************************************** +// Description: +// This event contains proprietary information for Jazz++. This event +// should should not go into a track itself but is read/written from/to +// the file. +//***************************************************************************** class tJazzMeta : public tMetaEvent { - // proprietary information of jazz stored to a track. This event - // should not go into a track itself but is read/written from/to - // the file. public: - enum { DATALEN = 20 }; - tJazzMeta(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatJazzMeta, dat, len) + + enum { + DATALEN = 20 + }; + + tJazzMeta(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatJazzMeta, pData, Length) + { } + tJazzMeta() : tMetaEvent(0, StatJazzMeta, 0, DATALEN) { @@ -1036,18 +1061,22 @@ memcpy(mpData, "JAZ2", 4); mpData[4] = 1; // version or so } + char GetAudioMode() const { return mpData[5]; } + void SetAudioMode(char c) { mpData[5] = c; } + char GetTrackState() const { return mpData[6]; } + void SetTrackState(char c) { mpData[6] = c; @@ -1084,17 +1113,18 @@ virtual JZEvent* Copy() const { edb(); - return new tJazzMeta(mClock, mpData, Length); + return new tJazzMeta(mClock, mpData, mLength); } }; - +//***************************************************************************** +//***************************************************************************** class tSysEx : public tMetaEvent { public: - tSysEx(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatSysEx, dat, len) + tSysEx(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatSysEx, pData, Length) { } @@ -1107,19 +1137,21 @@ virtual JZEvent* Copy() const { edb(); - return new tSysEx(mClock, mpData, Length); + return new tSysEx(mClock, mpData, mLength); } // todo virtual int GetPitch() const; }; +//***************************************************************************** +//***************************************************************************** class tSongPtr : public tMetaEvent { public: - tSongPtr(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatSongPtr, dat, len) + tSongPtr(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatSongPtr, pData, Length) { } @@ -1132,15 +1164,17 @@ virtual JZEvent* Copy() const { edb(); - return new tSongPtr(mClock, mpData, Length); + return new tSongPtr(mClock, mpData, mLength); } }; +//***************************************************************************** +//***************************************************************************** class tMidiClock : public tMetaEvent { public: - tMidiClock(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatMidiClock, dat, len) + tMidiClock(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatMidiClock, pData, Length) { } @@ -1158,16 +1192,18 @@ virtual JZEvent* Copy() const { edb(); - return new tMidiClock(mClock, mpData, Length); + return new tMidiClock(mClock, mpData, mLength); } }; +//***************************************************************************** +//***************************************************************************** class tStartPlay : public tMetaEvent { public: - tStartPlay(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatStartPlay, dat, len) + tStartPlay(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatStartPlay, pData, Length) { } @@ -1185,16 +1221,18 @@ virtual JZEvent* Copy() const { edb(); - return new tStartPlay(mClock, mpData, Length); + return new tStartPlay(mClock, mpData, mLength); } }; +//***************************************************************************** +//***************************************************************************** class tContPlay : public tMetaEvent { public: - tContPlay(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatContPlay, dat, len) + tContPlay(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatContPlay, pData, Length) { } @@ -1212,16 +1250,18 @@ virtual JZEvent* Copy() const { edb(); - return new tContPlay(mClock, mpData, Length); + return new tContPlay(mClock, mpData, mLength); } }; +//***************************************************************************** +//***************************************************************************** class tStopPlay : public tMetaEvent { public: - tStopPlay(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatStopPlay, dat, len) + tStopPlay(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatStopPlay, pData, Length) { } @@ -1239,21 +1279,23 @@ virtual JZEvent* Copy() const { edb(); - return new tStopPlay(mClock, mpData, Length); + return new tStopPlay(mClock, mpData, mLength); } }; +//***************************************************************************** +//***************************************************************************** class tText : public tMetaEvent { public: - tText(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatText, dat, len) + tText(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatText, pData, Length) { } - tText(int Clock, unsigned char *dat) - : tMetaEvent(Clock, StatText, dat, strlen((const char*)dat)) + tText(int Clock, unsigned char* pData) + : tMetaEvent(Clock, StatText, pData, strlen((const char*)pData)) { } @@ -1266,7 +1308,7 @@ virtual JZEvent* Copy() const { edb(); - return new tText(mClock, mpData, Length); + return new tText(mClock, mpData, mLength); } virtual unsigned char* GetText() @@ -1275,14 +1317,14 @@ } }; - - +//***************************************************************************** +//***************************************************************************** class tCopyright : public tMetaEvent { public: - tCopyright(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatCopyright, dat, len) + tCopyright(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatCopyright, pData, Length) { } @@ -1295,23 +1337,25 @@ virtual JZEvent* Copy() const { edb(); - return new tCopyright(mClock, mpData, Length); + return new tCopyright(mClock, mpData, mLength); } }; +//***************************************************************************** +//***************************************************************************** class tTrackName : public tMetaEvent { public: - tTrackName(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatTrackName, dat, len) + tTrackName(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatTrackName, pData, Length) { // SN++ Diese Restriktion ist viel zu hart. Es genuegt, den Namen im Mixerdialog // zu begrenzen!!! /* #ifdef wx_motif // clip to 16 chars - if (len > 16) + if (Length > 16) { mpData[16] = 0; Length = 16; @@ -1329,18 +1373,18 @@ virtual JZEvent* Copy() const { edb(); - return new tTrackName(mClock, mpData, Length); + return new tTrackName(mClock, mpData, mLength); } }; - - +//***************************************************************************** +//***************************************************************************** class tMarker : public tMetaEvent { public: - tMarker(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatMarker, dat, len) + tMarker(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatMarker, pData, Length) { } @@ -1353,16 +1397,18 @@ virtual JZEvent* Copy() const { edb(); - return new tMarker(mClock, mpData, Length); + return new tMarker(mClock, mpData, mLength); } }; +//***************************************************************************** // the meaning of this event is to be able to reference a track and have that // play the instant the event is executed. You can also transpose the // referenced track and loop it for the duration of the playtrack event. This // makes it possible to compose in a structured fashion. // // Execution of the events takes place in song.cpp. +//***************************************************************************** class tPlayTrack : public tMetaEvent { public: @@ -1377,20 +1423,20 @@ // that seems to be for serialization. int eventlength; - tPlayTrack(int Clock, unsigned char *chardat, unsigned short len) - : tMetaEvent(Clock, StatPlayTrack, chardat, len) + tPlayTrack(int Clock, unsigned char *chardat, unsigned short Length) + : tMetaEvent(Clock, StatPlayTrack, chardat, Length) { - int *dat = (int *)chardat; + int* pData = (int *)chardat; // Fill in the fields from the data. track = 0; transpose = 0; eventlength = 0; - if (dat!=0) + if (pData != 0) { - track = dat[0]; - transpose = dat[1]; - eventlength = dat[2]; + track = pData[0]; + transpose = pData[1]; + eventlength = pData[2]; } } @@ -1410,16 +1456,16 @@ virtual int Write(JZWriteBase &io) { - mpData = new unsigned char [Length + 1]; - int* dat = (int *)mpData; - dat[0] = track; - dat[1] = transpose; - dat[2] = eventlength; - Length = sizeof(int) * 3; + mpData = new unsigned char [mLength + 1]; + int* pData = (int *)mpData; + pData[0] = track; + pData[1] = transpose; + pData[2] = eventlength; + mLength = sizeof(int) * 3; edb(); - mpData[Length] = 0; - return io.Write(this, mpData, Length); + mpData[mLength] = 0; + return io.Write(this, mpData, mLength); } virtual tPlayTrack* IsPlayTrack() @@ -1442,8 +1488,8 @@ } }; - - +//***************************************************************************** +//***************************************************************************** class tSetTempo : public JZEvent { public: @@ -1504,13 +1550,16 @@ } }; +//***************************************************************************** +//***************************************************************************** class tMtcOffset : public tMetaEvent { public: - tMtcOffset(int Clock, unsigned char *dat, unsigned short len) - : tMetaEvent(Clock, StatMtcOffset, dat, len) + tMtcOffset(int Clock, unsigned char* pData, unsigned short Length) + : tMetaEvent(Clock, StatMtcOffset, pData, Length) { } + virtual tMtcOffset* IsMtcOffset() { edb(); @@ -1520,11 +1569,12 @@ virtual JZEvent* Copy() const { edb(); - return new tMtcOffset(mClock, mpData, Length); + return new tMtcOffset(mClock, mpData, mLength); } }; - +//***************************************************************************** +//***************************************************************************** class tTimeSignat : public JZEvent { public: @@ -1573,8 +1623,9 @@ } }; -// End of track JAVE new event(it is a standard type, i want -// it to define track loop points, as defined by the midi standard) +//***************************************************************************** +// This is the end-of-track event. +//***************************************************************************** class tEndOfTrack : public JZEvent { public: @@ -1602,8 +1653,8 @@ } }; - - +//***************************************************************************** +//***************************************************************************** class tKeySignat : public JZEvent { public: @@ -1635,7 +1686,9 @@ } }; -// SN++ Aftertouch +//***************************************************************************** +// Aftertouch +//***************************************************************************** class tKeyPressure: public tChannelEvent { public: @@ -1689,7 +1742,9 @@ } }; -// SN++ Channel Pressure +//***************************************************************************** +// Channel Pressure +//***************************************************************************** class tChnPressure : public tChannelEvent { public: Modified: trunk/jazz/src/Synth.cpp =================================================================== --- trunk/jazz/src/Synth.cpp 2008-05-24 18:53:41 UTC (rev 561) +++ trunk/jazz/src/Synth.cpp 2008-05-24 19:03:32 UTC (rev 562) @@ -487,148 +487,176 @@ } } -int tSynthSysex::GetId(const tSysEx* s) const +int tSynthSysex::GetId(const tSysEx* pSysEx) const { - if (!s) - return SX_NONE; + if (!pSysEx) + { + return SX_NONE; + } - switch (s->mpData[0]) - { + const unsigned char* pData = pSysEx->GetData(); + switch (pData[0]) + { case 0x7e: - // GM ON ? - if (!memcmp(sxdata[SX_GM_ON], s->mpData, s->Length)) - { - return SX_GM_ON; - } - else - { - return SX_UNIV_NON_REALTIME; - } - break; + // GM ON ? + if (!memcmp(sxdata[SX_GM_ON], pData, pSysEx->GetDataLength())) + { + return SX_GM_ON; + } + else + { + return SX_UNIV_NON_REALTIME; + } + break; case 0x7f: - // GM MasterVol ? - if (!memcmp(sxdata[SX_GM_MasterVol], s->mpData, 4)) - { - return SX_GM_MasterVol; - } - else - { - return SX_UNIV_REALTIME; - } - break; + // GM MasterVol ? + if (!memcmp(sxdata[SX_GM_MasterVol], pData, 4)) + { + return SX_GM_MasterVol; + } + else + { + return SX_UNIV_REALTIME; + } + break; case 0x41: - // Roland! + //------- + // Roland + //------- - // GS DT1? - if ((s->mpData[2] == 0x42) && (s->mpData[3] == 0x12)) - { - register unsigned char a1 = s->mpData[4]; - register unsigned char a2 = s->mpData[5]; - register unsigned char a3 = s->mpData[6]; + // GS DT1? + if (pData[2] == 0x42 && pData[3] == 0x12) + { + register unsigned char a1 = pData[4]; + register unsigned char a2 = pData[5]; + register unsigned char a3 = pData[6]; - if (a1 == 0x40) - { - // MSB address 0x40: - if (a2 == 0x00) - { - // 0x40 0x00 0x?? - switch (a3) - { - case 0x7f: - return SX_GS_ON; - case 0x04: - return SX_GS_MasterVol; - case 0x06: - return SX_GS_MasterPan; - default: - break; - } - } - else if (a2 == 0x01) - { - // 0x40 0x01 0x?? - if ((a3 >= 0x30) && (a3 <= 0x36)) - // reverb settings - return SX_GS_ReverbMacro + (a3 - 0x30); - else if ((a3 >= 0x38) && (a3 <= 0x3f)) - // chorus settings - return SX_GS_ChorusMacro + (a3 - 0x38); - else if (a3 == 0x10) - return SX_GS_PartialReserve; - } - else if ((a2 & 0xf0) == 0x10) - { - // 0x40 0x1n 0x?? - switch (a3) - { - case 0x02: - return SX_GS_RxChannel; + if (a1 == 0x40) + { + // MSB address 0x40: + if (a2 == 0x00) + { + // 0x40 0x00 0x?? + switch (a3) + { + case 0x7f: + return SX_GS_ON; + case 0x04: + return SX_GS_MasterVol; + case 0x06: + return SX_GS_MasterPan; + default: + break; + } + } + else if (a2 == 0x01) + { + // 0x40 0x01 0x?? + if (a3 >= 0x30 && a3 <= 0x36) + { + // These are reverb settings. + return SX_GS_ReverbMacro + (a3 - 0x30); + } + else if (a3 >= 0x38 && a3 <= 0x3f) + { + // These are chorus settings. + return SX_GS_ChorusMacro + (a3 - 0x38); + } + else if (a3 == 0x10) + { + return SX_GS_PartialReserve; + } + } + else if ((a2 & 0xf0) == 0x10) + { + // 0x40 0x1n 0x?? + switch (a3) + { + case 0x02: + return SX_GS_RxChannel; - case 0x15: - return SX_GS_UseForRhythm; + case 0x15: + return SX_GS_UseForRhythm; - case 0x1f: - return SX_GS_CC1CtrlNo; + case 0x1f: + return SX_GS_CC1CtrlNo; - case 0x20: - return SX_GS_CC2CtrlNo; - default: - break; - } - } - else if ((a2 & 0xf0) == 0x20) - { - // 0x40 0x2n 0x?? - if (a3 <= 0x0a) - return SX_GS_ModPitch + (a3 - 0x00); - else if ((a3 >= 0x10) && (a3 <= 0x1a)) - return SX_GS_BendPitch + (a3 - 0x10); - else if ((a3 >= 0x20) && (a3 <= 0x2a)) - return SX_GS_CafPitch + (a3 - 0x20); - else if ((a3 >= 0x30) && (a3 <= 0x3a)) - return SX_GS_PafPitch + (a3 - 0x30); - else if ((a3 >= 0x40) && (a3 <= 0x4a)) - return SX_GS_CC1Pitch + (a3 - 0x40); - else if ((a3 >= 0x50) && (a3 <= 0x5a)) - return SX_GS_CC2Pitch + (a3 - 0x50); - } - } // end a1 == 0x40 - } // end GS DT1 + case 0x20: + return SX_GS_CC2CtrlNo; - if ((s->mpData[3] == 0x12) && (s->Length >= 10)) - { - return SX_ROLAND_DT1; - } - else if ((s->mpData[3] == 0x11) && (s->Length >= 12)) - { - return SX_ROLAND_RQ1; - } - else - { - return SX_ROLAND_UNKNOWN; - } + default: + break; + } + } + else if ((a2 & 0xf0) == 0x20) + { + // 0x40 0x2n 0x?? + if (a3 <= 0x0a) + { + return SX_GS_ModPitch + (a3 - 0x00); + } + else if (a3 >= 0x10 && a3 <= 0x1a) + { + return SX_GS_BendPitch + (a3 - 0x10); + } + else if (a3 >= 0x20 && a3 <= 0x2a) + { + return SX_GS_CafPitch + (a3 - 0x20); + } + else if (a3 >= 0x30 && a3 <= 0x3a) + { + return SX_GS_PafPitch + (a3 - 0x30); + } + else if (a3 >= 0x40 && a3 <= 0x4a) + { + return SX_GS_CC1Pitch + (a3 - 0x40); + } + else if (a3 >= 0x50 && a3 <= 0x5a) + { + return SX_GS_CC2Pitch + (a3 - 0x50); + } + } + } // end a1 == 0x40 + } // end GS DT1 - break; // end Roland + if (pData[3] == 0x12 && pSysEx->GetDataLength() >= 10) + { + return SX_ROLAND_DT1; + } + else if (pData[3] == 0x11 && pSysEx->GetDataLength() >= 12) + { + return SX_ROLAND_RQ1; + } + else + { + return SX_ROLAND_UNKNOWN; + } + break; + // end Roland + case 0x43: - // Yamaha! + //------- + // Yamaha + //------- + // XG Native? - if (((s->mpData[1] & 0xf0) == 0x10) && (s->mpData[2] == 0x4c)) + if (((pData[1] & 0xf0) == 0x10) && pData[2] == 0x4c) { - register unsigned char a1 = s->mpData[3]; - register unsigned char a2 = s->mpData[4]; - register unsigned char a3 = s->mpData[5]; + register unsigned char a1 = pData[3]; + register unsigned char a2 = pData[4]; + register unsigned char a3 = pData[5]; // Multipart? if (a1 == 0x08) { - if ((a3 >= 0x1d) && (a3 <= 0x28)) + if (a3 >= 0x1d && a3 <= 0x28) { return SX_XG_ModPitch + (a3 - 0x1d); } - else if ((a3 >= 0x4d) && (a3 <= 0x66)) + else if (a3 >= 0x4d && a3 <= 0x66) { return SX_XG_CafPitch + (a3 - 0x4d); } @@ -643,7 +671,7 @@ } // Effect 1? - else if ((a1 == 0x02) && (a2 == 0x01)) + else if (a1 == 0x02 && a2 == 0x01) { if (a3 == 0x00) { @@ -654,8 +682,9 @@ return SX_XG_ChorusMacro; } } + // Multi EQ? - else if ((a1 == 0x02) && (a2 == 0x40)) + else if (a1 == 0x02 && a2 == 0x40) { if (a3 == 0x00) { @@ -664,17 +693,17 @@ } // XG system on? - else if ((a1 == 0x00) && (a2 == 0x00) && (a3 == 0x7e)) + else if (a1 == 0x00 && a2 == 0x00 && a3 == 0x7e) { return SX_XG_ON; } } - if (s->mpData[2] == 0x4c) + if (pData[2] == 0x4c) { return SX_XG_NATIVE; } - else if (s->mpData[2] == 0x49) + else if (pData[2] == 0x49) { return SX_MU80_NATIVE; } @@ -683,58 +712,64 @@ return SX_YAMAHA_UNKNOWN; } - break; // end Yamaha + break; + // end Yamaha default: break; - } + } - // Not recognized - return SX_NONE; + // Not recognized + return SX_NONE; } -unsigned char* tSynthSysex::GetValPtr(const tSysEx* s) const +const unsigned char* tSynthSysex::GetValPtr(const tSysEx* pSysEx) const { - if (!s) + if (!pSysEx) { return 0; } - switch (s->mpData[0]) + const unsigned char* pData = pSysEx->GetData(); + switch (pData[0]) { case 0x7f: // GM MasterVol? - if (!memcmp(sxdata[SX_GM_MasterVol], s->mpData,4)) + if (!memcmp(sxdata[SX_GM_MasterVol], pData, 4)) { - return &s->mpData[4]; + return &pData[4]; } break; case 0x41: - // Roland! + //------- + // Roland + //------- + // GS DT1? - if ((s->mpData[2] == 0x42) && (s->mpData[3] == 0x12) && (s->Length >= 10)) + if (pData[2] == 0x42 && pData[3] == 0x12 && pSysEx->GetDataLength() >= 10) { - return &s->mpData[7]; + return &pData[7]; } // other DT1 or RQ1 ? else if ( - ((s->mpData[3] == 0x12) && (s->Length >= 10)) || - ((s->mpData[3] == 0x11) && (s->Length >= 12))) + (pData[3] == 0x12 && pSysEx->GetDataLength() >= 10) || + (pData[3] == 0x11 && pSysEx->GetDataLength() >= 12)) { - return &s->mpData[7]; + return &pData[7]; } break; case 0x43: // Yamaha! // XG Native? - if (((s->mpData[1] & 0xf0) == 0x10) && (s->mpData[2] == 0x4c)) + if (((pData[1] & 0xf0) == 0x10) && pData[2] == 0x4c) { - return &s->mpData[6]; + return &pData[6]; } break; + default: break; } @@ -743,73 +778,66 @@ return 0; } -unsigned char * tSynthSysex::GetChaPtr(const tSysEx* s) +//----------------------------------------------------------------------------- +// Description: +// Return a pointer to the byte with the channel (if any). +//----------------------------------------------------------------------------- +const unsigned char* tSynthSysex::GetChaPtr(const tSysEx* pSysEx) { - // Get the byte where the channel number is (if any) + if (!pSysEx) + { + return 0; + } - if (!s) - { - return 0; - } - - switch (s->mpData[0]) - { + const unsigned char* pData = pSysEx->GetData(); + switch (pData[0]) + { case 0x41: - // Roland! - // GS DT1 + address 0x40? - if ( - (s->mpData[2] == 0x42) && - (s->mpData[3] == 0x12) && - (s->mpData[4] == 0x40)) - { - if ( - ((s->mpData[5] & 0xf0) == 0x10) || - ((s->mpData[5] & 0xf0) == 0x20)) - { - return &s->mpData[5]; - } - } - break; + //------- + // Roland + //------- + // GS DT1 + address 0x40? + if (pData[2] == 0x42 && pData[3] == 0x12 && pData[4] == 0x40) + { + if ((pData[5] & 0xf0) == 0x10 || (pData[5] & 0xf0) == 0x20) + { + return &pData[5]; + } + } + break; + case 0x43: - // Yamaha! - // XG Native multipart? - if ( - ((s->mpData[1] & 0xf0) == 0x10) && - (s->mpData[2] == 0x4c) && - (s->mpData[3] == 0x08)) - { - return &s->mpData[4]; - } - break; + //------- + // Yamaha + //------- + + // XG Native multipart? + if ((pData[1] & 0xf0) == 0x10 && pData[2] == 0x4c && pData[3] == 0x08) + { + return &pData[4]; + } + break; default: - break; - } + break; + } - // Not recognized - return 0; + // Not recognized. + return 0; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -void tSynthSysex::FixCheckSum(tSysEx* s) +void tSynthSysex::FixCheckSum(tSysEx* pSysEx) { + const unsigned char* pData = pSysEx->GetData(); if ( - (s->mpData[0] == 0x41) && - (((s->mpData[3] == 0x12) && (s->Length >= 10)) || - ((s->mpData[3] == 0x11) && (s->Length >= 12)))) + pData[0] == 0x41 && + ((pData[3] == 0x12 && pSysEx->GetDataLength() >= 10) || + (pData[3] == 0x11 && pSysEx->GetDataLength() >= 12))) { - // Roland RQ1 or DT1 - int len = s->Length; - unsigned char *sx = s->mpData; - unsigned char sum = 0x00; - - for (int i = 4; i < (len-2); i++) - { - sum += sx[i]; - } - sx[len - 2] = (0x80 - (sum & 0x7f)) & 0x7f; - sx[len-1] = 0xf7; + // The synthesizer is a Roland RQ1 or DT1. + pSysEx->FixCheckSum(); } } @@ -852,7 +880,7 @@ int len = sxlen[id] + datalen - 1; unsigned char* sx = new unsigned char[len]; memcpy(sx, sxdata[id], sxlen[id]); - tSysEx* s = 0; + tSysEx* pSysEx = 0; if (id == SX_GM_MasterVol) { @@ -862,7 +890,7 @@ else sx[4] = 0; sx[5] = val[0]; // MSB - s = new tSysEx(clk, sx, len); + pSysEx = new tSysEx(clk, sx, len); } else if ((id > SX_GS_ON) && (id < SX_XG_ON)) { @@ -880,7 +908,7 @@ sum += sx[i]; sx[len - 2] = (0x80 - (sum & 0x7f)) & 0x7f; sx[len-1] = 0xf7; - s = new tSysEx(clk, sx, len); + pSysEx = new tSysEx(clk, sx, len); } else if (id > SX_XG_ON) { @@ -895,11 +923,11 @@ sx[4] = channel - 1; } sx[len-1] = 0xf7; - s = new tSysEx(clk, sx, len); + pSysEx = new tSysEx(clk, sx, len); } delete sx; - return s; + return pSysEx; } Modified: trunk/jazz/src/Synth.h =================================================================== --- trunk/jazz/src/Synth.h 2008-05-24 18:53:41 UTC (rev 561) +++ trunk/jazz/src/Synth.h 2008-05-24 19:03:32 UTC (rev 562) @@ -245,10 +245,11 @@ int GetId(const tSysEx* s) const; // Get pointer to the data value (if any) - unsigned char* GetValPtr(const tSysEx* s) const; + const unsigned char* GetValPtr(const tSysEx* pSysEx) const; - // Get pointer to the byte with the channel (if any) - unsigned char* GetChaPtr(const tSysEx* s); + // Description: + // Return a pointer to the byte with the channel (if any). + const unsigned char* GetChaPtr(const tSysEx* pSysEx); // Fix checksum byte (if any) void FixCheckSum( tSysEx *s ); @@ -309,14 +310,14 @@ return Sysex.GetId( s ); } - virtual unsigned char * GetSysexValPtr( tSysEx *s ) const + virtual const unsigned char* GetSysexValPtr(tSysEx* pSysEx) const { - return Sysex.GetValPtr( s ); + return Sysex.GetValPtr(pSysEx); } - virtual unsigned char * GetSysexChaPtr( tSysEx *s ) + virtual const unsigned char* GetSysexChaPtr(tSysEx* pSysEx) { - return Sysex.GetChaPtr( s ); + return Sysex.GetChaPtr(pSysEx); } virtual void FixSysexCheckSum( tSysEx *s ) Modified: trunk/jazz/src/Track.cpp =================================================================== --- trunk/jazz/src/Track.cpp 2008-05-24 18:53:41 UTC (rev 561) +++ trunk/jazz/src/Track.cpp 2008-05-24 19:03:32 UTC (rev 562) @@ -90,9 +90,10 @@ static double framesPerSecond[] = { 24.0, 25.0, 30.0, 30.0 }; -tMtcTime::tMtcTime(tMtcOffset *s) +tMtcTime::tMtcTime(tMtcOffset* pMtcOffset) { - type = (tMtcType) ((s->mpData[0] & 0x60) >> 5); + const unsigned char* pData = pMtcOffset->GetData(); + type = (tMtcType) ((pData[0] & 0x60) >> 5); if (type < Mtc24) { type = Mtc24; @@ -101,10 +102,10 @@ { type = Mtc30Ndf; } - hour = s->mpData[0] & 0x1f; - min = s->mpData[1]; - sec = s->mpData[2]; - fm = s->mpData[3]; + hour = pData[0] & 0x1f; + min = pData[1]; + sec = pData[2]; + fm = pData[3]; } tMtcTime::tMtcTime(int millisec, tMtcType t) @@ -567,7 +568,7 @@ tEventArray::tEventArray() : tSimpleEventArray(), - mName(0), + mpName(0), Copyright(0), mPatch(0), Speed(0), @@ -599,8 +600,8 @@ tSimpleEventArray::Clear(); -// delete mName; - mName = 0; +// delete mpName; + mpName = 0; Copyright = 0; @@ -738,8 +739,8 @@ Sort(); // moves all killed events to the end of array // clear track defaults -// delete mName; - mName = 0; +// delete mpName; + mpName = 0; Copyright = 0; @@ -828,9 +829,9 @@ continue; } - if (!mName) + if (!mpName) { - mName = e->IsTrackName(); + mpName = e->IsTrackName(); } if (!Copyright) @@ -1774,17 +1775,17 @@ else if ((s = e->IsSysEx()) != 0) { // Check for sysex that contains channel number - unsigned char *chaptr = gpSynth->GetSysexChaPtr(s); - if (chaptr) + const unsigned char* pChannel = gpSynth->GetSysexChaPtr(s); + if (pChannel) { if (gpSynth->IsXG()) { - *chaptr = trk->Channel - 1; + *pChannel = trk->Channel - 1; } else { - *chaptr &= 0xf0; - *chaptr |= sysex_channel(trk->Channel); + *pChannel &= 0xf0; + *pChannel |= sysex_channel(trk->Channel); } s = (tSysEx *) e->Copy(); @@ -2114,7 +2115,7 @@ { if (Copyright) { - return (const char *)Copyright->mpData; + return (const char *)Copyright->GetData(); } return ""; } @@ -2143,9 +2144,9 @@ const char* JZTrack::GetName() { - if (mName) + if (mpName) { - return (const char*)mName->mpData; + return (const char*)mpName->GetData(); } return ""; } @@ -2154,9 +2155,9 @@ void JZTrack::SetName(const char* pTrackName) { - if (mName) + if (mpName) { - Kill(mName); + Kill(mpName); } if (strlen(pTrackName)) { @@ -2713,11 +2714,12 @@ int JZTrack::GetModulationSysex(int msp) { - unsigned char *valp = gpSynth->GetSysexValPtr(ModulationSettings[msp]); + const unsigned char* pValue = + gpSynth->GetSysexValPtr(ModulationSettings[msp]); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -2745,11 +2747,11 @@ int JZTrack::GetBenderSysex(int bsp) { - unsigned char *valp = gpSynth->GetSysexValPtr(BenderSettings[bsp]); + const unsigned char* pValue = gpSynth->GetSysexValPtr(BenderSettings[bsp]); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -2777,11 +2779,11 @@ int JZTrack::GetCAfSysex(int csp) { - unsigned char *valp = gpSynth->GetSysexValPtr(CAfSettings[csp]); + const unsigned char* pValue = gpSynth->GetSysexValPtr(CAfSettings[csp]); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -2809,11 +2811,11 @@ int JZTrack::GetPAfSysex(int psp) { - unsigned char *valp = gpSynth->GetSysexValPtr(PAfSettings[psp]); + const unsigned char* pValue = gpSynth->GetSysexValPtr(PAfSettings[psp]); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -2841,11 +2843,11 @@ int JZTrack::GetCC1Sysex(int csp) { - unsigned char *valp = gpSynth->GetSysexValPtr(CC1Settings[csp]); + const unsigned char* pValue = gpSynth->GetSysexValPtr(CC1Settings[csp]); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -2873,11 +2875,11 @@ int JZTrack::GetCC2Sysex(int csp) { - unsigned char *valp = gpSynth->GetSysexValPtr(CC2Settings[csp]); + const unsigned char* pValue = gpSynth->GetSysexValPtr(CC2Settings[csp]); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -2903,11 +2905,11 @@ int JZTrack::GetCC1ControllerNr() { - unsigned char *valp = gpSynth->GetSysexValPtr(CC1ControllerNr); + const unsigned char* pValue = gpSynth->GetSysexValPtr(CC1ControllerNr); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -2935,11 +2937,11 @@ int JZTrack::GetCC2ControllerNr() { - unsigned char *valp = gpSynth->GetSysexValPtr(CC2ControllerNr); + const unsigned char* pValue = gpSynth->GetSysexValPtr(CC2ControllerNr); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -2967,15 +2969,15 @@ int JZTrack::GetReverbType(int lsb) { - unsigned char *valp = gpSynth->GetSysexValPtr(ReverbType); + const unsigned char* pValue = gpSynth->GetSysexValPtr(ReverbType); - if (valp) + if (pValue) { if (lsb) { - ++valp; + ++pValue; } - return *valp + 1; + return *pValue + 1; } return 0; @@ -3007,16 +3009,16 @@ int JZTrack::GetChorusType(int lsb) { - unsigned char *valp = gpSynth->GetSysexValPtr(ChorusType); + const unsigned char *pValue = gpSynth->GetSysexValPtr(ChorusType); - if (valp) + if (pValue) { if (lsb) { - ++valp; + ++pValue; } - return *valp + 1; + return *pValue + 1; } return 0; @@ -3048,11 +3050,11 @@ int JZTrack::GetEqualizerType() { - unsigned char *valp = gpSynth->GetSysexValPtr(EqualizerType); + const unsigned char* pValue = gpSynth->GetSysexValPtr(EqualizerType); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -3081,11 +3083,11 @@ int JZTrack::GetRevSysex(int rsp) { - unsigned char *valp = gpSynth->GetSysexValPtr(ReverbSettings[rsp]); + const unsigned char* pValue = gpSynth->GetSysexValPtr(ReverbSettings[rsp]); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -3117,11 +3119,11 @@ int JZTrack::GetChoSysex(int csp) { - unsigned char *valp = gpSynth->GetSysexValPtr(ChorusSettings[csp]); + const unsigned char* pValue = gpSynth->GetSysexValPtr(ChorusSettings[csp]); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -3154,11 +3156,11 @@ int JZTrack::GetPartRsrv(int chan) { - unsigned char *valp = gpSynth->GetSysexValPtr(PartialReserve); + const unsigned char* pValue = gpSynth->GetSysexValPtr(PartialReserve); - if (valp) + if (pValue) { - return *(valp + sysex_channel(chan)) + 1; + return *(pValue + sysex_channel(chan)) + 1; } return 0; @@ -3187,17 +3189,17 @@ int JZTrack::GetMasterVol() { - unsigned char *valp = gpSynth->GetSysexValPtr(MasterVol); + const unsigned char* pValue = gpSynth->GetSysexValPtr(MasterVol); - if (valp) + if (pValue) { if (gpSynth->GetSysexId(MasterVol) == SX_GM_MasterVol) { // first data byte is lsb; get msb instead! - ++valp; + ++pValue; } - return *valp + 1; + return *pValue + 1; } return 0; @@ -3226,11 +3228,11 @@ int JZTrack::GetMasterPan() { - unsigned char *valp = gpSynth->GetSysexValPtr(MasterPan); + const unsigned char* pValue = gpSynth->GetSysexValPtr(MasterPan); - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; @@ -3258,22 +3260,22 @@ int JZTrack::GetModeSysex(int param) { - unsigned char *valp = 0; + const unsigned char* pValue = 0; switch (param) { case mspRxChannel: - valp = gpSynth->GetSysexValPtr(RxChannel); + pValue = gpSynth->GetSysexValPtr(RxChannel); break; case mspUseForRhythm: - valp = gpSynth->GetSysexValPtr(UseForRhythm); + pValue = gpSynth->GetSysexValPtr(UseForRhythm); break; } - if (valp) + if (pValue) { - return *valp + 1; + return *pValue + 1; } return 0; Modified: trunk/jazz/src/Track.h =================================================================== --- trunk/jazz/src/Track.h 2008-05-24 18:53:41 UTC (rev 561) +++ trunk/jazz/src/Track.h 2008-05-24 19:03:32 UTC (rev 562) @@ -451,7 +451,7 @@ public: - tTrackName* mName; + tTrackName* mpName; tCopyright* Copyright; tProgram* mPatch; tSetTempo* Speed; Modified: trunk/jazz/src/mswin/WindowsPlayer.cpp =================================================================== --- trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-24 18:53:41 UTC (rev 561) +++ trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-24 19:03:32 UTC (rev 562) @@ -428,7 +428,7 @@ state->sysex_found = TRUE; tWinSysexBuffer *buf = state->osx_buffers->AllocBuffer(); - buf->PrepareOut(state->hout, sx->mpData, sx->Length - 1); + buf->PrepareOut(state->hout, sx->GetData(), sx->GetLength() - 1); state->play_buffer.put(SYSEX_EVENT, time); state->play_buffer.put((DWORD)buf, time); return 0; @@ -486,13 +486,13 @@ else if (pEvent->GetStat() == StatSysEx) { tSysEx *s = pEvent->IsSysEx(); - if (s->Length + 1 < maxSysLen) + if (s->GetDataLength() + 1 < maxSysLen) { pSysBuf[0] = 0xf0; - memcpy(pSysBuf + 1, s->mpData, s->Length); + memcpy(pSysBuf + 1, s->GetData(), s->GetDataLength()); pSysHdr->lpData = (LPSTR)pSysBuf; - pSysHdr->dwBufferLength = s->Length + 1; + pSysHdr->dwBufferLength = s->GetDataLength() + 1; pSysHdr->dwUser = 0; if (midiOutPrepareHeader(state->hout, pSysHdr, sizeof(MIDIHDR)) == 0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-24 18:53:43
|
Revision: 561 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=561&view=rev Author: pstieber Date: 2008-05-24 11:53:41 -0700 (Sat, 24 May 2008) Log Message: ----------- Applied a slightly modified version of a patch provided by Donald B Moore. Donald's changes: 1. Added a soundfont section. 2. Added common system considerations (CPU, RAM, usage tips). 3. Added an appendix subsection (currently empty). 4. made some formatting corrections, text changed/rearranged in some places. Pete's changes: 1. Removed white space at the ends of lines and wrapped some lines that were greater than 80 columns. 2. Changed linux to Linux. Modified Paths: -------------- trunk/jazz/src/HelpFiles/jazz.tex Modified: trunk/jazz/src/HelpFiles/jazz.tex =================================================================== --- trunk/jazz/src/HelpFiles/jazz.tex 2008-05-24 18:43:23 UTC (rev 560) +++ trunk/jazz/src/HelpFiles/jazz.tex 2008-05-24 18:53:41 UTC (rev 561) @@ -89,13 +89,13 @@ and/or other now affordable add-on sound/MIDI hardware options. This area of the Jazz++ documentation provides information -detailing how to get the most out of you personal computer when -using it with Jazz++, and also platform/OS specific information -regarding setting up and using Jazz++ with the now available -hardware technologies and various 'software synthesizer' MIDI -programs available to the user today. +explaining common concepts of working with MIDI, details of how to +get the most out of you personal computer when using it with +Jazz++, and also platform/OS specific information regarding setting +up and using Jazz++ with the now available hardware technologies +and various 'software synthesizer' MIDI programs available to the +personal computer user today. - *NEW* \item MIDI, Time and the Personal Computer @@ -167,7 +167,37 @@ optimum performance when using Jazz++ and MIDI on their personal computing machine. +\item SoundFonts - what are they, who needs them. +Soundfonts are data files that both hardware MIDI/synth cards and +MIDI softsynths may use to create (or synthesize) the actual sound +you hear playing. Soundfont files, typically end in the .sf2 .SF2 +extensions, although you may also find .sfArk or .sfpack files, which +are normal .sf2 packages compressed with a lossless encoding tool. A +multitude of free soundfont packages exist on the internet, most of +them quite good however some have decidedly better sound quality than +others. There are also soundfont editors available for most platforms +supported by Jazz++, which allows the user to create their own custom +soundfont library file. + +A soundfont itself is a software library file containing both sampled +audio data, and synthsizer parameter definitions, along with the +table of MIDI data that describes the 'soundbank' itself. The soundbank +presents itself to the user, as a list describing exactly what +instruments, voices, or sounds are contained in each soundfont library +file. Taking your time to search for 'the right' soundfont for your +use can take a bit of trial and error, but it's well worth the trouble. +On the other hand, you can also buy high quality soundfont libraries +from commercial companies, sometimes referred to as sound 'foundaries'. + +Many MIDI/synth soundcards require soundfont files to work, and the +softsynth setup described below also requires 1 (or more) soundfont +files to actually make any pleasing sounds. Although the FLUIDSYNTH +package includes it's own sample soundfont file, the quality is not +the best...which you'll discover, when you download and install your +own soundfont files. In the Appendix section of the manual, is a +short list of soundfont resources we here at Jazz++ think you should try. + This area of the Jazz++ documentation provides information detailing how to get the most out of you personal computer when using it with Jazz++, and also platform/OS specific information @@ -175,6 +205,86 @@ hardware technologies and various 'software synthesizer' MIDI programs available to the user today. +\subsection{Common Considerations when using Jazz++} + +\item CPU and RAM Requirements + +CPU + +The original Jazz++ user manual advised -- "For MIDI-only operation +a 486 CPU (or equivalent) is sufficient in most cases. For +satisfactory audio operation a Pentium CPU with 32 MBytes RAM is +recommended." That may well be true for MIDI only operations with +no sound of any kind being needed to be produced by the computer +hardware. Perhaps we will never know for sure how well Jazz++ ran +on such computing powerhouses as the i486 CPU running at a then +whopping 100mHz, because most of this hardware is now dead and gone. + +Most modern personal computer systems now boast CPU speeds in +excess of 2.0 gHz -- even a new low-end 'entry level' computer +system is likely to be running at speeds greater than 1.5gHz. +This should be more than enough computing (CPU) power to run +and use Jazz++ effectively on a modern personal computing machine, +even with softsynths running to produce the actual sound itself. + +RAM + +As mentioned earlier, Jazz++ itself should not present any +significant system load to the personal computer it's being +run on. Likewise, Jazz++ doesn't need a lot of system RAM to +work correctly with modern computer hardwares. The user will +however need enough system RAM installed to meet the following +requirements for smooth and trouble free Jazz++ sessions ; + +1. You will need enough system RAM installed to cover your computer's +system requirements without the system needing to access the +hard-disk based 'swap' (or 'pagefile') area of RAM whilst +using Jazz++. Compared to real 'chip' RAM, hard-disk based +RAM devices are incredibly slow and this can 'bottlenexk' +other system operations. More importantly, to access hard-disk +based RAM means generating a lot of hardware interrupts at the +same time. Doing this is very likely to impact on MIDI playback +and record operations in Jazz++ and introduce timing latency issues. + +2. If you use soundfonts (and you probably will do), you need +enough system RAM to hold these soundfile libraries, -above- +the system RAM requirements. Soundfont libraries are loaded into +RAM, and whilst a lot of soundfont files are small (<1mb), others +can be quite large (100+mb), and depending on how many soundfont +libraries you intend to use and how big they are, dictates exactly +how much RAM you will need here. + +It is nearly impossible to correctly and accurately predict just +how much CPU speed and system RAM is needed in every individual's +case -- there as just too many variables to consider. To give the +reader some idea though, the following are results observed by +one of the Jazz++ testing team ; + +[ed: add system stats] + +Other Jazz++ operational tricks ; + +1. Try lowering your desktop resolution and/or bits-per-pixel value. +Doing this will also lower the load on your CPU when running Jazz++, and +enable things to run closer to real time overall. Try using the lowest +possible resolution and screen dimension that you can -comfortably- +work with while using Jazz++ at a color depth of 8 bits-per-pixel, +and see if that helps real time performance. + +2. The ZOOM buttons are your friends! To avoid unnecessary system +load when running record/replay sessions with Jazz++, always remember +to zoom out so the track window graphics are in complete view with +no need to paginate the window scrolling operation. Zoom in again if +you want to edit a portion of a track. Having to paginate and scroll +the Jazz++ track window, generates hardware interrupts which may +impact real time performance. + +3. Try to have as few software programs running in the background at +the same when using Jazz++ on a computer system. Really serious Jazz++ +users will try to have the absolute minimum of other software programs +running when using Jazz++, to ensure they get as close to real time +performance as is possible using Jazz++ on their personal computer. + \subsection{Linux operating systems} [ed: This part, down to my out mark, should probably go] @@ -281,7 +391,7 @@ exactly the same reasons here - it frees up your system CPU so it can do other tasks. In Linux, drivers for more than a few of these types of MIDI/synth soundcards are already available, and are a standard part -of the linux kernel tree. Most linux distributions include so called +of the Linux kernel tree. Most Linux distributions include so called 'hardware detection' softwares, which should automatically discover your MIDI/synth soundcard (if supported), and configure your system's ALSA drivers accordingly. Sometimes these routines do not detect certain @@ -301,7 +411,7 @@ alsa-driver-1.0.1x/doc/SOUNDCARDS There you can see if your MIDI/synth soundcard is currently supported -under ALSA and linux. Some MIDI/synth soundcards require firmware being +under ALSA and Linux. Some MIDI/synth soundcards require firmware being loaded before the card will work - most all of these kinds of soundcards require some kind of helper application called a 'loader' to copy various instrument files and data (for example 'soundfont' files) into the working @@ -311,7 +421,7 @@ alsa-driver-1.0.1x/alsa-kernel/Documentation/ -Another good repository of current knowledge regarding linux sound drivers +Another good repository of current knowledge regarding Linux sound drivers overall (not just the ALSA sound drivers) can be found at ; \urlref{http://linux-sound.org/drivers.html}{http://linux-sound.org/drivers.html} @@ -340,7 +450,7 @@ setup should also work on the Mac running Mac OSX. Essentially, -any- ALSA based, MIDI capable softsynth setup should work -with Jazz++ in linux. I've already tested a few that seem to work fine. +with Jazz++ in Linux. I've already tested a few that seem to work fine. However, it is useful to know how to setup the same softsynth kit that the Jazz++ developers use for testing and improving the Jazz++ code itself, and this is why documentation of this softsynth setup comes first. @@ -3051,5 +3161,11 @@ \helpref{Piano Window}{pianowin}. Scroll up and down until you find the defined samples. +\subsection{Appendix} +\item Appendix + +The appendix has not been appended yet, come back soon! + + \end{document} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-24 18:43:26
|
Revision: 560 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=560&view=rev Author: pstieber Date: 2008-05-24 11:43:23 -0700 (Sat, 24 May 2008) Log Message: ----------- Added new images for documenting Jazz++ provided by Donald B. Moore. Added Paths: ----------- trunk/jazz/src/HelpFiles/images/ trunk/jazz/src/HelpFiles/images/jazz-output-sel-0.png trunk/jazz/src/HelpFiles/images/qjack-connect-win-0.png trunk/jazz/src/HelpFiles/images/qjack-connect-win-1.png trunk/jazz/src/HelpFiles/images/qjack-connect-win-2.png trunk/jazz/src/HelpFiles/images/qjack-connect-win-3.png trunk/jazz/src/HelpFiles/images/qjack-error-win-0.png trunk/jazz/src/HelpFiles/images/qjack-error-win-1.png trunk/jazz/src/HelpFiles/images/qjack-running.png trunk/jazz/src/HelpFiles/images/qjack-stopped.png trunk/jazz/src/HelpFiles/images/qsynth-channels-0.png trunk/jazz/src/HelpFiles/images/qsynth-channels-1.png trunk/jazz/src/HelpFiles/images/qsynth-error-win-0.png trunk/jazz/src/HelpFiles/images/qsynth-setup-0.png trunk/jazz/src/HelpFiles/images/qsynth-setup-1.png trunk/jazz/src/HelpFiles/images/qsynth-setup-2.png trunk/jazz/src/HelpFiles/images/qsynth-setup-3.png trunk/jazz/src/HelpFiles/images/qsynth-setup-4.png trunk/jazz/src/HelpFiles/images/qsynth-setup-5.png trunk/jazz/src/HelpFiles/images/qsynth-startup.png trunk/jazz/src/HelpFiles/images/qsynth-stopped.png trunk/jazz/src/HelpFiles/images/qsynth-warn-win-0.png Added: trunk/jazz/src/HelpFiles/images/jazz-output-sel-0.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/jazz-output-sel-0.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qjack-connect-win-0.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qjack-connect-win-0.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qjack-connect-win-1.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qjack-connect-win-1.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qjack-connect-win-2.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qjack-connect-win-2.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qjack-connect-win-3.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qjack-connect-win-3.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qjack-error-win-0.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qjack-error-win-0.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qjack-error-win-1.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qjack-error-win-1.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qjack-running.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qjack-running.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qjack-stopped.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qjack-stopped.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-channels-0.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-channels-0.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-channels-1.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-channels-1.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-error-win-0.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-error-win-0.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-setup-0.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-setup-0.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-setup-1.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-setup-1.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-setup-2.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-setup-2.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-setup-3.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-setup-3.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-setup-4.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-setup-4.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-setup-5.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-setup-5.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-startup.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-startup.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-stopped.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-stopped.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/jazz/src/HelpFiles/images/qsynth-warn-win-0.png =================================================================== (Binary files differ) Property changes on: trunk/jazz/src/HelpFiles/images/qsynth-warn-win-0.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-24 00:18:32
|
Revision: 559 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=559&view=rev Author: pstieber Date: 2008-05-23 17:18:25 -0700 (Fri, 23 May 2008) Log Message: ----------- Applied a slightly modified version of a patch provided by Donald B. Moore. Donald's changes: Adds initial content to new FAQ website area. Pete's changes: Reformatted the page. Modified Paths: -------------- web/htdocs/faq/index.php Modified: web/htdocs/faq/index.php =================================================================== --- web/htdocs/faq/index.php 2008-05-22 18:16:07 UTC (rev 558) +++ web/htdocs/faq/index.php 2008-05-24 00:18:25 UTC (rev 559) @@ -15,8 +15,117 @@ </TD> <TD class="mainCopy"> <H2>Jazz++ FAQ</H2> +<p> +Here you will find some of the most Frequently Asked Questions that the Jazz++ +team get asked by Jazz++ users, along with helpful answers to those questions. +</p> +<p> +This area is broken down into two parts -- +</p> +<p> +The User FAQ deals with general user questions regarding the operation and use +of Jazz++ itself. +</p> +<p> +The Developer FAQ deals with specific questions related to the Jazz++ code +itself, and possible problems when compiling/using that code on the +platforms/OS' currently supported by Jazz++. +</p> + <H3>User FAQ</H3> +<p> + +</p> + <H3>Developer FAQ</H3> +<p> +<b>Q.</b> When I run configure, I get the following error... +</p> +<p> +<b>A.</b> If you are trying to build/compile Jazz++ from sourcecode tarball or +the Jazz++ svn repository, you may encounter one or more of the following +errors. Check through this list of errors below and see if the error message +you've encountered has already been noted before emailing the Jazz++ +developers about these sorts of problems. These are typically <u>not</u> +problems with Jazz++ or the Jazz++ source itself, but usually more indicative +of a problem with the 'host' computer system software setup. +</p> +<p> +<b>Error:</b> +</p> +<pre> +../jazz/configure: line 4844: AC_PROG_LIBTOOL: command not found + +configure.ac:44: error: possibly undefined macro: AC_PROG_LIBTOOL +If this token and others are legitimate, please use m4_pattern_allow. +See the Autoconf documentation. +autoreconf: /usr/bin/autoconf failed with exit status: 1 +</pre> +<p> +<b>Problem:</b> The <tt>libtools</tt> package is not installed. +</p> +<p> +<b>Likely Cause:</b> [linux] 'desktop' installation, SDK not installed +</p> +<p> +<b>Solution:</b> Install the <tt>libtools</tt> package and retry +</p> +<p> +During the installation stage of most all Linux based distributions, the +person installing the system is given a choice as to what sort of system +they would like to install. Typically the choices are something like +'Server', 'Desktop', and 'Work Station'. The linux SDK (software developers +kit) is *NOT* routinely installed as part of a standard 'Desktop' type linux +installation, and this is true for most all mainstream linux distributions. +However the SDK *IS* routinely installed by most linux distributions when the +'Work Station' install option is selected, and this is how some people end up +with the SDK and others not...who end up seeing this sort of error. It's not +a problem - you don't have to reinstall everything, you just need to add +the SDK packages. +</p> +<p> +Adding the SDK packages is where some people have problems. The linux SDK +is a -collection- of packages, not just a single package. That said, there is +a 'single' package entry in most linux distribution 'package managers' which +is itself a 'meta-package' containing a list of the packages needed to be +installed to have a complete SDK installed. Some people make the mistake of +installing the GCC package onto their system, thinking this is the SDK itself +(or that the other required packages of the SDK will be installed as +dependancy packages). In actuality, GCC is both a part of the overall SDK +-and- a valid stand-alone installation target, so installing it won't pull in +any other the other required SDK packages at all. +</p> +<p> +TODO: add SDK meta-package names for various linux distros +</p> +<p> +<b>Error:</b> +</p> +<pre> +Project.o: In function `JZProject': +/home/auser/Build/JazzBuild/src/../../jazz/src/Project.cpp:167: +undefined reference to `tAudioPlayer::tAudioPlayer(JZSong*)' +/home/auser/Build/JazzBuild/src/../../jazz/src/Project.cpp:167: +undefined reference to `tAudioPlayer::tAudioPlayer(JZSong*)' +collect2: ld returned 1 exit status +</pre> +<p> +<b>Problem:</b> ALSA library headers missing, Alsa-dev package not installed +</p> +<p> +<b>Solution:</b> Install ALSA development package and retry. +</p> +<p> +Most linux distributions do not defaulty install all 'development' packages. +These development packages contain all the runtime library header (and +sometimes 'C' code) files needed for other programs (like Jazz++) to compile. +Jazz++ depends on the ALSA API function declarations to build on linux, so you +need to install this package before attempting to compile Jazz++ from source +tarball or the svn repository. +</p> +<p> +TODO: add ALSA devel package names for various linux distros +</p> <?php require_once('../include/footer.php'); ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-22 18:16:42
|
Revision: 558 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=558&view=rev Author: pstieber Date: 2008-05-22 11:16:07 -0700 (Thu, 22 May 2008) Log Message: ----------- Encapsulated the mControl and mValue data members of the tControl class. Modified Paths: -------------- trunk/jazz/src/AlsaPlayer.cpp trunk/jazz/src/Command.cpp trunk/jazz/src/ControlEdit.cpp trunk/jazz/src/Dialogs.cpp trunk/jazz/src/Events.h trunk/jazz/src/Player.cpp trunk/jazz/src/Track.cpp trunk/jazz/src/Track.h trunk/jazz/src/mswin/WindowsPlayer.cpp Modified: trunk/jazz/src/AlsaPlayer.cpp =================================================================== --- trunk/jazz/src/AlsaPlayer.cpp 2008-05-22 16:10:26 UTC (rev 557) +++ trunk/jazz/src/AlsaPlayer.cpp 2008-05-22 18:16:07 UTC (rev 558) @@ -467,8 +467,8 @@ tControl *k = pEvent->IsControl(); set_event_header(&ev, pEvent->GetClock(), SND_SEQ_EVENT_CONTROLLER); ev.data.control.channel = k->GetChannel(); - ev.data.control.param = k->mControl; - ev.data.control.value = k->mValue; + ev.data.control.param = k->GetControl(); + ev.data.control.value = k->GetControlValue(); rc = write(&ev, now); } break; Modified: trunk/jazz/src/Command.cpp =================================================================== --- trunk/jazz/src/Command.cpp 2008-05-22 16:10:26 UTC (rev 557) +++ trunk/jazz/src/Command.cpp 2008-05-22 18:16:07 UTC (rev 558) @@ -766,10 +766,10 @@ tControl* pControl = pEvent->IsControl(); if (pControl) { - if (pControl->mControl == fr) + if (pControl->GetControl() == fr) { tControl* pControlCopy = (tControl *)pControl->Copy(); - pControlCopy->mControl = to; + pControlCopy->SetControl(to); pTrack->Kill(pControl); pTrack->Put(pControlCopy); } Modified: trunk/jazz/src/ControlEdit.cpp =================================================================== --- trunk/jazz/src/ControlEdit.cpp 2008-05-22 16:10:26 UTC (rev 557) +++ trunk/jazz/src/ControlEdit.cpp 2008-05-22 18:16:07 UTC (rev 558) @@ -314,10 +314,12 @@ { if (IsCtrlEdit(pEvent)) { - if (Clock2Val(pEvent->GetClock()) != pEvent->IsControl()->mValue) + if ( + Clock2Val(pEvent->GetClock()) != + pEvent->IsControl()->GetControlValue()) { pControlCopy = pEvent->Copy()->IsControl(); - pControlCopy->mValue = Clock2Val(pEvent->GetClock()); + pControlCopy->SetControlValue(Clock2Val(pEvent->GetClock())); track->Kill(pEvent); track->Put(pControlCopy); } @@ -471,12 +473,12 @@ int tCtrlEdit::IsCtrlEdit(JZEvent* pEvent) { tControl* pControl = pEvent->IsControl(); - return (pControl && pControl->mControl == ctrl_num); + return (pControl && pControl->GetControl() == ctrl_num); } int tCtrlEdit::GetValue(JZEvent* pEvent) { - return pEvent->IsControl()->mValue; + return pEvent->IsControl()->GetControlValue(); } JZEvent * tCtrlEdit::NewEvent(long clock, int val) Modified: trunk/jazz/src/Dialogs.cpp =================================================================== --- trunk/jazz/src/Dialogs.cpp 2008-05-22 16:10:26 UTC (rev 557) +++ trunk/jazz/src/Dialogs.cpp 2008-05-22 18:16:07 UTC (rev 558) @@ -848,21 +848,21 @@ }; -tControlDlg::tControlDlg(tControl *e, JZPianoWindow* w, JZTrack *t) - : tChEventDlg(e, w, t)//, +tControlDlg::tControlDlg(tControl* pControl, JZPianoWindow* w, JZTrack *t) + : tChEventDlg(pControl, w, t)//, // Choice("Controller", &gpConfig->GetCtrlName(0), &Control) { - Event = e; - Value = e->mValue; - Control = e->mControl + 1; + Event = pControl; + Value = pControl->GetControlValue(); + Control = pControl->GetControl() + 1; } bool tControlDlg::OnClose() { - ((tControl *)Copy)->mValue = Value; + ((tControl *)Copy)->SetControlValue(Value); // Choice.GetValue(); - ((tControl *)Copy)->mControl = Control - 1; + ((tControl *)Copy)->SetControl(Control - 1); return tChEventDlg::OnClose(); } Modified: trunk/jazz/src/Events.h =================================================================== --- trunk/jazz/src/Events.h 2008-05-22 16:10:26 UTC (rev 557) +++ trunk/jazz/src/Events.h 2008-05-22 18:16:07 UTC (rev 558) @@ -338,8 +338,6 @@ } #endif - public: - unsigned char GetStat() const { return mStat; @@ -349,23 +347,24 @@ { return mClock & ~KILLED_CLOCK; } - void SetClock(int c) + + void SetClock(int Clock) { - mClock = c; + mClock = Clock; } - // the device is dynamically set when events are copied to - // the playback queue (from the track device) + // The device is dynamically set when events are copied to the playback + // queue (from the track device). enum { BROADCAST_DEVICE = 0 }; JZEvent(int Clock, unsigned char Stat) + : mStat(Stat), + mClock(Clock), + mDevice(BROADCAST_DEVICE) { - mClock = Clock; - mStat = Stat; - mDevice = BROADCAST_DEVICE; #ifdef E_DBUG Magic = MAGIC; #endif @@ -515,12 +514,13 @@ int mClock; - private: + private: int mDevice; }; - +//***************************************************************************** +//***************************************************************************** class tChannelEvent : public JZEvent { public: @@ -558,8 +558,6 @@ unsigned char mChannel; }; - - //***************************************************************************** //***************************************************************************** class tKeyOn : public tChannelEvent @@ -685,7 +683,8 @@ unsigned short mOffVelocity; }; - +//***************************************************************************** +//***************************************************************************** class tKeyOff : public tChannelEvent { public: @@ -740,7 +739,8 @@ unsigned char mOffVelocity; }; - +//***************************************************************************** +//***************************************************************************** class tPitch : public tChannelEvent { public: @@ -809,27 +809,24 @@ } }; - - +//***************************************************************************** +//***************************************************************************** class tControl : public tChannelEvent { public: - unsigned char mControl; - unsigned char mValue; - tControl( int Clock, int Channel, - unsigned char ctl, - unsigned char val) - : tChannelEvent(Clock, StatControl, Channel) + unsigned char Control, + unsigned char Value) + : tChannelEvent(Clock, StatControl, Channel), + mControl(Control), + mValue(Value) { - mControl = ctl; - mValue = val; } - virtual int Write(JZWriteBase &io) + virtual int Write(JZWriteBase& io) { edb(); return io.Write(this, mControl, mValue); @@ -859,10 +856,10 @@ return mControl; } - virtual void SetPitch(int p) + virtual void SetPitch(int Pitch) { edb(); - mControl = p; + mControl = Pitch; } virtual const wxPen* GetPen() const @@ -874,6 +871,31 @@ { return wxCYAN_BRUSH; } + + unsigned char GetControl() const + { + return mControl; + } + + void SetControl(unsigned char Control) + { + mControl = Control; + } + + unsigned char GetControlValue() const + { + return mValue; + } + + void SetControlValue(unsigned char Value) + { + mValue = Value; + } + + private: + + unsigned char mControl; + unsigned char mValue; }; @@ -1525,7 +1547,8 @@ virtual int Write(JZWriteBase &io) { - edb(); return io.Write(this, Numerator, Denomiator, Clocks, Quarter); + edb(); + return io.Write(this, Numerator, Denomiator, Clocks, Quarter); } virtual tTimeSignat* IsTimeSignat() @@ -1550,7 +1573,8 @@ } }; -//end of track JAVE new event(it is a standard type, i want it to define track loop points, as defined by the midi standard) +// End of track JAVE new event(it is a standard type, i want +// it to define track loop points, as defined by the midi standard) class tEndOfTrack : public JZEvent { public: @@ -1699,13 +1723,18 @@ edb(); return Value; } + virtual int GetPitch() const { edb(); return 0; } - virtual void SetPitch(int v) { edb(); } + virtual void SetPitch(int v) + { + edb(); + } + virtual const wxPen* GetPen() const { return wxGREEN_PEN; Modified: trunk/jazz/src/Player.cpp =================================================================== --- trunk/jazz/src/Player.cpp 2008-05-22 16:10:26 UTC (rev 557) +++ trunk/jazz/src/Player.cpp 2008-05-22 18:16:07 UTC (rev 558) @@ -1633,7 +1633,10 @@ pKeyOn->GetChannel(), pKeyOn->GetKey(), pKeyOn->GetVelocity()); - if (now) seqbuf_flush_last_event(); + if (now) + { + seqbuf_flush_last_event(); + } } break; @@ -1645,14 +1648,20 @@ pKeyOff->GetChannel(), pKeyOff->GetKey(), pKeyOff->GetOffVelocity()); - if (now) seqbuf_flush_last_event(); + if (now) + { + seqbuf_flush_last_event(); + } } break; case StatProgram: { tProgram* pProgram = pEvent->IsProgram(); SEQ_SET_PATCH(mididev, pProgram->GetChannel(), pProgram->GetProgram()); - if (now) seqbuf_flush_last_event(); + if (now) + { + seqbuf_flush_last_event(); + } } break; @@ -1661,7 +1670,10 @@ { tKeyPressure *k = pEvent->IsKeyPressure(); SEQ_KEY_PRESSURE(mididev, k->GetChannel(), k->Key, k->Value); - if (now) seqbuf_flush_last_event(); + if (now) + { + seqbuf_flush_last_event(); + } } break; // @@ -1670,15 +1682,21 @@ { tChnPressure *k = pEvent->IsChnPressure(); SEQ_CHN_PRESSURE(mididev, k->GetChannel(), k->Value); - if (now) seqbuf_flush_last_event(); + if (now) + { + seqbuf_flush_last_event(); + } } break; case StatControl: { tControl *k = pEvent->IsControl(); - SEQ_CONTROL(mididev, k->GetChannel(), k->mControl, k->mValue); - if (now) seqbuf_flush_last_event(); + SEQ_CONTROL(mididev, k->GetChannel(), k->GetControl(), k->GetControlValue()); + if (now) + { + seqbuf_flush_last_event(); + } } break; @@ -1686,7 +1704,10 @@ { tPitch *k = pEvent->IsPitch(); SEQ_BENDER(mididev, k->GetChannel(), k->Value + 8192); - if (now) seqbuf_flush_last_event(); + if (now) + { + seqbuf_flush_last_event(); + } } break; Modified: trunk/jazz/src/Track.cpp =================================================================== --- trunk/jazz/src/Track.cpp 2008-05-22 16:10:26 UTC (rev 557) +++ trunk/jazz/src/Track.cpp 2008-05-22 18:16:07 UTC (rev 558) @@ -246,14 +246,14 @@ } tDrumInstrumentParameter::tDrumInstrumentParameter(tNrpn *par) - : mPitch(par->mLsb.mValue), + : mPitch(par->mLsb.GetControlValue()), mpNext(0) { for (int i = drumPitchIndex; i < numDrumParameters; i++) { param[i] = 0; } - param[drumParam2Index(par->mMsb.mValue)] = par; + param[drumParam2Index(par->mMsb.GetControlValue())] = par; } tNrpn *tDrumInstrumentParameter::Get(int index) @@ -264,7 +264,7 @@ void tDrumInstrumentParameter::Put(tNrpn *par) { - param[par->mLsb.mValue] = par; + param[par->mLsb.GetControlValue()] = par; } tDrumInstrumentParameter *tDrumInstrumentParameter::Next() @@ -304,7 +304,7 @@ void tDrumInstrumentParameterList::PutParam(tNrpn *par) { - tDrumInstrumentParameter* ptr = GetElem(par->mLsb.mValue); + tDrumInstrumentParameter* ptr = GetElem(par->mLsb.GetControlValue()); if (!ptr) { ptr = new tDrumInstrumentParameter(par); @@ -313,7 +313,7 @@ } else { - ptr->param[drumParam2Index(par->mMsb.mValue)] = par; + ptr->param[drumParam2Index(par->mMsb.GetControlValue())] = par; } } @@ -847,7 +847,7 @@ } if ((pControl = e->IsControl()) != 0) { - switch (pControl->mControl) + switch (pControl->GetControl()) { case 0x07: if (!Volume) @@ -1388,7 +1388,7 @@ WrittenBefore = 0; if (e->IsControl()) { - switch (e->IsControl()->mControl) + switch (e->IsControl()->GetControl()) { // Don't write these again if present as events // and clock == 0 (should not happen) @@ -1459,22 +1459,22 @@ } if (e->IsControl()) { - switch (e->IsControl()->mControl) + switch (e->IsControl()->GetControl()) { // Grab Rpn/Nrpn/Bank from file and save them, don't put // them into event-array case 0x63: case 0x65: - Msb = e->IsControl()->mValue; // Rpn/Nrpn Msb + Msb = e->IsControl()->GetControlValue(); // Rpn/Nrpn Msb SpecialEvent = 1; break; case 0x62: case 0x64: - Lsb = e->IsControl()->mValue; // Rpn/Nrpn Lsb + Lsb = e->IsControl()->GetControlValue(); // Rpn/Nrpn Lsb SpecialEvent = 1; break; case 0x06: - Data = e->IsControl()->mValue; // Rpn/Nrpn Data + Data = e->IsControl()->GetControlValue(); // Rpn/Nrpn Data SpecialEvent = 1; cha = e->IsControl()->GetChannel(); switch (Msb) @@ -2171,7 +2171,7 @@ { if (Volume) { - return Volume->mValue + 1; + return Volume->GetControlValue() + 1; } return 0; } @@ -2193,13 +2193,17 @@ bool JZTrack::DecreaseVolume() { - if (Volume && Volume->mValue > 0) + if (Volume && Volume->GetControlValue() > 0) { Kill(Volume); - --Volume->mValue; + Volume->SetControlValue(Volume->GetControlValue() - 1); - JZEvent* pEvent = new tControl(0, Channel - 1, 0x07, Volume->mValue); + JZEvent* pEvent = new tControl( + 0, + Channel - 1, + 0x07, + Volume->GetControlValue()); Put(pEvent); gpMidiPlayer->OutNow(this, pEvent); @@ -2212,13 +2216,18 @@ bool JZTrack::IncreaseVolume() { - if (Volume && Volume->mValue < 127) + if (Volume && Volume->GetControlValue() < 127) { Kill(Volume); - ++Volume->mValue; + Volume->SetControlValue(Volume->GetControlValue() + 1); - JZEvent* pEvent = new tControl(0, Channel - 1, 0x07, Volume->mValue); + JZEvent* pEvent = new tControl( + 0, + Channel - 1, + 0x07, + Volume->GetControlValue()); + Put(pEvent); gpMidiPlayer->OutNow(this, pEvent); @@ -2235,7 +2244,7 @@ { if (Pan) { - return Pan->mValue + 1; + return Pan->GetControlValue() + 1; } return 0; } @@ -2261,7 +2270,7 @@ { if (Reverb) { - return Reverb->mValue + 1; + return Reverb->GetControlValue() + 1; } return 0; } @@ -2287,7 +2296,7 @@ { if (Chorus) { - return Chorus->mValue + 1; + return Chorus->GetControlValue() + 1; } return 0; } @@ -2317,7 +2326,7 @@ if (mpBank) { DEBUG(fprintf(stderr,"Bank %d selected.\n\n",mpBank->Value);) - return mpBank->mValue; + return mpBank->GetControlValue(); } else { @@ -2330,8 +2339,8 @@ for (int i=0; gpConfig->BankEntry(i).Command[0]>=0; i++) { if ( - gpConfig->BankEntry(i).Command[0] == mpBank->mValue && - gpConfig->BankEntry(i).Command[1] == mpBank2->mValue) + gpConfig->BankEntry(i).Command[0] == mpBank->GetControlValue() && + gpConfig->BankEntry(i).Command[1] == mpBank2->GetControlValue()) { DEBUG(fprintf(stderr,"Bank %d selected.\n\n",i);) return i; Modified: trunk/jazz/src/Track.h =================================================================== --- trunk/jazz/src/Track.h 2008-05-22 16:10:26 UTC (rev 557) +++ trunk/jazz/src/Track.h 2008-05-22 18:16:07 UTC (rev 558) @@ -101,7 +101,7 @@ virtual int GetVal() { - return mDataMsb.mValue; + return mDataMsb.GetValue(); } tControl mMsb; Modified: trunk/jazz/src/mswin/WindowsPlayer.cpp =================================================================== --- trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-22 16:10:26 UTC (rev 557) +++ trunk/jazz/src/mswin/WindowsPlayer.cpp 2008-05-22 18:16:07 UTC (rev 558) @@ -303,8 +303,8 @@ { tControl* pControl = pEvent->IsControl(); u.c[0] = 0xB0 | pControl->GetChannel(); - u.c[1] = pControl->mControl; - u.c[2] = pControl->mValue; + u.c[1] = pControl->GetControl(); + u.c[2] = pControl->GetControlValue(); } break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-22 16:21:54
|
Revision: 557 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=557&view=rev Author: pstieber Date: 2008-05-22 09:10:26 -0700 (Thu, 22 May 2008) Log Message: ----------- Added a FAAQ page for Donal to fill in ;-), and a link in the navigation pane displayed on all pages. Modified Paths: -------------- web/htdocs/include/leftnav.php Added Paths: ----------- web/htdocs/faq/ web/htdocs/faq/index.php Added: web/htdocs/faq/index.php =================================================================== --- web/htdocs/faq/index.php (rev 0) +++ web/htdocs/faq/index.php 2008-05-22 16:10:26 UTC (rev 557) @@ -0,0 +1,27 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<HTML xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > +<HEAD> +<LINK rel="stylesheet" href="/include/jazz.css" type="text/css" /> +<TITLE>Jazz++ FAQ</TITLE> +</HEAD> +<BODY> +<H1 class="title">Jazz++ MIDI Sequencer</H1> +<TABLE class="main"> +<TR> +<TD class="leftNav"> +<?php +require_once('../include/leftnav.php'); +?> +</TD> +<TD class="mainCopy"> +<H2>Jazz++ FAQ</H2> +<H3>User FAQ</H3> +<H3>Developer FAQ</H3> +<?php +require_once('../include/footer.php'); +?> +</TD> +</TR> +</TABLE> +</BODY> +</HTML> Modified: web/htdocs/include/leftnav.php =================================================================== --- web/htdocs/include/leftnav.php 2008-05-22 16:04:29 UTC (rev 556) +++ web/htdocs/include/leftnav.php 2008-05-22 16:10:26 UTC (rev 557) @@ -4,6 +4,7 @@ <p><a href="/download/">Download</a></p> <p><a href="/mailinglist/">Mailing Lists</a></p> <p><a href="/documentation/">Documentation</a></p> +<p><a href="/faq/">FAQ</a></p> <p><a href="http://sourceforge.net/projects/jazzplusplus">Sourceforge Project</a></p> <p><a href="/buildingwx/">Building wxWidgets</a></p> <p><a href="/subversion/">Subversion</a></p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-22 16:04:32
|
Revision: 556 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=556&view=rev Author: pstieber Date: 2008-05-22 09:04:29 -0700 (Thu, 22 May 2008) Log Message: ----------- Applied a slightly modified version of a patch provided by Donald B. Moore. Donald's changes: 1. mailinglist -- > Added etiquette guidelines, and a link to the cygwin acronyms page. 2. bugreports -- Adds note to reporting build problems section. Pete's changes: Minor formatting and line wrap changes. Great work Donald. Modified Paths: -------------- web/htdocs/bugreports/index.php web/htdocs/mailinglist/index.php Modified: web/htdocs/bugreports/index.php =================================================================== --- web/htdocs/bugreports/index.php 2008-05-22 14:12:39 UTC (rev 555) +++ web/htdocs/bugreports/index.php 2008-05-22 16:04:29 UTC (rev 556) @@ -109,12 +109,20 @@ most likely scenarios. </p> <p> -<u>If the Jazz++ source won't compile :</u> If you followed our instructions on -how to build Jazz++ from the svn repository, you will have ended up with a file -named 'BuildLog' in your local svn working directory where you compiled Jazz++. -Assuming your local svn copy is in your home directory, the location of this -file is ~/jazzplusplus/trunk/Build/BuildLog -- please attach this file to your -email and send it to us, and we'll see if we can help you fix it. +<u>If the Jazz++ source won't compile :</u> If you followed our instructions +on how to build Jazz++ from the svn repository, you will have ended up with a +file named '<TT>BuildLog</TT>' in your local svn working directory where you +compiled Jazz++. Assuming your local svn copy is in your home directory, the +location of this file is <TT>~/jazzplusplus/trunk/Build/BuildLog</TT> -- +please attach this file to your email and send it to us, and we'll see if we +can help you fix it. Note also here, if the Jazz++ svn source fails to compile +immediately after a recent change or addition to the Jazz++ code, it's very +likely the Jazz++ developers just haven't had the time to incorporate some of +these changes from platform branch to another, and they are likely well aware +of build problems related to such updates. If the Jazz++ svn source still +fails to compile for you after updating your svn tree a week or so -after- you +initially discovered your build problem, please let the Jazz++ developers +know. </p> <p> <u>If the Jazz++ source compiles but the resultant binary does strange or Modified: web/htdocs/mailinglist/index.php =================================================================== --- web/htdocs/mailinglist/index.php 2008-05-22 14:12:39 UTC (rev 555) +++ web/htdocs/mailinglist/index.php 2008-05-22 16:04:29 UTC (rev 556) @@ -18,8 +18,47 @@ <p> All of our mailings lists are hosted by SourceForge. To post an email to a particular list, you must subscribe to the list. This requirement reduces the -amount of spam on the lists. +amount of spam on the lists. To further reduce the possibility of spam +appearing on the lists, the Jazz++ project developers ask that you PLEASE +observe the following two items of 'list etiquette' when posting the Jazz++ +lists ; </p> +<h4>'PCYMTNQREAIYR'</h4> +<p> +<u>Please Configure Your Mailer To Not Quote Raw E-mail Addresses In Your +Replies</u>. Some email programs ('Mailers') by default include the raw e-mail +address in the "Joe <joe@example.com> wrote:" line. The web +archives for the mailing lists are publicly available. Let's not feed the spam +harvesters! Mailing lists are routine targets for spam software to come +looking for valid email addresses, and if you include raw email addresses in +your email replies you may well be inadvertantly and innocently unaware that +you're actually helping such spam operations in doing so. People who use their +web-browser and one or another of the free public email servers available... +like hotmail, yahoo and so on...have to be particularly careful with this, +and you may find that you have to manually delete raw email addresses from you +replies to comply with this etiquette. +</p> +<h4>'PCYMTWLL'</h4> +<p> +<u>Please Configure Your Mailer To Wrap Long Lines</u>. Some email programs +don't, and this is especially so when a web-browser interface is being used, +and then most of the message ends up looking like one lo-ong line in the web +archives. It's very annoying to have to scroll left and right as well as up +and down. Please be considerate of this situation! All you have to do is +remember to hit the return [enter] key at about 80 characters along each line, +and start a new line. Your email text in an web-browser window, should appear +as a column in the left of your web-browser window, not as a document that +fills the entire window page. It makes it easier for everyone if you please +comply with this etiquette when submitting emails to the lists. +</p> +<p> +For those interested, the Jazz++ (and many other) developers often use such +obscure and sometimes not very well known acronyms such as 'PCYMTNQREAIYR' or +'PCYMTWLL' when exchanging email with other list members. Many of the most +commonly used acronyms you will come across, can be viewed by visiting +<a href="http://cygwin.com/acronyms/#OLOCA">http://cygwin.com/acronyms/#OLOCA</a> +</p> + <h3>Jazz++ Users</h3> <p> This is where you should direct general usage questions and the like. There This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pst...@us...> - 2008-05-22 14:12:47
|
Revision: 555 http://jazzplusplus.svn.sourceforge.net/jazzplusplus/?rev=555&view=rev Author: pstieber Date: 2008-05-22 07:12:39 -0700 (Thu, 22 May 2008) Log Message: ----------- Applied a slightly modified version of a patch provided by Donald B. Moore. Donald's Changes: 1. Made many corrections, some text moved/reordered. 2. Made layout alignment and formatting corrections. 3. Added general section about MIDI/time/personal computers. 4. Filled out section on MIDI/synth soundcards+linux (preliminary). 5. Cleaned up & clarified some areas regarding soft-synths + Linux. 6. Added URL references and text to help people with linux/ALSA setup. Pete's changes: 1. Removed whit space from the ends of lines. 2. Reformatted links in the document. 3. Updated the mailing list content. Modified Paths: -------------- trunk/jazz/src/HelpFiles/jazz.tex Modified: trunk/jazz/src/HelpFiles/jazz.tex =================================================================== --- trunk/jazz/src/HelpFiles/jazz.tex 2008-05-22 05:42:06 UTC (rev 554) +++ trunk/jazz/src/HelpFiles/jazz.tex 2008-05-22 14:12:39 UTC (rev 555) @@ -16,8 +16,8 @@ \chapter{Introduction}\label{introduction} -JAZZ++ is a fully featured MIDI sequencer with audio support. In addition to -basic sequencer functions like record and play, JAZZ++ provides many edit +JAZZ++ is a fully featured MIDI sequencer with audio support. In addition to +basic sequencer functions like record and play, JAZZ++ provides many edit features like quantize, copy, transpose, graphical pitch editing, multiple undo/redo etc. @@ -49,23 +49,143 @@ \section{System requirements}\label{requirements} \subsection{MIDI and audio equipment} -To play MIDI music your PC must be attached to a MIDI synthesizer device. The -synthesizer can either be an integrated part of a sound-card, or an external -device attached to the PC with a cable. To record MIDI music you will need a -midi-capable piano-keyboard attached to the PC (as an alternative you can -enter notes using the mouse). -For audio you need an audio capable sound card. +*NEW* +[ed: this is an example of keeping original content] +The original Jazz++ documentation recorded here; + +"To play MIDI music your PC must be attached to a MIDI synthesizer +device. The synthesizer can either be an integrated part of a +sound-card, or an external device attached to the PC with a cable. +To record MIDI music you will need a midi-capable piano-keyboard +attached to the PC (as an alternative you can enter notes using +the mouse). For audio you need an audio capable sound card." + + +A lot of that is still the same even today - if you're not using +a hardware MIDI/synth soundcard or externally connected MIDI +synthesizer, you will need an audio capable soundcard to hear +anything. Today however, most personal computers already have +'onboard' audio sound chipsets, so for most people it's very +likely that you already have this requirement satisfied. Likewise, +MIDI/synth capable addon soundcards are a -lot- cheaper today +than when Jazz++ first started out, and you can buy MIDI/synth +soundcards of various types for under 50 dollars these days. +One can also buy high-end MIDI/synth soundcards for a few hundred +dollars if you're looking for the very best quality sound ouput, +or otherwise 'professional' features and specifications. + +Back when the original Jazz++ documentation was written, there +weren't many 'software synthesizer' programs available for the +personal computer, and even if they were available, the then +computing hardware was simply too slow to run such software +properly. A lot has changed since then and now. Today, even so +called 'entry level' personal computers have more than enough power +to run Jazz++ concurrently with one (or more) 'software synthesizers' +running on the same machine, thus making it possible for Jazz++ to +become the basis of a fully functional Digital Audio Workstation +(DAW) using otherwise standard, low cost personal computer systems +and/or other now affordable add-on sound/MIDI hardware options. + +This area of the Jazz++ documentation provides information +detailing how to get the most out of you personal computer when +using it with Jazz++, and also platform/OS specific information +regarding setting up and using Jazz++ with the now available +hardware technologies and various 'software synthesizer' MIDI +programs available to the user today. + + +*NEW* + +\item MIDI, Time and the Personal Computer + +The MIDI protocol attempts to be a real time protocol. This is +unsurprising -- sound generation and replay (of a song or most +all musical compositions) happens in real time, the audience +and/or the recording studio hear the performance in real time. +If you are a performer on stage using MIDI equipment, that MIDI +equipment must be operating as close to real time performance +as it possibly can -- when the performer plays a note on a MIDI +keyboard, that note event should be heard almost instantaneously +not in 50 to 200 milliseconds of time after the event. Likewise, +every note event should be acted upon - if the MIDI track is +sequenced to produce 8 beats on a kick drum voice, you should +hear the synthesizer produce 8 beats of that voice, not 7 beats. + +Time (with regards to MIDI) is what we used to measure the actual +deviation from 'real' time that the MIDI response time effectively +is. Remember, I stated MIDI *attempts* to be a real time protocol, +but in actual practise it very rarely is. There are latencies in +various parts of the MIDI chain -- even the physical length of +the MIDI patch-cords introduce latency..albeit small..into the +interconnected MIDI device chain. The response time of the +MIDI instrument receiving a transmitted note event is another +place latency can be experienced, and if you are using Jazz++ +to trigger another externally connected MIDI device which itself +is a sequencer, the timing is even more important to ensure +everything starts, plays, and remains 'in sync'. + +The above two paragraphs are things common to the MIDI domain +that MIDI users have always had to deal with, regardless of +whether or not a PC was being used in the MIDI chain. As a +matter of fact, a 'virtual' MIDI chain involving softsynths +and Jazz++ running on a PC, is subject to exactly the same +kinds of limitations and latency problems as 'real' MIDI +equipment does...plus one extra layer -- the inherent amount +of latency in the operating system and PC hardware being used +to 'host' the virtual MIDI machines and software programs. + +When using a PC in this fashion, there are possible latencies +in a few different places of the setup overall ; how fast the +'host' system executes (runs) Jazz++ itself, how fast the +generated note events can be delivered to/from the computer's +hardware ports, and/or how fast these same note events can +be delivered to and be rendered by a softsynth running concurrently +on the same system. Just how powerful your particular hardware is +does matter, however there are some common methods and practises +that can be employed to better tailor how your personal computer +performs with Jazz++. There are also some platform/OS specific +'tweaks' that can be employed to help make your platform of +choice run better when using Jazz++ with timing critical +protocols such as MIDI on the modern day PC. + +Running Jazz++ should not impose any significant system load +by itself, however it does rely on the operating system to +deliver the MIDI data to the intended hardware/virtual ports, +and also for delivering software data to the computer's +graphics adapter for GUI updates..ie; track window scrolling. + +No matter what PC hardware you are using, most all of this +software data has to be processed by (or pass through) the +operating system in use, and most modern operating systems +allow the software programmers to use so called 'real time' +kernel calls, and direct, immediate access to I/O ports and +so forth to the actual computer hardware itself. On some +platform/OS types this doesn't happen automatically, and some +users might have change some system configurations to achieve +optimum performance when using Jazz++ and MIDI on their +personal computing machine. + + +This area of the Jazz++ documentation provides information +detailing how to get the most out of you personal computer when +using it with Jazz++, and also platform/OS specific information +regarding setting up and using Jazz++ with the now available +hardware technologies and various 'software synthesizer' MIDI +programs available to the user today. + \subsection{Linux operating systems} +[ed: This part, down to my out mark, should probably go] + The device-independent part of JAZZ++ (the sequencer / editor part) is known to run on Linux, Sun-OS4 and Solaris2 systems, but should compile and run (with some minor hacking) on any system supporting Linux/X11. To compile you will need the wxWidgets GUI package together with GTK. The device-dependant part (midi-driver) currently supports: -\begin{itemize} + \item OSS/Free (OSS/Linux) midi driver API (formerly known as USS/Lite and VoxWare). This API is included in later Linux kernels. The JAZZ++ code interfacing OSS has only been tested on Linux platforms. @@ -75,174 +195,248 @@ application allowing the sequencer/editor and the midi-driver to run on separate computers. The native driver has better support for the MPU-401 than the JAZZ++/OSS solution (e.g. support for external timing source). + +[ed: and be replaced with something more current...ie; if it still +works on Sun-OS4 and Solaris2 systems currently is unknown, USS/lite +and voxware..?..and I thought mpu-401 was dinosaured? I'll get some +clarity before I deal with the section above. *MARK* ] + +\begin{itemize} + \item *New* - Introduction - -Years ago when the Jazz++ project first came to my attention, -using it with Linux on the PC was a much different proposition to -what is possible today on this platform/OS. Although it would be -entirely possible to create a MIDI score with jazz, (in the same way -this text is being produced with a text-editor), the whole point of -the exercise would be to compose a MIDI score you could actually hear. - - -Back then with Linux, making sound via MIDI applications meant having -MIDI *hardware*. This may have taken the form of a MIDI adapter plugged -in the PC's serial port or soundcard gameport (in MPU-401 mode), with a real -world MIDI instrument(s) attached to that, or else a MIDI capable soundcard -with a hardware based MIDI sound synthesis chip to make the actual sound. -(so called 'MIDI/synth' capable soundcards) -In that latter case, the soundcard necessarily had to be supported -by Linux drivers, and in that respect these drivers were more than -likely using the now deprecated 'OSS' sound system modules. - -Things have changed. The x86 based hardwares have become faster and -cheaper, Linux has grown and matured as an operating system, and -likewise Free software has multiplied and proliferated around the world -giving rise to the creation of a great many new software applications. -Along the way, the venerable 'OSS' sound system drivers were replaced -with the 'Advanced Linux Sound Architecture' (ALSA) drivers and API. - -The result of these many advances and changes over time, means Linux -users are no longer constrained by the need of having actual MIDI -capable hardware or a MIDI/synth capable soundcard, to obtain good sound -production with MIDI applications like Jazz++. Instead of having one -or more hardware sound synthesis chips (be they on a soundcard or -in a MIDI musical instrument) to produce the sound(s), we can now -use a software application to achieve the same ends, and many folks -loosely refer to these software applications as being 'softsynths'. +\end{itemize} -For many years now, users with Windows on their PC have had a distinct -advantage over Linux users on the PC, because virtually every sound -card (and/or onboard sound chip) typically ships with proprietary -Windows drivers that enable the use of that hardware as a 'softsynth' in -conjunction with the underlying Windows sound API supports. In -effect, Windows users could come to the website, download Jazz++ and -install it, and be making noise in under 2 minutes with very little -or no effort. If only users of other platforms/OS' could have it this -easy - hopefully this documentation will help bridge the (Linux) gap. - - - Hardware based sound synthesis and Linux on the x86 PC +Introduction -Thanks to all the great work done by the ALSA team over the years, Linux -now has much better driver supports for the various soundcards on the market -today that have hardware based MIDI/synth chips as part of their design. - -However, at this point documentation detailing the configuration and -use of such soundcard hardware with Linux and Jazz++ will be the -focus of future efforts here. Why? Simply because the majority of -people out there on the x86 PC don't have a hardware MIDI/synth soundcard -as part of their computer's hardware. They need to know how to setup a -'softsynth' in Linux if they don't have this sort of soundcard or -any 'real' MIDI hardware to hear Jazz++ with...and believe me, this -will be 80% or more of people out there using Linux and the PC. - +Years ago when the Jazz++ project first came to my attention, +using it with Linux on the PC was a much different proposition to +what is possible today on this platform/OS. Although it would be +entirely possible to create a MIDI score with jazz, (in the same way +this text is being produced with a text-editor), the whole point of +the exercise would be to compose a MIDI score you could actually hear. -I will however include a section here soon listing all the sound -cards of this type that are currently supported under Linux, and -later document configuration details here for use with Jazz++. - +Back then with Linux, making sound via MIDI applications meant having +MIDI *hardware*. This may have taken the form of a MIDI adapter plugged +in the PC's serial port or soundcard gameport (in MPU-401 mode), with a real +world MIDI instrument(s) attached to that, or else a MIDI capable soundcard +with a hardware based MIDI sound synthesis chip to make the actual sound. +(so called 'MIDI/synth' capable soundcards) In that latter case, the +soundcard necessarily had to be supported by Linux drivers, and in that +respect these drivers were more than likely using the now deprecated 'OSS' +sound system modules. +Things have changed. The x86 based hardwares have become faster and +cheaper, Linux has grown and matured as an operating system, and +likewise Free software has multiplied and proliferated around the world +giving rise to the creation of a great many new software applications. +Along the way, the venerable 'OSS' sound system drivers were replaced +with the 'Advanced Linux Sound Architecture' (ALSA) drivers and API. - Software based sound synthesis and Linux on the x86 PC - -This area of the documentation will grow over time. There is a lot -that can be documented here now with Linux, however at this early -stage of Jazz++'s development, it's more important for potential -users and testers of the Jazz++ code to have some form of consistant -MIDI 'test-bed' to prove and test Jazz++ itself on linux. +The result of these many advances and changes over time, means Linux +users are no longer constrained by the need of having actual MIDI +capable hardware or a MIDI/synth capable soundcard, to obtain good sound +production with MIDI applications like Jazz++. Instead of having one +or more hardware sound synthesis chips (be they on a soundcard or +in a MIDI musical instrument) to produce the sound(s), we can now +use a software application to achieve the same ends, and many folks +loosely refer to these software applications as being 'softsynths'. -Although this isn't 'set in stone', the Jazz++ developers have -been using a softsynth setup in Linux as I describe below, which -uses JACK, FLUIDSYNTH and QSYNTH. A similar setup should also -work on the Mac running Mac OSX. - -Essentially, -any- ALSA based, MIDI capable softsynth setup -should work with Jazz++, and I've already tested a few that seem -to work fine. However, more consistant and comparable results of -testing, will be observed using the same softsynth 'kit' as the -Jazz++ developers do, and this is why documentation of this -softsynth setup comes first. +For many years now, users with Windows on their PC have had a distinct +advantage over Linux users on the PC, because virtually every sound +card (and/or 'onboard' sound chip) typically ships with proprietary +Windows drivers that enable the use of that hardware as a 'softsynth' in +conjunction with the underlying Windows sound API supports. In effect, +Windows users could come to the website, download Jazz++ and install it, +and be making noise in under 2 minutes with very little or no effort. If +only users of other platforms/OS' could have it this easy - hopefully +this documentation will help bridge the gap, when using Jazz++ on this +platform with MIDI softsynth implementations. - - Overview of a typical Linux softsynth setup -\item Abstract: - -Softsynth setups in Linux are comprised of a number of -software applications which work together to form a virtual -machine that emulates hardware based MIDI/synth devices. The -so formed virtual machine can be easily broken down into it's -individual parts, to better understand how the components -'expose' themselves to the user ; - -\item The ALSA part -- forms virtual MIDI and real audio paths for the -other parts of the virtual machine to communicate across. Allows -PCM data rendered by the virtual machine to be realized as an -analogue audio signal at the line outputs of the soundcard hardware. -\item The JACK part -- a low-latency sound server. Forms both a virtual -MIDI patch-bay and a virtual audio patch-bay to control and -define how the virtual machine parts interconnect with and across -the virtual and real machine paths formed by the ALSA part. +\begin{itemize} +\item Hardware based sound synthesis and Linux on the x86 PC +\end{itemize} +Thanks to all the great work done by the ALSA team over the years, Linux +now has much better driver supports for the various soundcards on the market +today that have hardware based MIDI/synth chips as part of their design. -\item The FLUIDSYNTH part -- the virtual MIDI synthesizer itself. It -accepts valid MIDI data as input, and renders that data into -PCM data output, as determined by sound/instrument data contained +One of the main benefits of using MIDI/synth based soundcards (and +this is true for all platforms), is that it removes the system overhead +of having a softsynth running -- the MIDI data output of Jazz++ is sent +directly to the hardware MIDI/synth chip on the soundcard, and it takes +care of generating the actual sound (and sound data) itself. This allows +the kernel to be closer to 'real time' when using Jazz++, because the +system CPU isn't having to 'play' the sound, and render that sound, all +at the same time. A good analogy, would be to compare all this to the +difference it makes to system -graphics- performance, when you add +a dedicated 3D graphics-card with it's own onboard processor unit. Not +only are the graphics greatly improved, the system responsiveness is +greatly improved. + +Adding a dedicated MIDI/synth soundcard to your system helps for +exactly the same reasons here - it frees up your system CPU so it +can do other tasks. In Linux, drivers for more than a few of these types of +MIDI/synth soundcards are already available, and are a standard part +of the linux kernel tree. Most linux distributions include so called +'hardware detection' softwares, which should automatically discover +your MIDI/synth soundcard (if supported), and configure your system's +ALSA drivers accordingly. Sometimes these routines do not detect certain +hardware cards correctly (or at all) in some situations, however it is +beyond the scope of the Jazz++ manual to help people with problems of this +nature. + +The correct place to get help with specific ALSA / soundcard related +problems, can be found by visiting the ALSA website at ; + +\urlref{http://www.alsa-project.org/}{http://www.alsa-project.org/} + +The lastest list of ALSA supported MIDI/synth soundcards, is always +available inside the current alsa-driver source tarball available from +the above website. Once you unpack that archive, read the file ; + +alsa-driver-1.0.1x/doc/SOUNDCARDS + +There you can see if your MIDI/synth soundcard is currently supported +under ALSA and linux. Some MIDI/synth soundcards require firmware being +loaded before the card will work - most all of these kinds of soundcards +require some kind of helper application called a 'loader' to copy various +instrument files and data (for example 'soundfont' files) into the working +RAM of the MIDI/synth chip. Documentation regarding these things and help +with configuring ALSA itself can be found in the same alsa-driver archive ; + +alsa-driver-1.0.1x/alsa-kernel/Documentation/ + + +Another good repository of current knowledge regarding linux sound drivers +overall (not just the ALSA sound drivers) can be found at ; + +\urlref{http://linux-sound.org/drivers.html}{http://linux-sound.org/drivers.html} + +Once you have your MIDI/synth soundcard up and running, it will appear +in Jazz++ configuration dialogs just like any other MIDI device connected +to the computer running Jazz++. Using a hardware based MIDI/synth soundcard, +is very much like using a software based 'softsynth' as described below - +you still have to decide which soundfonts to use, and which bank to load them +into. Hardware or software, they are both MIDI instruments, and share very +common ways of getting things done at this level. + + + + +\begin{itemize} +\item Software based sound synthesis and Linux on the x86 PC +\end{itemize} +This area of the documentation will grow over time. There is a lot +that can be documented here now with Linux. + +In the early stages of the current Jazz++'s revitalization, developers, +users and testers alike of the Jazz++ source code used softsynths. One +of the softsynth setups used by the Jazz++ developers and testers in Linux, +is as I describe below, which uses JACK, FLUIDSYNTH and QSYNTH. A similar +setup should also work on the Mac running Mac OSX. + +Essentially, -any- ALSA based, MIDI capable softsynth setup should work +with Jazz++ in linux. I've already tested a few that seem to work fine. +However, it is useful to know how to setup the same softsynth kit that +the Jazz++ developers use for testing and improving the Jazz++ code itself, +and this is why documentation of this softsynth setup comes first. + +\item Overview of a typical Linux softsynth setup + +Abstract: + +Softsynth setups in Linux are comprised of a number of +software applications which work together to form a virtual +machine that emulates hardware based MIDI/synth devices. The +so formed virtual machine can be easily broken down into it's +individual parts, to better understand how the components +'expose' themselves to the user ; + +\item The ALSA part -- forms virtual MIDI and real audio paths for the +other parts of the virtual machine to communicate across. Allows +PCM data rendered by the virtual machine to be realized as an +analogue audio signal at the line outputs of the soundcard hardware. + +\item The JACK part -- a low-latency sound server. Forms both a virtual +MIDI patch-bay and a virtual audio patch-bay to control and +define how the virtual machine parts interconnect with and across +the virtual and real machine paths formed by the ALSA part. + +\item The FLUIDSYNTH part -- the virtual MIDI synthesizer itself. It +accepts valid MIDI data as input, and renders that data into +PCM data output, as determined by sound/instrument data contained in a 'SoundFont' file. -\item The QSYNTH part -- this forms the virtual control panel of the -virtual synthesizer part. Essentially, this comprises a GUI to -easily allow the user to change/control the virtual synthesizer -itself, add/remove SoundFont files, define bank settings, and -adjust other working parameters of the virtual synthesizer itself. - -Additionally, the QJACKCTL software provides a GUI visualization -of the virtual MIDI/audio patch-bays formed by the JACK part, -allowing the user a quick and easy way to 'hook it all up' as it -were, in any particular configuration they desire. - -For the sake of accuracy with this overview, it is worth noting -that Jazz++ itself is a virtual machine - it is a software emulation -of -hardware- based MIDI sequencers that were in common use years -ago. Jazz++ is of course much more capable than these old hardware -sequencers I speak of, which in their day were little more than -'drum machines' triggering sound events on a MIDI or otherwise -connected 'tip-and-ring patch cord configured' analogue synthesizer. - -Also note here, the virtual machine softsynth described in the -overview above, lacks one obvious component - the INPUT part. -It is basically a virtual MIDI synthesizer with all the bells, -knobs and whistles, but without a keyboard or anything else -'driving' it. Jazz++ is that part. The MIDI data produced by Jazz++ -is that MIDI input data the FLUIDSYNTH part accepts. - -Jazz++ can itself accept valid MIDI data from either the virtual -and/or 'real world' MIDI domains. This means, you can connect -a real MIDI synthesizer keyboard to Jazz++ as a MIDI data INPUT -part, and record notes played on that with Jazz++. Equally, you -could connect the same external MIDI keyboard as an INPUT part -to FLUIDSYNTH and use the virtual MIDI softsynth to replay the -notes you are playing instead of the synthesizer's own hardware kit. +\item The QSYNTH part -- this forms the virtual control panel of the +virtual synthesizer part. Essentially, this comprises a GUI to +easily allow the user to change/control the virtual synthesizer +itself, add/remove SoundFont files, define bank settings, and +adjust other working parameters of the virtual synthesizer itself. -Finally, there are other virtual machines in software that -can be used as valid MIDI data INPUT parts here, such as the -program VKEYBD, which is a virtual onscreen MIDI keyboard GUI -with keys you click on with your mouse -- all these MIDI devices -be they virtual machines or not, can interact and interconnect -with each other, and thus possibly form very complex MIDI -sound production environments that traverse and inter-operate +Additionally, the QJACKCTL software provides a GUI visualization +of the virtual MIDI/audio patch-bays formed by the JACK part, +allowing the user a quick and easy way to 'hook it all up' as it +were, in any particular configuration they desire. + +For the sake of accuracy with this overview, it is worth noting +that Jazz++ itself is a virtual machine - it is a software emulation +of -hardware- based MIDI sequencers that were in common use years +ago, so called 'step sequencers'. Jazz++ is of course much more +capable than these old hardware sequencers I speak of, and more +closely resembles a modern day Digial Audio Workstation. In their +day, old MIDI sequencers were little more than 'drum machines' +triggering sound events on a MIDI or otherwise connected 'tip-and +-ring patch cord configured' analogue synthesizer. + +Also note here, the virtual machine softsynth described in the +overview above, lacks one obvious component - the INPUT part. +It is basically a virtual MIDI synthesizer with all the bells, +knobs and whistles, but without a keyboard or anything else +'driving' it. Jazz++ is that part. The MIDI data produced by Jazz++ +is that MIDI input data the FLUIDSYNTH part accepts. + +Jazz++ can itself accept valid MIDI data from either the virtual +and/or 'real world' MIDI domains. This means, you can connect +a real MIDI synthesizer keyboard to Jazz++ as a MIDI data INPUT +part, and record notes played on that with Jazz++. Equally, you +could connect the same external MIDI keyboard as an INPUT part +to FLUIDSYNTH and use the virtual MIDI softsynth to replay the +notes you are playing instead of the synthesizer's own hardware +kit. Other combinations are possible as well. + +Finally, there are other virtual machines in software that +can be used as valid MIDI data INPUT parts here, such as the +program VKEYBD, which is a virtual onscreen MIDI keyboard GUI +with keys you click on with your mouse -- all these MIDI devices +be they virtual machines or not, can interact and interconnect +with each other, and thus possibly form very complex MIDI +sound production environments that traverse and inter-operate across the software virtual and real hardware MIDI domains. \item Practical: +Many people have troubles getting these softsynths installed and +working properly on Linux based systems. The Jazz++ developers +have also noted, that dependant on just which Linux distribution +you use, (and what release version that might be), also dictates +just how easy or difficult this process might be to complete. + +If you have any problems with the following instructions, +please check the documentation Appendix for possible solutions +relative to the Linux distribution you might be using. + +For some Linux distributions, the whole process can be as +straight forward and simple as installing the needed software +packages from your Linux distribution's installation discs and/or +online package repository. + Still work in progress, come back soon!! -\end{itemize} + \subsection{Windows operating systems} JAZZ++ supports the windows MIDI / audio driver interface. A driver for your @@ -264,17 +458,32 @@ JAZZ++ homepage at \begin{indented}{2cm} -{\tt http://jazzplusplus.sourceforge.net} +\urlref{http://jazzplusplus.sourceforge.net}{http://jazzplusplus.sourceforge.net} \end{indented} -You are welcome to join the JAZZ++ mailing list by sending mail to +You are welcome to join the JAZZ++ mailing lists. In order to cut down on the +amount of spam on the list, you must subscribe to post to any of the lists. +There are three mailing lists. The first is a devoted to JAZZ++ users. To +subscribe, visit \begin{indented}{2cm} -{\tt jaz...@li...} +\urlref{https://lists.sourceforge.net/lists/listinfo/jazzplusplus-user}{https://lists.sourceforge.net/lists/listinfo/jazzplusplus-user} \end{indented} -with subject-field containing {\tt subscribe}. +The second is devoted to developers. To subscribe visit +\begin{indented}{2cm} +\urlref{https://lists.sourceforge.net/lists/listinfo/jazzplusplus-devel}{https://lists.sourceforge.net/lists/listinfo/jazzplusplus-devel} +\end{indented} + +The third list contains messages generated by developers when they commit +documentation, web content, or code to the JAZZ++ sunversion repository. +To subscribe visit + +\begin{indented}{2cm} +\urlref{https://lists.sourceforge.net/lists/listinfo/jazzplusplus-updates}{https://lists.sourceforge.net/lists/listinfo/jazzplusplus-updates} +\end{indented} + We'd be happy to receive your bug reports (well, somehow) or success stories. And - of course - you are welcome to contribute to the JAZZ++ project by sending code, suggestions, ..., or corrections for this This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |