TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicqmmputils.cpp
Go to the documentation of this file.
1 #include "musicqmmputils.h"
2 #include "musicsettingmanager.h"
3 
4 #include <QSettings>
5 #include <qmmp/qmmp.h>
6 #include <qmmp/visual.h>
7 #include <qmmp/visualfactory.h>
8 #include <qmmp/effect.h>
9 #include <qmmp/effectfactory.h>
10 
11 QString TTK::TTKQmmp::pluginPath(const QString &module, const QString &format)
12 {
13  QString path = TTK::applicationPath();
14 #ifdef Q_OS_WIN
15  path = path + QString("plugins/%1/%2.dll").arg(module, format);
16 #elif defined Q_OS_UNIX
17  path = path + QString("plugins/%1/lib%2.so").arg(module, format);
18 #endif
19  return path;
20 }
21 
23 {
24  QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
25  settings.beginGroup("Http");
26  settings.setValue("buffer_path", CACHE_DIR_FULL);
27  settings.endGroup();
28 
29  settings.beginGroup("Archive");
30  settings.setValue("unpack_path", ARCHIVE_DIR_DIR_FULL);
31  settings.endGroup();
32 }
33 
34 void TTK::TTKQmmp::enabledEffectPlugin(bool enabled, const QString &name)
35 {
36  for(EffectFactory *factory : Effect::factories())
37  {
38  if(name.isEmpty())
39  {
40  Effect::setEnabled(factory, enabled);
41  }
42  else if(factory->properties().shortName == name)
43  {
44  Effect::setEnabled(factory, enabled);
45  break;
46  }
47  }
48 }
49 
50 MusicPluginPropertyList TTK::TTKQmmp::effectPlugins()
51 {
52  MusicPluginPropertyList properties;
53  for(EffectFactory *factory : Effect::factories())
54  {
55 #ifdef Q_OS_WIN
56  if(factory->properties().shortName == "ladspa")
57  {
58  continue;
59  }
60 #endif
61  MusicPluginProperty property;
62  property.m_type = factory->properties().shortName;
63  property.m_name = factory->properties().name;
64  property.m_hasSettings = factory->properties().hasSettings;
65  properties << property;
66  }
67  return properties;
68 }
69 
70 void TTK::TTKQmmp::showEffectSetting(const QString &name, QWidget *parent)
71 {
72  for(EffectFactory *factory : Effect::factories())
73  {
74  if(factory->properties().shortName == name)
75  {
76  factory->showSettings(parent);
77  break;
78  }
79  }
80 }
81 
82 void TTK::TTKQmmp::enabledVisualPlugin(const QString &name, bool enabled)
83 {
85  {
86  if(v->properties().shortName == name)
87  {
88  Visual::setEnabled(v, enabled);
89  break;
90  }
91  }
92 }
93 
95 {
96  QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
97  settings.beginGroup("OuterBlurWave");
98 
99  QString colors = G_SETTING_PTR->value(MusicSettingManager::RippleSpectrumColor).toString();
100  settings.setValue("colors", colors.remove(";"));
101  const double opacity = 1.0;
102  settings.setValue("opacity", opacity);
103  settings.endGroup();
104 }
static QString configFile()
static QList< VisualFactory * > factories()
#define CACHE_DIR_FULL
Definition: musicobject.h:130
TTK_MODULE_EXPORT void enabledVisualPlugin(const QString &name, bool enabled)
TTK_MODULE_EXPORT void updateConfig()
Effect plugin interface (effect factory).
Definition: effectfactory.h:54
TTK_MODULE_EXPORT void updateRippleConfig()
TTK_MODULE_EXPORT MusicPluginPropertyList effectPlugins()
const char * name
Definition: http_parser.c:458
static QList< EffectFactory * > factories()
static void setEnabled(EffectFactory *factory, bool enable=true)
TTK_MODULE_EXPORT QString pluginPath(const QString &module, const QString &format)
Visual plugin interface (visual factory).
Definition: visualfactory.h:42
static QString applicationPath()
Definition: ttkqtobject.h:44
TTK_MODULE_EXPORT void showEffectSetting(const QString &name, QWidget *parent)
#define ARCHIVE_DIR_DIR_FULL
Definition: musicobject.h:126
The class of the plugin property.
static void setEnabled(VisualFactory *factory, bool enable=true)
TTK_MODULE_EXPORT void enabledEffectPlugin(bool enabled, const QString &name={})
#define G_SETTING_PTR