44 INFOLOG( QString(
"Name: [%1]" ).arg( pPatternInfo->getName() ) );
48 INFOLOG( QString(
"Category: [%1]" ).arg( sCategory ) );
55 if ( pPatternInfo->getName() == sPatternName ) {
75 QStringList drumkitPaths;
88 if ( ! drumkitPaths.contains( sDrumkitPath ) ) {
89 drumkitPaths << sDrumkitPath;
93 for (
const auto& sDrumkitPath : drumkitPaths ) {
95 if ( pDrumkit !=
nullptr ) {
98 ERRORLOG( QString(
"A drumkit was already loaded from [%1]. Something went wrong." )
99 .arg( sDrumkitPath ) );
103 INFOLOG( QString(
"Drumkit [%1] loaded from [%2]" )
104 .arg( pDrumkit->get_name() )
105 .arg( sDrumkitPath ) );
111 ERRORLOG( QString(
"Unable to load drumkit at [%1]" ).arg( sDrumkitPath ) );
115 if ( bTriggerEvent ) {
123 if ( pDrumkit !=
nullptr ) {
127 ERRORLOG( QString(
"Unable to load drumkit at [%1]" ).arg( sDrumkitPath ) );
130 if ( bTriggerEvent ) {
141 QString sDrumkitPath;
142 if ( sDrumkit.contains(
"/" ) || sDrumkit.contains(
"\\" ) ) {
144 sDrumkitPath = sDrumkit;
154 if ( sDrumkitPath.isEmpty() ) {
155 ERRORLOG( QString(
"Unable determine drumkit path based on supplied string [%1]" )
173 if ( pDrumkit ==
nullptr ) {
180 INFOLOG( QString(
"Session Drumkit [%1] loaded from [%2]" )
181 .arg( pDrumkit->get_name() )
182 .arg( sDrumkitPath ) );
204 if ( bTriggerEvent ) {
212 QString sFile = sPatternDir + sName;
213 std::shared_ptr<SoundLibraryInfo> pInfo =
214 std::make_shared<SoundLibraryInfo>();
216 if ( pInfo->load( sFile ) ) {
217 INFOLOG( QString(
"Pattern [%1] of category [%2] loaded from [%3]" )
218 .arg( pInfo->getName() ).arg( pInfo->getCategory() )
234 sOutput = QString(
"%1[SoundLibraryDatabase]\n" ).arg( sPrefix )
235 .append( QString(
"%1%2m_drumkitDatabase:\n" ).arg( sPrefix ).arg( s ) );
237 sOutput.append( QString(
"%1%2%2%3: %4\n" ).arg( sPrefix ).arg( s )
238 .arg( ssPath ).arg( ddrumkit->toQString(
"",
true ) ) );
240 sOutput.append( QString(
"%1%2m_patternInfoVector:\n" ).arg( sPrefix ).arg( s ) );
242 sOutput.append( QString(
"%3\n" )
243 .arg( ppatternInfo->toQString( sPrefix + s + s, bShort ) ) );
245 sOutput.append( QString(
"%1%2m_patternCategories: %3\n" ).arg( sPrefix ).arg( s )
247 sOutput.append( QString(
"%1%2m_customDrumkitPaths:\n" ).arg( sPrefix ).arg( s ) );
249 sOutput.append( QString(
"%1%2%2%3\n" ).arg( sPrefix ).arg( s )
250 .arg( ssCustomPath ) );
255 sOutput = QString(
"%1[SoundLibraryDatabase]\n" ).arg( sPrefix )
256 .append( QString(
"%1%2m_drumkitDatabase:\n" ).arg( sPrefix ).arg( s ) );
258 sOutput.append( QString(
"%1%2%2%3\n" ).arg( sPrefix ).arg( s )
259 .arg( eentry.first ) );
261 sOutput.append( QString(
"%1%2m_patternInfoVector:\n" ).arg( sPrefix ).arg( s ) );
263 sOutput.append( QString(
"%1%2%2%3\n" ).arg( sPrefix ).arg( s )
264 .arg( ppatternInfo->getPath() ) );
266 sOutput.append( QString(
"%1%2m_patternCategories: %3\n" ).arg( sPrefix ).arg( s )
268 sOutput.append( QString(
"%1%2m_customDrumkitPaths:\n" ).arg( sPrefix ).arg( s ) );
270 sOutput.append( QString(
"%1%2%2%3\n" ).arg( sPrefix ).arg( s )
271 .arg( ssCustomPath ) );
static QString sPrintIndention
String used to format the debugging string output of some core classes.
static std::shared_ptr< Drumkit > load(const QString &dk_dir, bool bUpgrade=true, bool *pLegacyFormatEncountered=nullptr, bool bSilent=false)
Load drumkit information from a directory.
static EventQueue * get_instance()
Returns a pointer to the current EventQueue singleton stored in __instance.
void push_event(const EventType type, const int nValue)
Queues the next event into the EventQueue.
static QString absolute_path(const QString &sFilename, bool bSilent=false)
Convert a direct to an absolute path.
static QString usr_drumkits_dir()
returns user drumkits path
static QStringList pattern_list()
returns a list of existing patterns
static QString sys_drumkits_dir()
returns system drumkits path
static QStringList usr_drumkit_list()
returns list of usable user drumkits ( see Filesystem::drumkit_list )
@ stacked
First, looks in the system drumkits and, afterwards, in the user drumkits.
static QStringList sys_drumkit_list()
returns list of usable system drumkits ( see Filesystem::drumkit_list )
static QString drumkit_path_search(const QString &dk_name, Lookup lookup=Lookup::stacked, bool bSilent=false)
Returns the path to a H2Core::Drumkit folder.
static QStringList pattern_drumkits()
returns a list of existing drumkit sub dir into the patterns directory
static QString patterns_dir()
returns user patterns path
std::map< QString, std::shared_ptr< Drumkit > > m_drumkitDatabase
void updateDrumkits(bool bTriggerEvent=true)
void loadPatternFromDirectory(const QString &path)
bool isPatternInstalled(const QString &sPatternName) const
void updateDrumkit(const QString &sDrumkitPath, bool bTriggerEvent=true)
void updatePatterns(bool bTriggerEvent=true)
QStringList m_customDrumkitPaths
List of drumkits the user supplied via CLI or OSC command but couldn't be found in either the system'...
QString toQString(const QString &sPrefix="", bool bShort=true) const override
Formatted string version for debugging purposes.
std::vector< std::shared_ptr< SoundLibraryInfo > > m_patternInfoVector
void printPatterns() const
QStringList m_patternCategories
std::shared_ptr< Drumkit > getDrumkit(const QString &sDrumkitPath, bool bLoad=true)
Retrieve a drumkit from the database.
@ EVENT_SOUND_LIBRARY_CHANGED