26 #include <QCoreApplication>
27 #include <QDBusConnection>
28 #include <QSharedPointer>
29 #include <QTextStream>
31 #include <hybris/media/media_codec_layer.h>
40 QTextStream out(stdout);
41 QTextStream err(stderr);
43 const char *level = ::getenv(
"MH_LOG_LEVEL");
45 QString severity =
"info";
48 if (strcmp(level,
"trace") == 0)
50 else if (strcmp(level,
"info") == 0 ||
51 strcmp(level,
"debug") == 0 ||
52 strcmp(level,
"warning") == 0 ||
53 strcmp(level,
"fatal") == 0)
55 else if (strcmp(level,
"error") == 0)
56 severity =
"critical";
58 err <<
"Invalid log level \"" << level
59 <<
"\", setting to info. Valid options: [trace, debug, info, warning, error, fatal].\n";
62 out <<
"Using default log level: info\n";
64 out <<
"Log level: " << severity <<
'\n';
73 case media::AVBackend::Backend::hybris:
75 decoding_service_init();
77 case media::AVBackend::Backend::mir:
80 case media::AVBackend::Backend::none:
81 MH_WARNING(
"No video backend selected. Video functionality won't work.");
84 MH_INFO(
"Invalid or no A/V backend specified, using \"hybris\" as a default.");
85 decoding_service_init();
98 sigemptyset(&sa.sa_mask);
99 sigaction(SIGTERM, &sa, 0);
103 if (signum == SIGTERM) {
104 QCoreApplication::quit();
110 MH_INFO() <<
"Got disconnected from D-Bus, terminating...";
111 QCoreApplication::exit(EXIT_FAILURE);
115 int main(
int argc,
char **argv)
124 auto bus = QDBusConnection::sessionBus();
129 media::ServiceSkeleton::Configuration {
134 bus.registerObject(QStringLiteral(
"/com/lomiri/MediaHub/Service"),
136 QDBusConnection::ExportAllSlots |
137 QDBusConnection::ExportScriptableSignals |
138 QDBusConnection::ExportAllProperties);
140 MH_ERROR(
"Failed to register service object");
144 ok = bus.registerService(
"com.lomiri.MediaHub.Service");
146 MH_ERROR(
"Failed to register service name");
150 ok = bus.registerService(
"org.mpris.MediaPlayer2.MediaHub");
152 MH_ERROR(
"Failed to register MPRIS service name");
156 bus.connect(QString(),
157 QStringLiteral(
"/org/freedesktop/DBus/Local"),
158 QStringLiteral(
"org.freedesktop.DBus.Local"),
159 QStringLiteral(
"Disconnected"),
160 &app, SLOT(onDisconnected()));
162 int exitCode = app.exec();
167 #include "server.moc"