getCurrentMetadata method
Implementation
@override
Future<Map<String, String>> getCurrentMetadata([String? player]) async {
try {
final args = player != null
? [
'--player=$player',
'metadata',
'--format',
'{{title}}$_delimiter{{artist}}$_delimiter{{album}}$_delimiter{{status}}$_delimiter{{playerName}}$_delimiter{{position}}$_delimiter{{mpris:length}}$_delimiter{{mpris:artUrl}}',
]
: [
'metadata',
'--format',
'{{title}}$_delimiter{{artist}}$_delimiter{{album}}$_delimiter{{status}}$_delimiter{{playerName}}$_delimiter{{position}}$_delimiter{{mpris:length}}$_delimiter{{mpris:artUrl}}',
];
final result = await Process.run('playerctl', args, runInShell: true);
if (result.exitCode == 0) {
final output = result.stdout.toString().trim();
return _parseMetadata(output);
}
return {};
} catch (e) {
PlayerctlLogger.error('Error getting current metadata', 'Metadata', e);
throw MetadataParsingException('Failed to get current metadata', e);
}
}