Skip to content

Commit fe3c30e

Browse files
author
werwolf2303
committed
Update mpris implementation
1 parent c9a46fb commit fe3c30e

File tree

2 files changed

+72
-81
lines changed

2 files changed

+72
-81
lines changed

deps/mpris-java

src/main/java/com/spotifyxp/support/LinuxSupportModule.java

Lines changed: 71 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
package com.spotifyxp.support;
1717

1818
import com.spotifyxp.PublicValues;
19-
import com.spotifyxp.deps.org.mpris.MPRISMP2None;
20-
import com.spotifyxp.deps.org.mpris.MPRISMediaPlayer;
19+
import com.spotifyxp.deps.org.mpris.MPRIS;
20+
import com.spotifyxp.deps.org.mpris.MPRISBuilder;
2121
import com.spotifyxp.deps.org.mpris.Metadata;
2222
import com.spotifyxp.deps.org.mpris.TypeRunnable;
2323
import com.spotifyxp.deps.org.mpris.mpris.PlaybackStatus;
@@ -33,7 +33,6 @@
3333
import com.spotifyxp.panels.ContentPanel;
3434
import com.spotifyxp.utils.ApplicationUtils;
3535
import org.freedesktop.dbus.DBusPath;
36-
import org.freedesktop.dbus.connections.impl.DBusConnection;
3736
import org.freedesktop.dbus.exceptions.DBusException;
3837
import org.jetbrains.annotations.NotNull;
3938
import org.jetbrains.annotations.Nullable;
@@ -42,7 +41,6 @@
4241
import java.io.IOException;
4342
import java.net.URI;
4443
import java.util.Collections;
45-
import java.util.Locale;
4644
import java.util.Timer;
4745
import java.util.TimerTask;
4846
import java.util.concurrent.TimeUnit;
@@ -51,7 +49,7 @@
5149
* !!Warning!! This class will be stripped from the final executable if the flag linuxSupport is false
5250
*/
5351
public class LinuxSupportModule implements SupportModule {
54-
public static MPRISMP2None mpris;
52+
public static MPRIS mpris;
5553

5654
@Override
5755
public String getOSName() {
@@ -68,80 +66,69 @@ public void run() {
6866
PublicValues.tempPath = System.getProperty("java.io.tmpdir");
6967
}
7068
try {
71-
MPRISMediaPlayer mediaPlayer = new MPRISMediaPlayer(
72-
DBusConnection.newConnection(DBusConnection.DBusBusType.SESSION),
73-
ApplicationUtils.getName().toLowerCase(Locale.ENGLISH)
74-
);
75-
mpris = mediaPlayer.buildMPRISMediaPlayer2None(
76-
new MPRISMediaPlayer.MediaPlayer2Builder()
77-
.setOnQuit(new TypeRunnable<Object>() {
78-
@Override
79-
public void run(Object value) {
80-
System.exit(0);
81-
}
82-
})
83-
.setOnRaise(new TypeRunnable<Object>() {
84-
@Override
85-
public void run(Object value) {
86-
ContentPanel.frame.toFront();
87-
}
88-
})
89-
.setSupportedUriSchemes("spotify:")
90-
.setCanQuit(true)
91-
.setCanRaise(true)
92-
.setIdentity(ApplicationUtils.getName())
93-
.setDesktopEntry("/home/werwolf2303/.local/share/applications/" + ApplicationUtils.getName() + ".desktop"),
94-
new MPRISMediaPlayer.PlayerBuilder()
95-
.setOnOpenURI(new TypeRunnable<String>() {
96-
@Override
97-
public void run(String value) {
98-
if(value.split(":").length == 2) {
99-
// URI
100-
InstanceManager.getSpotifyPlayer().load(value, true, PublicValues.shuffle);
101-
}
102-
}
103-
})
104-
.setCanControl(true)
105-
.setCanPlay(true)
106-
.setCanPause(true)
107-
.setCanGoNext(true)
108-
.setCanGoPrevious(true)
109-
.setOnPlayPause(new TypeRunnable<Object>() {
110-
@Override
111-
public void run(Object value) {
112-
InstanceManager.getPlayer().getPlayer().playPause();
113-
}
114-
})
115-
.setOnPlay(new TypeRunnable<Object>() {
116-
@Override
117-
public void run(Object value) {
118-
InstanceManager.getPlayer().getPlayer().play();
119-
}
120-
})
121-
.setOnPause(new TypeRunnable<Object>() {
122-
@Override
123-
public void run(Object value) {
124-
InstanceManager.getPlayer().getPlayer().pause();
125-
}
126-
})
127-
.setOnNext(new TypeRunnable<Object>() {
128-
@Override
129-
public void run(Object value) {
130-
InstanceManager.getPlayer().getPlayer().next();
131-
}
132-
})
133-
.setOnPrevious(new TypeRunnable<Object>() {
134-
@Override
135-
public void run(Object value) {
136-
InstanceManager.getPlayer().getPlayer().previous();
137-
}
138-
})
139-
.setMetadata(new Metadata.Builder()
140-
.setLength(0)
141-
.setTrackID(new DBusPath("/"))
142-
.build())
143-
);
144-
mediaPlayer.create();
69+
mpris = new MPRISBuilder()
70+
.setOnQuit(new Runnable() {
71+
@Override
72+
public void run() {
73+
System.exit(0);
74+
}
75+
})
76+
.setOnRaise(new Runnable() {
77+
@Override
78+
public void run() {
79+
ContentPanel.frame.toFront();
80+
}
81+
})
82+
.setSupportedUriSchemes("spotify:")
83+
.setCanQuit(true)
84+
.setCanRaise(true)
85+
.setIdentity(ApplicationUtils.getName())
86+
.setDesktopEntry(ApplicationUtils.getName())
87+
.setOnOpenURI(new TypeRunnable<String>() {
88+
@Override
89+
public void run(String value) {
90+
if(value.split(":").length == 2) {
91+
// URI
92+
InstanceManager.getSpotifyPlayer().load(value, true, PublicValues.shuffle);
93+
}
94+
}
95+
})
96+
.setCanControl(true)
97+
.setCanPlay(true)
98+
.setCanPause(true)
99+
.setCanGoNext(true)
100+
.setCanGoPrevious(true)
101+
.setOnPlayPause(new Runnable() {
102+
@Override
103+
public void run() {
104+
InstanceManager.getPlayer().getPlayer().playPause();
105+
}
106+
})
107+
.setOnPlay(new Runnable() {
108+
@Override
109+
public void run() {
110+
InstanceManager.getPlayer().getPlayer().play();
111+
}
112+
})
113+
.setOnPause(new Runnable() {
114+
@Override
115+
public void run() {
116+
InstanceManager.getPlayer().getPlayer().pause();
117+
}
118+
})
119+
.setOnNext(new Runnable() {
120+
@Override
121+
public void run() {
122+
InstanceManager.getPlayer().getPlayer().next();
123+
}
124+
})
125+
.setOnPrevious(new Runnable() {
126+
@Override
127+
public void run() {
128+
InstanceManager.getPlayer().getPlayer().previous();
129+
}
130+
})
131+
.build(ApplicationUtils.getName());
145132
} catch (DBusException e) {
146133
ConsoleLogging.warning("Failed to initialize MPRIS support");
147134
}
@@ -207,7 +194,11 @@ public void onPlaybackFailed(@NotNull Player player, @NotNull Exception e) {
207194

208195
@Override
209196
public void onTrackSeeked(@NotNull Player player, long trackTime) {
210-
197+
try {
198+
mpris.emitSeeked((int) TimeUnit.MILLISECONDS.toMicros(trackTime));
199+
} catch (DBusException e) {
200+
throw new RuntimeException(e);
201+
}
211202
}
212203

213204
@Override

0 commit comments

Comments
 (0)