mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-12 23:45:18 +00:00
215 lines
7.9 KiB
Dart
215 lines
7.9 KiB
Dart
// This file was generated using the following command and may be overwritten.
|
|
// dart-dbus generate-object defs/org.mpris.MediaPlayer2.xml
|
|
|
|
import 'package:bitsdojo_window/bitsdojo_window.dart';
|
|
import 'package:dbus/dbus.dart';
|
|
import 'package:spotube/provider/DBus.dart';
|
|
|
|
class Media_Player extends DBusObject {
|
|
/// Creates a new object to expose on [path].
|
|
Media_Player() : super(DBusObjectPath('/org/mpris/MediaPlayer2')) {
|
|
dbus.registerObject(this);
|
|
}
|
|
|
|
void dispose() {
|
|
dbus.unregisterObject(this);
|
|
}
|
|
|
|
/// Gets value of property org.mpris.MediaPlayer2.CanQuit
|
|
Future<DBusMethodResponse> getCanQuit() async {
|
|
return DBusMethodSuccessResponse([const DBusBoolean(true)]);
|
|
}
|
|
|
|
/// Gets value of property org.mpris.MediaPlayer2.Fullscreen
|
|
Future<DBusMethodResponse> getFullscreen() async {
|
|
return DBusMethodSuccessResponse([const DBusBoolean(false)]);
|
|
}
|
|
|
|
/// Sets property org.mpris.MediaPlayer2.Fullscreen
|
|
Future<DBusMethodResponse> setFullscreen(bool value) async {
|
|
return DBusMethodSuccessResponse();
|
|
}
|
|
|
|
/// Gets value of property org.mpris.MediaPlayer2.CanSetFullscreen
|
|
Future<DBusMethodResponse> getCanSetFullscreen() async {
|
|
return DBusMethodSuccessResponse([const DBusBoolean(false)]);
|
|
}
|
|
|
|
/// Gets value of property org.mpris.MediaPlayer2.CanRaise
|
|
Future<DBusMethodResponse> getCanRaise() async {
|
|
return DBusMethodSuccessResponse([const DBusBoolean(false)]);
|
|
}
|
|
|
|
/// Gets value of property org.mpris.MediaPlayer2.HasTrackList
|
|
Future<DBusMethodResponse> getHasTrackList() async {
|
|
return DBusMethodSuccessResponse([const DBusBoolean(false)]);
|
|
}
|
|
|
|
/// Gets value of property org.mpris.MediaPlayer2.Identity
|
|
Future<DBusMethodResponse> getIdentity() async {
|
|
return DBusMethodSuccessResponse([const DBusString("Spotube")]);
|
|
}
|
|
|
|
/// Gets value of property org.mpris.MediaPlayer2.DesktopEntry
|
|
Future<DBusMethodResponse> getDesktopEntry() async {
|
|
return DBusMethodSuccessResponse([const DBusString("spotube")]);
|
|
}
|
|
|
|
/// Gets value of property org.mpris.MediaPlayer2.SupportedUriSchemes
|
|
Future<DBusMethodResponse> getSupportedUriSchemes() async {
|
|
return DBusMethodSuccessResponse([
|
|
DBusArray.string(["http"])
|
|
]);
|
|
}
|
|
|
|
/// Gets value of property org.mpris.MediaPlayer2.SupportedMimeTypes
|
|
Future<DBusMethodResponse> getSupportedMimeTypes() async {
|
|
return DBusMethodSuccessResponse([
|
|
DBusArray.string(["audio/mpeg"])
|
|
]);
|
|
}
|
|
|
|
/// Implementation of org.mpris.MediaPlayer2.Raise()
|
|
Future<DBusMethodResponse> doRaise() async {
|
|
return DBusMethodSuccessResponse();
|
|
}
|
|
|
|
/// Implementation of org.mpris.MediaPlayer2.Quit()
|
|
Future<DBusMethodResponse> doQuit() async {
|
|
appWindow.close();
|
|
return DBusMethodSuccessResponse();
|
|
}
|
|
|
|
@override
|
|
List<DBusIntrospectInterface> introspect() {
|
|
return [
|
|
DBusIntrospectInterface('org.mpris.MediaPlayer2', methods: [
|
|
DBusIntrospectMethod('Raise'),
|
|
DBusIntrospectMethod('Quit')
|
|
], properties: [
|
|
DBusIntrospectProperty('CanQuit', DBusSignature('b'),
|
|
access: DBusPropertyAccess.read),
|
|
DBusIntrospectProperty('Fullscreen', DBusSignature('b'),
|
|
access: DBusPropertyAccess.readwrite),
|
|
DBusIntrospectProperty('CanSetFullscreen', DBusSignature('b'),
|
|
access: DBusPropertyAccess.read),
|
|
DBusIntrospectProperty('CanRaise', DBusSignature('b'),
|
|
access: DBusPropertyAccess.read),
|
|
DBusIntrospectProperty('HasTrackList', DBusSignature('b'),
|
|
access: DBusPropertyAccess.read),
|
|
DBusIntrospectProperty('Identity', DBusSignature('s'),
|
|
access: DBusPropertyAccess.read),
|
|
DBusIntrospectProperty('DesktopEntry', DBusSignature('s'),
|
|
access: DBusPropertyAccess.read),
|
|
DBusIntrospectProperty('SupportedUriSchemes', DBusSignature('as'),
|
|
access: DBusPropertyAccess.read),
|
|
DBusIntrospectProperty('SupportedMimeTypes', DBusSignature('as'),
|
|
access: DBusPropertyAccess.read)
|
|
])
|
|
];
|
|
}
|
|
|
|
@override
|
|
Future<DBusMethodResponse> handleMethodCall(DBusMethodCall methodCall) async {
|
|
if (methodCall.interface == 'org.mpris.MediaPlayer2') {
|
|
if (methodCall.name == 'Raise') {
|
|
if (methodCall.values.isNotEmpty) {
|
|
return DBusMethodErrorResponse.invalidArgs();
|
|
}
|
|
return doRaise();
|
|
} else if (methodCall.name == 'Quit') {
|
|
if (methodCall.values.isNotEmpty) {
|
|
return DBusMethodErrorResponse.invalidArgs();
|
|
}
|
|
return doQuit();
|
|
} else {
|
|
return DBusMethodErrorResponse.unknownMethod();
|
|
}
|
|
} else {
|
|
return DBusMethodErrorResponse.unknownInterface();
|
|
}
|
|
}
|
|
|
|
@override
|
|
Future<DBusMethodResponse> getProperty(String interface, String name) async {
|
|
if (interface == 'org.mpris.MediaPlayer2') {
|
|
if (name == 'CanQuit') {
|
|
return getCanQuit();
|
|
} else if (name == 'Fullscreen') {
|
|
return getFullscreen();
|
|
} else if (name == 'CanSetFullscreen') {
|
|
return getCanSetFullscreen();
|
|
} else if (name == 'CanRaise') {
|
|
return getCanRaise();
|
|
} else if (name == 'HasTrackList') {
|
|
return getHasTrackList();
|
|
} else if (name == 'Identity') {
|
|
return getIdentity();
|
|
} else if (name == 'DesktopEntry') {
|
|
return getDesktopEntry();
|
|
} else if (name == 'SupportedUriSchemes') {
|
|
return getSupportedUriSchemes();
|
|
} else if (name == 'SupportedMimeTypes') {
|
|
return getSupportedMimeTypes();
|
|
} else {
|
|
return DBusMethodErrorResponse.unknownProperty();
|
|
}
|
|
} else {
|
|
return DBusMethodErrorResponse.unknownProperty();
|
|
}
|
|
}
|
|
|
|
@override
|
|
Future<DBusMethodResponse> setProperty(
|
|
String interface, String name, DBusValue value) async {
|
|
if (interface == 'org.mpris.MediaPlayer2') {
|
|
if (name == 'CanQuit') {
|
|
return DBusMethodErrorResponse.propertyReadOnly();
|
|
} else if (name == 'Fullscreen') {
|
|
if (value.signature != DBusSignature('b')) {
|
|
return DBusMethodErrorResponse.invalidArgs();
|
|
}
|
|
return setFullscreen((value as DBusBoolean).value);
|
|
} else if (name == 'CanSetFullscreen') {
|
|
return DBusMethodErrorResponse.propertyReadOnly();
|
|
} else if (name == 'CanRaise') {
|
|
return DBusMethodErrorResponse.propertyReadOnly();
|
|
} else if (name == 'HasTrackList') {
|
|
return DBusMethodErrorResponse.propertyReadOnly();
|
|
} else if (name == 'Identity') {
|
|
return DBusMethodErrorResponse.propertyReadOnly();
|
|
} else if (name == 'DesktopEntry') {
|
|
return DBusMethodErrorResponse.propertyReadOnly();
|
|
} else if (name == 'SupportedUriSchemes') {
|
|
return DBusMethodErrorResponse.propertyReadOnly();
|
|
} else if (name == 'SupportedMimeTypes') {
|
|
return DBusMethodErrorResponse.propertyReadOnly();
|
|
} else {
|
|
return DBusMethodErrorResponse.unknownProperty();
|
|
}
|
|
} else {
|
|
return DBusMethodErrorResponse.unknownProperty();
|
|
}
|
|
}
|
|
|
|
@override
|
|
Future<DBusMethodResponse> getAllProperties(String interface) async {
|
|
var properties = <String, DBusValue>{};
|
|
if (interface == 'org.mpris.MediaPlayer2') {
|
|
properties['CanQuit'] = (await getCanQuit()).returnValues[0];
|
|
properties['Fullscreen'] = (await getFullscreen()).returnValues[0];
|
|
properties['CanSetFullscreen'] =
|
|
(await getCanSetFullscreen()).returnValues[0];
|
|
properties['CanRaise'] = (await getCanRaise()).returnValues[0];
|
|
properties['HasTrackList'] = (await getHasTrackList()).returnValues[0];
|
|
properties['Identity'] = (await getIdentity()).returnValues[0];
|
|
properties['DesktopEntry'] = (await getDesktopEntry()).returnValues[0];
|
|
properties['SupportedUriSchemes'] =
|
|
(await getSupportedUriSchemes()).returnValues[0];
|
|
properties['SupportedMimeTypes'] =
|
|
(await getSupportedMimeTypes()).returnValues[0];
|
|
}
|
|
return DBusMethodSuccessResponse([DBusDict.stringVariant(properties)]);
|
|
}
|
|
}
|