diff --git a/Jamulus.pro b/Jamulus.pro index 66da708f..164258c3 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -678,34 +678,34 @@ DISTFILES += ChangeLog \ src/res/VRLEDRedSmall.png \ src/res/VRLEDYellow.png \ src/res/VRLEDYellowSmall.png \ - src/res/instruments/instraccordeon.png \ - src/res/instruments/instraguitar.png \ - src/res/instruments/instrbassguitar.png \ - src/res/instruments/instrcello.png \ - src/res/instruments/instrclarinet.png \ - src/res/instruments/instrdjembe.png \ - src/res/instruments/instrdoublebass.png \ - src/res/instruments/instrdrumset.png \ - src/res/instruments/instreguitar.png \ - src/res/instruments/instrflute.png \ - src/res/instruments/instrfrenchhorn.png \ - src/res/instruments/instrgrandpiano.png \ - src/res/instruments/instrharmonica.png \ - src/res/instruments/instrkeyboard.png \ - src/res/instruments/instrlistener.png \ - src/res/instruments/instrmicrophone.png \ - src/res/instruments/instrnone.png \ - src/res/instruments/instrrecorder.png \ - src/res/instruments/instrsaxophone.png \ - src/res/instruments/instrstreamer.png \ - src/res/instruments/instrsynthesizer.png \ - src/res/instruments/instrtrombone.png \ - src/res/instruments/instrtrumpet.png \ - src/res/instruments/instrtuba.png \ - src/res/instruments/instrviolin.png \ - src/res/instruments/instrvocal.png \ - src/res/instruments/instrguitarvocal.png \ - src/res/instruments/instrkeyboardvocal.png \ + src/res/instruments/accordeon.png \ + src/res/instruments/aguitar.png \ + src/res/instruments/bassguitar.png \ + src/res/instruments/cello.png \ + src/res/instruments/clarinet.png \ + src/res/instruments/djembe.png \ + src/res/instruments/doublebass.png \ + src/res/instruments/drumset.png \ + src/res/instruments/eguitar.png \ + src/res/instruments/flute.png \ + src/res/instruments/frenchhorn.png \ + src/res/instruments/grandpiano.png \ + src/res/instruments/harmonica.png \ + src/res/instruments/keyboard.png \ + src/res/instruments/listener.png \ + src/res/instruments/microphone.png \ + src/res/instruments/none.png \ + src/res/instruments/recorder.png \ + src/res/instruments/saxophone.png \ + src/res/instruments/streamer.png \ + src/res/instruments/synthesizer.png \ + src/res/instruments/trombone.png \ + src/res/instruments/trumpet.png \ + src/res/instruments/tuba.png \ + src/res/instruments/violin.png \ + src/res/instruments/vocal.png \ + src/res/instruments/guitarvocal.png \ + src/res/instruments/keyboardvocal.png \ src/res/instruments/bodhran.svg \ src/res/instruments/bodhran.png \ src/res/instruments/bassoon.svg \ diff --git a/distributions/debian/control b/distributions/debian/control index 10809972..9f198a9c 100644 --- a/distributions/debian/control +++ b/distributions/debian/control @@ -23,9 +23,6 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, - jackd, - qt5-default, - qtchooser, Description: Low latency Audio Server/Client The Jamulus software enables musicians to perform real-time jam sessions over the internet. There is one server running the Jamulus server software which diff --git a/src/channel.h b/src/channel.h index 9c34ef01..7a60ea3e 100755 --- a/src/channel.h +++ b/src/channel.h @@ -105,6 +105,7 @@ public: { Protocol.CreateChanInfoMes ( ChInfo ); } void CreateReqChanInfoMes() { Protocol.CreateReqChanInfoMes(); } + void CreateVersionAndOSMes() { Protocol.CreateVersionAndOSMes(); } void SetGain ( const int iChanID, const double dNewGain ); double GetGain ( const int iChanID ); diff --git a/src/protocol.cpp b/src/protocol.cpp index 61945493..26f7b47f 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -161,7 +161,7 @@ MESSAGES (with connection) | 1 byte licence type | +---------------------+ -- PROTMESSID_CLM_REQ_CHANNEL_LEVEL_LIST: Opt in or out of the channel level list +- PROTMESSID_REQ_CHANNEL_LEVEL_LIST: Opt in or out of the channel level list +---------------+ | 1 byte option | @@ -169,6 +169,12 @@ MESSAGES (with connection) option is boolean, true to opt in, false to opt out +- PROTMESSID_VERSION_AND_OS: Version number and operating system + + +-------------------------+------------------+------------------------------+ + | 1 byte operating system | 2 bytes number n | n bytes UTF-8 string version | + +-------------------------+------------------+------------------------------+ + // #### COMPATIBILITY OLD VERSION, TO BE REMOVED #### - PROTMESSID_OPUS_SUPPORTED: Informs that OPUS codec is supported @@ -619,6 +625,10 @@ if ( rand() < ( RAND_MAX / 2 ) ) return false; case PROTMESSID_REQ_CHANNEL_LEVEL_LIST: bRet = EvaluateReqChannelLevelListMes ( vecbyMesBodyData ); break; + + case PROTMESSID_VERSION_AND_OS: + bRet = EvaluateVersionAndOSMes ( vecbyMesBodyData ); + break; } // immediately send acknowledge message @@ -1390,6 +1400,71 @@ bool CProtocol::EvaluateReqChannelLevelListMes ( const CVector& vecData return false; // no error } +void CProtocol::CreateVersionAndOSMes() +{ + int iPos = 0; // init position pointer + + // get the version number string + const QString strVerion = VERSION; + + // convert version string to utf-8 + const QByteArray strUTF8Version = strVerion.toUtf8(); + + // size of current message body + const int iEntrLen = + 1 /* operating system */ + + 2 /* version utf-8 string size */ + strUTF8Version.size(); + + // build data vector + CVector vecData ( iEntrLen ); + + // operating system (1 byte) + PutValOnStream ( vecData, iPos, + static_cast ( COSUtil::GetOperatingSystem() ), 1 ); + + // version + PutStringUTF8OnStream ( vecData, iPos, strUTF8Version ); + + CreateAndSendMessage ( PROTMESSID_VERSION_AND_OS, vecData ); +} + +bool CProtocol::EvaluateVersionAndOSMes ( const CVector& vecData ) +{ + int iPos = 0; // init position pointer + const int iDataLen = vecData.Size(); + + // check size (the first 1 byte) + if ( iDataLen < 1 ) + { + return true; // return error code + } + + // operating system (1 byte) + const COSUtil::EOpSystemType eOSType = + static_cast ( GetValFromStream ( vecData, iPos, 1 ) ); + + // version text + QString strVersion; + if ( GetStringFromStream ( vecData, + iPos, + MAX_LEN_VERSION_TEXT, + strVersion ) ) + { + return true; // return error code + } + + // check size: all data is read, the position must now be at the end + if ( iPos != iDataLen ) + { + return true; // return error code + } + + // invoke message action + emit VersionAndOSReceived ( eOSType, strVersion ); + + return false; // no error +} + // Connection less messages ---------------------------------------------------- void CProtocol::CreateCLPingMes ( const CHostAddress& InetAddr, const int iMs ) diff --git a/src/protocol.h b/src/protocol.h old mode 100755 new mode 100644 index f2b218f4..4b19174e --- a/src/protocol.h +++ b/src/protocol.h @@ -55,7 +55,8 @@ #define PROTMESSID_OPUS_SUPPORTED 26 // tells that OPUS codec is supported #define PROTMESSID_LICENCE_REQUIRED 27 // licence required #define PROTMESSID_REQ_CHANNEL_LEVEL_LIST 28 // request the channel level list -#define PROTMESSID_CHANNEL_PAN 29 // set channel gain for mix +#define PROTMESSID_VERSION_AND_OS 29 // version number and operating system +#define PROTMESSID_CHANNEL_PAN 30 // set channel pan for mix // message IDs of connection less messages (CLM) // DEFINITION -> start at 1000, end at 1999, see IsConnectionLessMessageID @@ -108,6 +109,7 @@ public: void CreateLicenceRequiredMes ( const ELicenceType eLicenceType ); void CreateOpusSupportedMes(); void CreateReqChannelLevelListMes ( const bool bRCL ); + void CreateVersionAndOSMes(); void CreateCLPingMes ( const CHostAddress& InetAddr, const int iMs ); void CreateCLPingWithNumClientsMes ( const CHostAddress& InetAddr, @@ -230,6 +232,7 @@ protected: bool EvaluateReqNetwTranspPropsMes(); bool EvaluateLicenceRequiredMes ( const CVector& vecData ); bool EvaluateReqChannelLevelListMes ( const CVector& vecData ); + bool EvaluateVersionAndOSMes ( const CVector& vecData ); bool EvaluateCLPingMes ( const CHostAddress& InetAddr, const CVector& vecData ); @@ -290,6 +293,7 @@ signals: void ReqNetTranspProps(); void LicenceRequired ( ELicenceType eLicenceType ); void ReqChannelLevelList ( bool bOptIn ); + void VersionAndOSReceived ( COSUtil::EOpSystemType eOSType, QString strVersion ); void CLPingReceived ( CHostAddress InetAddr, int iMs ); diff --git a/src/res/instruments/instraccordeon.png b/src/res/instruments/accordeon.png similarity index 100% rename from src/res/instruments/instraccordeon.png rename to src/res/instruments/accordeon.png diff --git a/src/res/instruments/instraguitar.png b/src/res/instruments/aguitar.png similarity index 100% rename from src/res/instruments/instraguitar.png rename to src/res/instruments/aguitar.png diff --git a/src/res/instruments/instrbassguitar.png b/src/res/instruments/bassguitar.png similarity index 100% rename from src/res/instruments/instrbassguitar.png rename to src/res/instruments/bassguitar.png diff --git a/src/res/instruments/instrcello.png b/src/res/instruments/cello.png similarity index 100% rename from src/res/instruments/instrcello.png rename to src/res/instruments/cello.png diff --git a/src/res/instruments/instrclarinet.png b/src/res/instruments/clarinet.png similarity index 100% rename from src/res/instruments/instrclarinet.png rename to src/res/instruments/clarinet.png diff --git a/src/res/instruments/instrdjembe.png b/src/res/instruments/djembe.png similarity index 100% rename from src/res/instruments/instrdjembe.png rename to src/res/instruments/djembe.png diff --git a/src/res/instruments/instrdoublebass.png b/src/res/instruments/doublebass.png similarity index 100% rename from src/res/instruments/instrdoublebass.png rename to src/res/instruments/doublebass.png diff --git a/src/res/instruments/instrdrumset.png b/src/res/instruments/drumset.png similarity index 100% rename from src/res/instruments/instrdrumset.png rename to src/res/instruments/drumset.png diff --git a/src/res/instruments/instreguitar.png b/src/res/instruments/eguitar.png similarity index 100% rename from src/res/instruments/instreguitar.png rename to src/res/instruments/eguitar.png diff --git a/src/res/instruments/instrflute.png b/src/res/instruments/flute.png similarity index 100% rename from src/res/instruments/instrflute.png rename to src/res/instruments/flute.png diff --git a/src/res/instruments/instrfrenchhorn.png b/src/res/instruments/frenchhorn.png similarity index 100% rename from src/res/instruments/instrfrenchhorn.png rename to src/res/instruments/frenchhorn.png diff --git a/src/res/instruments/instrgrandpiano.png b/src/res/instruments/grandpiano.png similarity index 100% rename from src/res/instruments/instrgrandpiano.png rename to src/res/instruments/grandpiano.png diff --git a/src/res/instruments/instrguitarvocal.png b/src/res/instruments/guitarvocal.png similarity index 100% rename from src/res/instruments/instrguitarvocal.png rename to src/res/instruments/guitarvocal.png diff --git a/src/res/instruments/instrharmonica.png b/src/res/instruments/harmonica.png similarity index 100% rename from src/res/instruments/instrharmonica.png rename to src/res/instruments/harmonica.png diff --git a/src/res/instruments/instrkeyboard.png b/src/res/instruments/keyboard.png similarity index 100% rename from src/res/instruments/instrkeyboard.png rename to src/res/instruments/keyboard.png diff --git a/src/res/instruments/instrkeyboardvocal.png b/src/res/instruments/keyboardvocal.png similarity index 100% rename from src/res/instruments/instrkeyboardvocal.png rename to src/res/instruments/keyboardvocal.png diff --git a/src/res/instruments/instrlistener.png b/src/res/instruments/listener.png similarity index 100% rename from src/res/instruments/instrlistener.png rename to src/res/instruments/listener.png diff --git a/src/res/instruments/instrmicrophone.png b/src/res/instruments/microphone.png similarity index 100% rename from src/res/instruments/instrmicrophone.png rename to src/res/instruments/microphone.png diff --git a/src/res/instruments/instrnone.png b/src/res/instruments/none.png similarity index 100% rename from src/res/instruments/instrnone.png rename to src/res/instruments/none.png diff --git a/src/res/instruments/instrrecorder.png b/src/res/instruments/recorder.png similarity index 100% rename from src/res/instruments/instrrecorder.png rename to src/res/instruments/recorder.png diff --git a/src/res/instruments/instrsaxophone.png b/src/res/instruments/saxophone.png similarity index 100% rename from src/res/instruments/instrsaxophone.png rename to src/res/instruments/saxophone.png diff --git a/src/res/instruments/instrstreamer.png b/src/res/instruments/streamer.png similarity index 100% rename from src/res/instruments/instrstreamer.png rename to src/res/instruments/streamer.png diff --git a/src/res/instruments/instrsynthesizer.png b/src/res/instruments/synthesizer.png similarity index 100% rename from src/res/instruments/instrsynthesizer.png rename to src/res/instruments/synthesizer.png diff --git a/src/res/instruments/instrtrombone.png b/src/res/instruments/trombone.png similarity index 100% rename from src/res/instruments/instrtrombone.png rename to src/res/instruments/trombone.png diff --git a/src/res/instruments/instrtrumpet.png b/src/res/instruments/trumpet.png similarity index 100% rename from src/res/instruments/instrtrumpet.png rename to src/res/instruments/trumpet.png diff --git a/src/res/instruments/instrtuba.png b/src/res/instruments/tuba.png similarity index 100% rename from src/res/instruments/instrtuba.png rename to src/res/instruments/tuba.png diff --git a/src/res/instruments/instrviolin.png b/src/res/instruments/violin.png similarity index 100% rename from src/res/instruments/instrviolin.png rename to src/res/instruments/violin.png diff --git a/src/res/instruments/instrvocal.png b/src/res/instruments/vocal.png similarity index 100% rename from src/res/instruments/instrvocal.png rename to src/res/instruments/vocal.png diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index f7654dd1..97eca6ca 100644 Binary files a/src/res/translation/translation_de_DE.qm and b/src/res/translation/translation_de_DE.qm differ diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 87c5608d..57aceaec 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -81,12 +81,12 @@ Dutch - + Holländisch German - + Deutsch @@ -180,7 +180,7 @@ Personal Mix at the Server: - + Eigener Mix am Server: @@ -641,7 +641,7 @@ Central Server - + Zentralserver @@ -1151,22 +1151,22 @@ Custom - + Benutzerdefiniert All Genres - + Alle Genres Genre Rock - + Genre Jazz - + @@ -1201,7 +1201,7 @@ Predefined Address - + Vordefinierte Adresse @@ -1470,7 +1470,7 @@ List - + Liste @@ -1923,22 +1923,22 @@ Vocal Bass - + Gesang Bass Vocal Tenor - + Gesang Tenor Vocal Alto - + Gesang Alt Vocal Soprano - + Gesang Sopran @@ -2104,7 +2104,7 @@ Predefined Address - + Vordefinierte Adresse Manual diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 29b8f1da..ccb1bf69 100644 Binary files a/src/res/translation/translation_es_ES.qm and b/src/res/translation/translation_es_ES.qm differ diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 79c75f2c..f57e21b6 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -184,7 +184,7 @@ Personal Mix at the Server: - + Mezcla Personal en el Servidor: @@ -645,7 +645,7 @@ Central Server - + Servidor Central @@ -1155,22 +1155,22 @@ Custom - + Personalizado All Genres - + Todos los Géneros Genre Rock - + Género Rock Genre Jazz - + Género Jazz @@ -1205,7 +1205,7 @@ Predefined Address - + Dirección Preestablecida @@ -1478,7 +1478,7 @@ List - + Lista @@ -1931,22 +1931,22 @@ Vocal Bass - + Voz bajo Vocal Tenor - + Voz Tenor Vocal Alto - + Voz Alto Vocal Soprano - + Voz Soprano @@ -2112,7 +2112,7 @@ Predefined Address - + Dirección Preestablecida Manual diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 37aab986..52d8b3db 100644 Binary files a/src/res/translation/translation_fr_FR.qm and b/src/res/translation/translation_fr_FR.qm differ diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index a2a9fd20..15c49444 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -192,7 +192,7 @@ Personal Mix at the Server: - + Mixage personnel au serveur : @@ -1163,22 +1163,22 @@ Custom - + Personnalisé All Genres - + Tous les genres Genre Rock - + Genre Rock Genre Jazz - + Genre Jazz @@ -1187,7 +1187,7 @@ Default (North America) - Défault (Amérique du Nord) + Défaut (Amérique du Nord) @@ -1482,7 +1482,7 @@ List - + Liste @@ -1935,22 +1935,22 @@ Vocal Bass - + Voix basse Vocal Tenor - + Voix ténor Vocal Alto - + Voix alto Vocal Soprano - + Voix soprano @@ -2250,7 +2250,7 @@ The Jack server is not running. This software requires a Jack server to run. Normally if the Jack server is not running this software will automatically start the Jack server. It seems that this auto start has not worked. Try to start the Jack server manually. - + Le serveur Jack n'est pas démarré. Ce logiciel nécessite un serveur Jack pour fonctionner. Normalement, si le serveur Jack n'est pas en cours d'exécution, ce logiciel démarrera automatiquement le serveur Jack. Il semble que ce démarrage automatique n'ait pas fonctionné. Essayez de démarrer le serveur Jack manuellement. @@ -2395,7 +2395,7 @@ Please restart the software. - + Veuillez redémarrer le logiciel diff --git a/src/resources.qrc b/src/resources.qrc index c10bebbc..d4fc7491 100755 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -36,34 +36,34 @@ res/mixerboardbackground.png - res/instruments/instrnone.png - res/instruments/instrbassguitar.png - res/instruments/instrclarinet.png - res/instruments/instrdrumset.png - res/instruments/instreguitar.png - res/instruments/instrsaxophone.png - res/instruments/instrtrumpet.png - res/instruments/instrmicrophone.png - res/instruments/instrkeyboard.png - res/instruments/instrviolin.png - res/instruments/instraguitar.png - res/instruments/instrflute.png - res/instruments/instraccordeon.png - res/instruments/instrcello.png - res/instruments/instrtrombone.png - res/instruments/instrfrenchhorn.png - res/instruments/instrtuba.png - res/instruments/instrdoublebass.png - res/instruments/instrgrandpiano.png - res/instruments/instrsynthesizer.png - res/instruments/instrvocal.png - res/instruments/instrdjembe.png - res/instruments/instrharmonica.png - res/instruments/instrrecorder.png - res/instruments/instrlistener.png - res/instruments/instrstreamer.png - res/instruments/instrguitarvocal.png - res/instruments/instrkeyboardvocal.png + res/instruments/none.png + res/instruments/bassguitar.png + res/instruments/clarinet.png + res/instruments/drumset.png + res/instruments/eguitar.png + res/instruments/saxophone.png + res/instruments/trumpet.png + res/instruments/microphone.png + res/instruments/keyboard.png + res/instruments/violin.png + res/instruments/aguitar.png + res/instruments/flute.png + res/instruments/accordeon.png + res/instruments/cello.png + res/instruments/trombone.png + res/instruments/frenchhorn.png + res/instruments/tuba.png + res/instruments/doublebass.png + res/instruments/grandpiano.png + res/instruments/synthesizer.png + res/instruments/vocal.png + res/instruments/djembe.png + res/instruments/harmonica.png + res/instruments/recorder.png + res/instruments/listener.png + res/instruments/streamer.png + res/instruments/guitarvocal.png + res/instruments/keyboardvocal.png res/instruments/bodhran.png res/instruments/bassoon.png res/instruments/oboe.png diff --git a/src/server.cpp b/src/server.cpp index e0bcad00..1c8301f3 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -599,6 +599,9 @@ CreateAndSendChanListForAllConChannels(); vecChannels[iChID].CreateLicReqMes ( eLicenceType ); } + // send version info (for, e.g., feature activation in the client) + vecChannels[iChID].CreateVersionAndOSMes(); + // reset the conversion buffers DoubleFrameSizeConvBufIn[iChID].Reset(); DoubleFrameSizeConvBufOut[iChID].Reset(); diff --git a/src/util.cpp b/src/util.cpp index ade66fb4..6b9fb2ae 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -973,34 +973,34 @@ CVector& CInstPictures::GetTable() // instrument picture data base initialization // NOTE: Do not change the order of any instrument in the future! // NOTE: The very first entry is the "not used" element per definition. - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "None" ), ":/png/instr/res/instruments/instrnone.png", IC_OTHER_INSTRUMENT ) ); // special first element - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Drum Set" ), ":/png/instr/res/instruments/instrdrumset.png", IC_PERCUSSION_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Djembe" ), ":/png/instr/res/instruments/instrdjembe.png", IC_PERCUSSION_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Electric Guitar" ), ":/png/instr/res/instruments/instreguitar.png", IC_PLUCKING_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Acoustic Guitar" ), ":/png/instr/res/instruments/instraguitar.png", IC_PLUCKING_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Bass Guitar" ), ":/png/instr/res/instruments/instrbassguitar.png", IC_PLUCKING_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Keyboard" ), ":/png/instr/res/instruments/instrkeyboard.png", IC_KEYBOARD_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Synthesizer" ), ":/png/instr/res/instruments/instrsynthesizer.png", IC_KEYBOARD_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Grand Piano" ), ":/png/instr/res/instruments/instrgrandpiano.png", IC_KEYBOARD_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Accordion" ), ":/png/instr/res/instruments/instraccordeon.png", IC_KEYBOARD_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal" ), ":/png/instr/res/instruments/instrvocal.png", IC_OTHER_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Microphone" ), ":/png/instr/res/instruments/instrmicrophone.png", IC_OTHER_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Harmonica" ), ":/png/instr/res/instruments/instrharmonica.png", IC_WIND_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Trumpet" ), ":/png/instr/res/instruments/instrtrumpet.png", IC_WIND_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Trombone" ), ":/png/instr/res/instruments/instrtrombone.png", IC_WIND_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "French Horn" ), ":/png/instr/res/instruments/instrfrenchhorn.png", IC_WIND_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Tuba" ), ":/png/instr/res/instruments/instrtuba.png", IC_WIND_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Saxophone" ), ":/png/instr/res/instruments/instrsaxophone.png", IC_WIND_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Clarinet" ), ":/png/instr/res/instruments/instrclarinet.png", IC_WIND_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Flute" ), ":/png/instr/res/instruments/instrflute.png", IC_WIND_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Violin" ), ":/png/instr/res/instruments/instrviolin.png", IC_STRING_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Cello" ), ":/png/instr/res/instruments/instrcello.png", IC_STRING_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Double Bass" ), ":/png/instr/res/instruments/instrdoublebass.png", IC_STRING_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Recorder" ), ":/png/instr/res/instruments/instrrecorder.png", IC_OTHER_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Streamer" ), ":/png/instr/res/instruments/instrstreamer.png", IC_OTHER_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Listener" ), ":/png/instr/res/instruments/instrlistener.png", IC_OTHER_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Guitar+Vocal" ), ":/png/instr/res/instruments/instrguitarvocal.png", IC_MULTIPLE_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Keyboard+Vocal" ), ":/png/instr/res/instruments/instrkeyboardvocal.png", IC_MULTIPLE_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "None" ), ":/png/instr/res/instruments/none.png", IC_OTHER_INSTRUMENT ) ); // special first element + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Drum Set" ), ":/png/instr/res/instruments/drumset.png", IC_PERCUSSION_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Djembe" ), ":/png/instr/res/instruments/djembe.png", IC_PERCUSSION_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Electric Guitar" ), ":/png/instr/res/instruments/eguitar.png", IC_PLUCKING_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Acoustic Guitar" ), ":/png/instr/res/instruments/aguitar.png", IC_PLUCKING_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Bass Guitar" ), ":/png/instr/res/instruments/bassguitar.png", IC_PLUCKING_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Keyboard" ), ":/png/instr/res/instruments/keyboard.png", IC_KEYBOARD_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Synthesizer" ), ":/png/instr/res/instruments/synthesizer.png", IC_KEYBOARD_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Grand Piano" ), ":/png/instr/res/instruments/grandpiano.png", IC_KEYBOARD_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Accordion" ), ":/png/instr/res/instruments/accordeon.png", IC_KEYBOARD_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal" ), ":/png/instr/res/instruments/vocal.png", IC_OTHER_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Microphone" ), ":/png/instr/res/instruments/microphone.png", IC_OTHER_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Harmonica" ), ":/png/instr/res/instruments/harmonica.png", IC_WIND_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Trumpet" ), ":/png/instr/res/instruments/trumpet.png", IC_WIND_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Trombone" ), ":/png/instr/res/instruments/trombone.png", IC_WIND_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "French Horn" ), ":/png/instr/res/instruments/frenchhorn.png", IC_WIND_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Tuba" ), ":/png/instr/res/instruments/tuba.png", IC_WIND_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Saxophone" ), ":/png/instr/res/instruments/saxophone.png", IC_WIND_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Clarinet" ), ":/png/instr/res/instruments/clarinet.png", IC_WIND_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Flute" ), ":/png/instr/res/instruments/flute.png", IC_WIND_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Violin" ), ":/png/instr/res/instruments/violin.png", IC_STRING_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Cello" ), ":/png/instr/res/instruments/cello.png", IC_STRING_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Double Bass" ), ":/png/instr/res/instruments/doublebass.png", IC_STRING_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Recorder" ), ":/png/instr/res/instruments/recorder.png", IC_OTHER_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Streamer" ), ":/png/instr/res/instruments/streamer.png", IC_OTHER_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Listener" ), ":/png/instr/res/instruments/listener.png", IC_OTHER_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Guitar+Vocal" ), ":/png/instr/res/instruments/guitarvocal.png", IC_MULTIPLE_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Keyboard+Vocal" ), ":/png/instr/res/instruments/keyboardvocal.png", IC_MULTIPLE_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Bodhran" ), ":/png/instr/res/instruments/bodhran.png", IC_PERCUSSION_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Bassoon" ), ":/png/instr/res/instruments/bassoon.png", IC_WIND_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Oboe" ), ":/png/instr/res/instruments/oboe.png", IC_WIND_INSTRUMENT ) );