Bind libopus through java.lang.foreign downcall handles instead of JNA: the ctl functions are linked with firstVariadicArg(2), and the encoder and decoder each own a shared Arena holding the handle plus reusable native PCM/packet buffers, so the hot path only allocates the returned packet. The library is resolved by system SONAME first, falling back to a bundled copy extracted from the JAR. Only the Windows x86-64 build is packaged by default now (-Dnatives.all restores all platforms), since every other platform ships libopus through its package manager. Requires Java 26. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
47 lines
1.6 KiB
XML
47 lines
1.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<groupId>com.ts3client</groupId>
|
|
<artifactId>ts3-client-parent</artifactId>
|
|
<version>0.1.0</version>
|
|
<packaging>pom</packaging>
|
|
|
|
<name>TS3J Client (parent)</name>
|
|
<description>Desktop TeamSpeak 3 client built on the ts3j protocol library</description>
|
|
|
|
<modules>
|
|
<module>core</module>
|
|
<module>desktop</module>
|
|
<module>swing</module>
|
|
</modules>
|
|
|
|
<properties>
|
|
<maven.compiler.release>26</maven.compiler.release>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<ts3j.version>1.0.3</ts3j.version>
|
|
</properties>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.github.manevolent</groupId>
|
|
<artifactId>ts3j</artifactId>
|
|
<version>${ts3j.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.ts3client</groupId>
|
|
<artifactId>ts3-client-core</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.ts3client</groupId>
|
|
<artifactId>ts3-client-desktop</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
</project>
|