Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions extensions/format-xm/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,44 @@ val moduleName = "lavaplayer-ext-format-xm"
version = "0.1.0"

repositories {
maven(url = "https://dl.bintray.com/gabixdev/kyoko")
ivy {
url = uri("https://github.com/")
patternLayout {
artifact("martincameron/micromod/raw/master/[module]-[revision].[ext]")
}
metadataSources { artifact() }
}
}

dependencies {
compileOnly(project(":main"))
implementation("com.github.micromod:ibxm:a73")
implementation(":ibxm:a74:jar")
implementation("org.slf4j:slf4j-api:1.7.32")
}

val sourcesJar by tasks.registering(Jar::class) {
archiveClassifier.set("sources")
from(sourceSets["main"].allSource)
}

val uberJar by tasks.registering(Jar::class) {
archiveClassifier.set("uber")

from(sourceSets.main.get().output)

dependsOn(configurations.runtimeClasspath)
from({
configurations.runtimeClasspath.get().filter { it.name.endsWith("jar") }.map { zipTree(it) }
})
}

publishing {
publications {
create<MavenPublication>("mavenJava") {
from(components["java"])
artifactId = moduleName
artifact(sourcesJar)
artifact(uberJar)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.sedmelluq.lavaplayer.extensions.format.xm;

import com.sedmelluq.discord.lavaplayer.container.MediaContainerDetectionResult;
import com.sedmelluq.discord.lavaplayer.container.MediaContainerHints;
import com.sedmelluq.discord.lavaplayer.container.MediaContainerProbe;
import com.sedmelluq.discord.lavaplayer.tools.io.SeekableInputStream;
import com.sedmelluq.discord.lavaplayer.track.AudioReference;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo;
import ibxm.IBXM;
import ibxm.Module;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;

import static com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.UNKNOWN_ARTIST;
import static com.sedmelluq.discord.lavaplayer.container.MediaContainerDetectionResult.supportedFormat;

public class ModContainerProbe implements MediaContainerProbe {
private static final Logger log = LoggerFactory.getLogger(ModContainerProbe.class);

@Override
public String getName() {
return "mod";
}

@Override
public boolean matchesHints(MediaContainerHints hints) {
return false;
}

@Override
public MediaContainerDetectionResult probe(AudioReference reference, SeekableInputStream inputStream) throws IOException {
Module module;
try {
module = new Module(inputStream);
} catch (IllegalArgumentException e) {
return null;
}

log.debug("Track {} is a module.", reference.identifier);

inputStream.seek(0);

return supportedFormat(this, null, new AudioTrackInfo(
module.songName,
UNKNOWN_ARTIST,
getLength(module),
reference.identifier,
true,
reference.identifier
));
}

public int getLength(Module module) {
IBXM ibxm = new IBXM(module, 48000);
return (ibxm.calculateSongDuration() / 48000) * 1000;
}

@Override
public AudioTrack createTrack(String parameters, AudioTrackInfo trackInfo, SeekableInputStream inputStream) {
return new XmAudioTrack(trackInfo, inputStream);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.sedmelluq.lavaplayer.extensions.format.xm;

import com.sedmelluq.discord.lavaplayer.container.MediaContainerDetectionResult;
import com.sedmelluq.discord.lavaplayer.container.MediaContainerHints;
import com.sedmelluq.discord.lavaplayer.container.MediaContainerProbe;
import com.sedmelluq.discord.lavaplayer.tools.io.SeekableInputStream;
import com.sedmelluq.discord.lavaplayer.track.AudioReference;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo;
import ibxm.IBXM;
import ibxm.Module;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;

import static com.sedmelluq.discord.lavaplayer.container.MediaContainerDetection.UNKNOWN_ARTIST;
import static com.sedmelluq.discord.lavaplayer.container.MediaContainerDetectionResult.supportedFormat;

public class S3MContainerProbe implements MediaContainerProbe {
private static final Logger log = LoggerFactory.getLogger(S3MContainerProbe.class);

@Override
public String getName() {
return "s3m";
}

@Override
public boolean matchesHints(MediaContainerHints hints) {
return false;
}

@Override
public MediaContainerDetectionResult probe(AudioReference reference, SeekableInputStream inputStream) throws IOException {
Module module;
try {
module = new Module(inputStream);
} catch (IllegalArgumentException e) {
return null;
}

log.debug("Track {} is a module.", reference.identifier);

inputStream.seek(0);

return supportedFormat(this, null, new AudioTrackInfo(
module.songName,
UNKNOWN_ARTIST,
getLength(module),
reference.identifier,
true,
reference.identifier
));
}

public int getLength(Module module) {
IBXM ibxm = new IBXM(module, 48000);
return (ibxm.calculateSongDuration() / 48000) * 1000;
}

@Override
public AudioTrack createTrack(String parameters, AudioTrackInfo trackInfo, SeekableInputStream inputStream) {
return new XmAudioTrack(trackInfo, inputStream);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
import com.sedmelluq.discord.lavaplayer.track.AudioReference;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo;
import com.sedmelluq.discord.lavaplayer.track.playback.AudioProcessingContext;
import ibxm.Channel;
import ibxm.IBXM;
import ibxm.Module;
import java.io.IOException;
import org.slf4j.Logger;
Expand Down Expand Up @@ -45,15 +48,21 @@ public MediaContainerDetectionResult probe(AudioReference reference, SeekableInp
return supportedFormat(this, null, new AudioTrackInfo(
module.songName,
UNKNOWN_ARTIST,
Units.DURATION_MS_UNKNOWN,
getLength(module),
reference.identifier,
true,
reference.identifier
));
}

public int getLength(Module module) {
IBXM ibxm = new IBXM(module, 48000);
return (ibxm.calculateSongDuration() / 48000) * 1000;
}

@Override
public AudioTrack createTrack(String parameters, AudioTrackInfo trackInfo, SeekableInputStream inputStream) {
return new XmAudioTrack(trackInfo, inputStream);
}

}
1 change: 1 addition & 0 deletions extensions/youtube-rotator/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ version = "0.2.3"

dependencies {
compileOnly(project(":main"))
implementation("org.slf4j:slf4j-api:1.7.32")
}

val sourcesJar by tasks.registering(Jar::class) {
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
2 changes: 1 addition & 1 deletion jitpack.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
install:
- ./gradlew clean :main:build :main:publishToMavenLocal
- ./gradlew clean build publishToMavenLocal
6 changes: 3 additions & 3 deletions main/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ version = "1.3.78"
dependencies {
api("com.sedmelluq:lava-common:1.1.2")
implementation("com.sedmelluq:lavaplayer-natives:1.3.14")
implementation("org.slf4j:slf4j-api:1.7.25")
implementation("org.slf4j:slf4j-api:1.7.32")

api("org.apache.httpcomponents:httpclient:4.5.10")
implementation("commons-io:commons-io:2.6")
Expand All @@ -21,8 +21,8 @@ dependencies {
implementation("org.jsoup:jsoup:1.12.1")
implementation("net.iharder:base64:2.3.9")

testImplementation("org.codehaus.groovy:groovy:2.5.5")
testImplementation("org.spockframework:spock-core:1.2-groovy-2.5")
testImplementation("org.codehaus.groovy:groovy:3.0.9")
testImplementation("org.spockframework:spock-core:2.1-M2-groovy-3.0")
testImplementation("ch.qos.logback:logback-classic:1.2.3")
testImplementation("com.sedmelluq:lavaplayer-test-samples:1.3.11")
}
Expand Down
1 change: 1 addition & 0 deletions stream-merger/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ version = "0.1.0"

dependencies {
implementation(project(":main"))
implementation("org.slf4j:slf4j-api:1.7.32")
}

val sourcesJar by tasks.registering(Jar::class) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ public void onTrackException(AudioPlayer player, AudioTrack track, FriendlyExcep

@Override
public void onTrackStuck(AudioPlayer player, AudioTrack track, long thresholdMs) {
dispatchEvent(new TrackStuckEvent(StreamAudioPlayer.this, track, thresholdMs));
dispatchEvent(new TrackStuckEvent(StreamAudioPlayer.this, track, thresholdMs, null));
}
}
}