TTKMusicPlayer  4.2.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 <QDialog>
5 #include <QSettings>
6 #include <qmmp/qmmp.h>
7 #include <qmmp/visual.h>
8 #include <qmmp/visualfactory.h>
9 #include <qmmp/effect.h>
10 #include <qmmp/effectfactory.h>
11 
12 QString TTK::TTKQmmp::pluginPath(const QString &module, const QString &format)
13 {
14  QString path = Qmmp::pluginPath();
15 #ifdef Q_OS_WIN
16  path += QString("/%1/%2.dll").arg(module, format);
17 #elif defined Q_OS_LINUX
18  path += QString("/%1/lib%2.so").arg(module, format);
19 #elif defined Q_OS_MAC
20  path += QString("/%1/lib%2.dylib").arg(module, format);
21 #endif
22  return path;
23 }
24 
25 void TTK::TTKQmmp::enabledEffectPlugin(bool enabled, const QString &name)
26 {
27  for(EffectFactory *factory : Effect::factories())
28  {
29  if(name.isEmpty())
30  {
31  Effect::setEnabled(factory, enabled);
32  }
33  else if(factory->properties().shortName == name)
34  {
35  Effect::setEnabled(factory, enabled);
36  break;
37  }
38  }
39 }
40 
41 MusicPluginPropertyList TTK::TTKQmmp::effectPlugins()
42 {
43  MusicPluginPropertyList properties;
44  for(EffectFactory *factory : Effect::factories())
45  {
46 #ifdef Q_OS_WIN
47  if(factory->properties().shortName == "ladspa")
48  {
49  continue;
50  }
51 #endif
52  MusicPluginProperty property;
53  property.m_type = factory->properties().shortName;
54  property.m_name = factory->properties().name;
55  property.m_hasSettings = factory->properties().hasSettings;
56  properties << property;
57  }
58  return properties;
59 }
60 
62 {
63  for(EffectFactory *factory : Effect::factories())
64  {
65  if(factory->properties().shortName == name)
66  {
67  QDialog *dialog = factory->createSettings(nullptr);
68  if(dialog)
69  {
70  dialog->exec();
71  dialog->deleteLater();
72  }
73  break;
74  }
75  }
76 }
77 
78 void TTK::TTKQmmp::enabledVisualPlugin(const QString &name, bool enabled)
79 {
81  {
82  if(v->properties().shortName == name)
83  {
84  Visual::setEnabled(v, enabled);
85  break;
86  }
87  }
88 }
89 
91 {
92  QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
93  settings.beginGroup("Http");
94  settings.setValue("buffer_path", CACHE_DIR_FULL);
95  settings.endGroup();
96 
97  settings.beginGroup("Archive");
98  settings.setValue("unpack_path", ARCHIVE_DIR_DIR_FULL);
99  settings.endGroup();
100 
101 // settings.beginGroup("Decoder");
102 // QStringList names = settings.value("disabled_plugins").toStringList();
103 // if(names.isEmpty())
104 // {
105 // settings.setValue("disabled_plugins", names << "ken");
106 // }
107 // settings.endGroup();
108 }
109 
111 {
112  QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
113  settings.beginGroup("OuterBlurWave");
114 
115  QString colors = G_SETTING_PTR->value(MusicSettingManager::RippleSpectrumColor).toString();
116  settings.setValue("colors", colors.remove(";"));
117  const double opacity = (G_SETTING_PTR->value(MusicSettingManager::RippleSpectrumTransparent).toInt() + 50) / 150.0;
118  settings.setValue("opacity", opacity);
119  settings.endGroup();
120 }
static QString configFile()
static QList< VisualFactory * > factories()
#define CACHE_DIR_FULL
Definition: musicobject.h:144
TTK_MODULE_EXPORT void enabledVisualPlugin(const QString &name, bool enabled)
Effect plugin interface (effect factory).
Definition: effectfactory.h:54
TTK_MODULE_EXPORT MusicPluginPropertyList effectPlugins()
const char * name
Definition: http_parser.c:458
static QString pluginPath()
static QList< EffectFactory * > factories()
TTK_MODULE_EXPORT void updateBlurConfig()
TTK_MODULE_EXPORT void updateBaseConfig()
static void setEnabled(EffectFactory *factory, bool enable=true)
TTK_MODULE_EXPORT void showEffectSetting(const QString &name)
TTK_MODULE_EXPORT QString pluginPath(const QString &module, const QString &format)
Visual plugin interface (visual factory).
Definition: visualfactory.h:42
#define ARCHIVE_DIR_DIR_FULL
Definition: musicobject.h:140
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