diff options
-rw-r--r-- | core/qmpmidioutrtmidi.cpp | 11 | ||||
-rw-r--r-- | qmidiplayer-desktop/main.cpp | 11 | ||||
-rw-r--r-- | qmidiplayer-desktop/qmpdevpropdialog.cpp | 2 | ||||
-rw-r--r-- | qmidiplayer-desktop/qmppresetselect.cpp | 1 |
4 files changed, 13 insertions, 12 deletions
diff --git a/core/qmpmidioutrtmidi.cpp b/core/qmpmidioutrtmidi.cpp index 6dc9ca6..eeda04b 100644 --- a/core/qmpmidioutrtmidi.cpp +++ b/core/qmpmidioutrtmidi.cpp @@ -26,14 +26,16 @@ qmpDeviceInitializer* qmpDeviceInitializer::parse(const char* path) { qmpDeviceInitializer *ret=new qmpDeviceInitializer(); ret->initseq.eventList.clear(); - FILE* f=fopen(path, "r"); - if(!f)return nullptr; bool st_inmapping=false; char buf[1024]; int ln=0; int cmsb=-1,clsb=-1; +#define err(e) {delete ret;return fprintf(stderr,"line %d: %s",ln,e),nullptr;} + FILE* f=fopen(path,"r"); + if(!f)err("file not found") + //writing such a bad parser makes me want my money for //the credits from "compiler principles" back... auto h2d=[](char c)->char{return 'F'>=c&&c>='A'?c-'A'+10:'9'>=c&&c>='0'?c-'0':-1;}; @@ -45,7 +47,6 @@ qmpDeviceInitializer* qmpDeviceInitializer::parse(const char* path) (x<0||x>0xff)&&(x=-1); return r==1?x:-1; }; -#define err(e) {delete ret;return fprintf(stderr,"line %d: %s",ln,e),nullptr;} while(fgets(buf,1024,f)) { ++ln; @@ -232,17 +233,13 @@ void qmpMidiOutRtMidi::reset(uint8_t ch) if(ch==0xFF) { if(devinit) - { for(auto&msg:devinit->initseq.eventList) { if((msg.type&0xF0)==0xF0) extendedMessage(msg.str.length(),msg.str.data()); else - { basicMessage(msg.type,msg.p1,msg.p2); - } } - } } else { diff --git a/qmidiplayer-desktop/main.cpp b/qmidiplayer-desktop/main.cpp index ba44e99..37f6338 100644 --- a/qmidiplayer-desktop/main.cpp +++ b/qmidiplayer-desktop/main.cpp @@ -27,9 +27,6 @@ int main(int argc,char **argv) { -#ifdef _WIN32 - FreeConsole(); -#endif QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); QCoreApplication::setApplicationName("qmidiplayer"); QCoreApplication::setApplicationVersion(APP_VERSION); @@ -52,8 +49,16 @@ int main(int argc,char **argv) clp.addPositionalArgument("file",QCoreApplication::translate("main","midi files to play (optional)."),"[files...]"); clp.addOption(QCommandLineOption("plugin",QCoreApplication::translate("main","Load a plugin from <plugin library>."),"plugin library")); clp.addOption(QCommandLineOption({"l","load-all-files"},QCoreApplication::translate("main","Load all files from the same folder."))); +#ifdef _WIN32 + clp.addOption(QCommandLineOption("keep-console",QCoreApplication::translate("main","Keep console window open."))); +#endif clp.process(a); +#ifdef _WIN32 + if(!clp.isSet("keep-console")) + FreeConsole(); +#endif + qmpMainWindow w(&clp); if(w.parseArgs()==1)return 0; w.init(); diff --git a/qmidiplayer-desktop/qmpdevpropdialog.cpp b/qmidiplayer-desktop/qmpdevpropdialog.cpp index 82136dc..64c385d 100644 --- a/qmidiplayer-desktop/qmpdevpropdialog.cpp +++ b/qmidiplayer-desktop/qmpdevpropdialog.cpp @@ -21,7 +21,7 @@ qmpDevPropDialog::qmpDevPropDialog(QWidget *parent) : this->ui->twProps->edit(ui->twProps->model()->index(r,c)); if(c==3) { - QString p=QFileDialog::getOpenFileUrl(this,"Select Device Initialization File",QUrl()).path(); + QString p=QFileDialog::getOpenFileUrl(this,"Select Device Initialization File",QUrl()).toLocalFile(); if(p.length())this->ui->twProps->item(r,2)->setText(p); } }); diff --git a/qmidiplayer-desktop/qmppresetselect.cpp b/qmidiplayer-desktop/qmppresetselect.cpp index 578ae1d..85dc893 100644 --- a/qmidiplayer-desktop/qmppresetselect.cpp +++ b/qmidiplayer-desktop/qmppresetselect.cpp @@ -27,7 +27,6 @@ void qmpPresetSelector::showEvent(QShowEvent *e) void qmpPresetSelector::setupWindow(int chid) { CMidiPlayer *plyr=qmpMainWindow::getInstance()->getPlayer(); - if(!plyr->fluid()->getSFCount())return; ch=chid;int r;char name[256]; uint16_t b;uint8_t p; std::string pstname; |