a/src/mediaserver/contentdirectory.cxx b/src/mediaserver/contentdirectory.cxx
...
...
66
        return nullptr;
66
        return nullptr;
67
        }
67
        }
68
            port = usport;
68
            port = usport;
69
        LOGDEB("ContentDirectory: host "<< host<< " port " << port << endl);
69
        LOGDEB("ContentDirectory: host "<< host<< " port " << port << endl);
70
    }
70
    }
71
  if (!appname.compare("tidal")) {
72
      return new PlgWithSlave("tidal", service);
71
        return new PlgWithSlave(appname, service);
73
        } else if (!appname.compare("qobuz")) {
74
      return new PlgWithSlave("qobuz", service);
75
        } else if (!appname.compare("gmusic")) {
76
      return new PlgWithSlave("gmusic", service);
77
  } else {
78
      return nullptr;
79
  }
80
    }
72
    }
81
    CDPlugin *pluginForApp(const string& appname) {
73
    CDPlugin *pluginForApp(const string& appname) {
82
    auto it = plugins.find(appname);
74
    auto it = plugins.find(appname);
83
    if (it != plugins.end()) {
75
    if (it != plugins.end()) {
84
        return it->second;
76
        return it->second;
...
...
158
150
159
static vector<UpSong> rootdir;
151
static vector<UpSong> rootdir;
160
static bool makerootdir()
152
static bool makerootdir()
161
{
153
{
162
    rootdir.clear();
154
    rootdir.clear();
163
    if (g_config->hasNameAnywhere("gmusicuser")) {
155
    string pathplg = path_cat(g_datadir, "cdplugins");
164
        rootdir.push_back(UpSong::container("0$gmusic$", "0", "Google Music"));
156
    string reason;
157
    set<string> entries;
158
    if (!readdir(pathplg, reason, entries)) {
159
        LOGERR("ContentDirectory::makerootdir: can't read " << pathplg <<
160
               " : " << reason << endl);
161
        return false;
162
    }
163
164
    for (const auto& entry : entries) {
165
        if (!entry.compare("pycommon")) {
166
            continue;
165
    }
167
        }
168
        // We compute the title from the plugin name. Maybe it would
169
        // be better to have it as a parameter either in the plugin
170
        // directory (somehow), or in the global config
171
        string title = stringtoupper((const string&)entry.substr(0,1)) +
172
            entry.substr(1, entry.size()-1);
173
        string userparam = entry + "user";
166
    if (g_config->hasNameAnywhere("qobuzuser")) {
174
        if (g_config->hasNameAnywhere(userparam)) {
167
        rootdir.push_back(UpSong::container("0$qobuz$", "0", "Qobuz"));
175
            rootdir.push_back(UpSong::container("0$" + entry + "$",
176
                                                "0", title));
168
    }
177
        }
169
    if (g_config->hasNameAnywhere("tidaluser")) {
170
        rootdir.push_back(UpSong::container("0$tidal$", "0", "Tidal"));
171
    }
178
    }
172
179
173
    if (rootdir.empty()) {
180
    if (rootdir.empty()) {
174
        // This should not happen, as we only start the CD if services
181
        // This should not happen, as we only start the CD if services
175
        // are configured !
182
        // are configured !