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