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]" )
172 if ( pDrumkit ==
nullptr ) {
179 INFOLOG( QString(
"Session Drumkit [%1] loaded from [%2]" )
180 .arg( pDrumkit->get_name() )
181 .arg( sDrumkitPath ) );
203 if ( bTriggerEvent ) {
211 QString sFile = sPatternDir + sName;
212 std::shared_ptr<SoundLibraryInfo> pInfo =
213 std::make_shared<SoundLibraryInfo>();
215 if ( pInfo->load( sFile ) ) {
216 INFOLOG( QString(
"Pattern [%1] of category [%2] loaded from [%3]" )
217 .arg( pInfo->getName() ).arg( pInfo->getCategory() )
233 sOutput = QString(
"%1[SoundLibraryDatabase]\n" ).arg( sPrefix )
234 .append( QString(
"%1%2m_drumkitDatabase:\n" ).arg( sPrefix ).arg( s ) );
236 sOutput.append( QString(
"%1%2%2%3: %4\n" ).arg( sPrefix ).arg( s )
237 .arg( ssPath ).arg( ddrumkit->toQString(
"",
true ) ) );
239 sOutput.append( QString(
"%1%2m_patternInfoVector:\n" ).arg( sPrefix ).arg( s ) );
241 sOutput.append( QString(
"%3\n" )
242 .arg( ppatternInfo->toQString( sPrefix + s + s, bShort ) ) );
244 sOutput.append( QString(
"%1%2m_patternCategories: %3\n" ).arg( sPrefix ).arg( s )
246 sOutput.append( QString(
"%1%2m_customDrumkitPaths:\n" ).arg( sPrefix ).arg( s ) );
248 sOutput.append( QString(
"%1%2%2%3\n" ).arg( sPrefix ).arg( s )
249 .arg( ssCustomPath ) );
254 sOutput = QString(
"%1[SoundLibraryDatabase]\n" ).arg( sPrefix )
255 .append( QString(
"%1%2m_drumkitDatabase:\n" ).arg( sPrefix ).arg( s ) );
257 sOutput.append( QString(
"%1%2%2%3\n" ).arg( sPrefix ).arg( s )
258 .arg( eentry.first ) );
260 sOutput.append( QString(
"%1%2m_patternInfoVector:\n" ).arg( sPrefix ).arg( s ) );
262 sOutput.append( QString(
"%1%2%2%3\n" ).arg( sPrefix ).arg( s )
263 .arg( ppatternInfo->getPath() ) );
265 sOutput.append( QString(
"%1%2m_patternCategories: %3\n" ).arg( sPrefix ).arg( s )
267 sOutput.append( QString(
"%1%2m_customDrumkitPaths:\n" ).arg( sPrefix ).arg( s ) );
269 sOutput.append( QString(
"%1%2%2%3\n" ).arg( sPrefix ).arg( s )
270 .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 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