#5 Switched to use maria database to store song information #7 Added spring and hibernate support #8 Added song upload functionality
63 lines
2.5 KiB
Java
63 lines
2.5 KiB
Java
/**
|
|
*
|
|
* Project: Eight Track, File: EightTrackAudioSendHandler.java
|
|
*
|
|
* Copyright 2019-2019 Locusworks LLC.
|
|
* All rights reserved. Federal copyright law prohibits unauthorized reproduction by
|
|
* any means and imposes fines up to $25,000 for violation. No part of this material
|
|
* may be reproduced, transmitted, transcribed, stored in a retrieval system, copied,
|
|
* modified, duplicated, adapted or translated into another program language in any
|
|
* form or by any means, electronic, mechanical, photocopying, recording, or
|
|
* otherwise, without the prior written permission from Locusworks. Locusworks
|
|
* affirms that Eight-Track(R) software and data is subject to United States
|
|
* Government Purpose Rights. Contact Locusworks, 1313 Lawnview Drive
|
|
* Forney TX 75126, (802) 488-0438, for commercial licensing opportunities.
|
|
*
|
|
* IN NO EVENT SHALL LOCUSWORKS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
|
|
* INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT
|
|
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF LOCUSWORKS HAS BEEN
|
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. NO RESPONSIBILITY IS ASSUMED BY
|
|
* LOCUSWORKS FOR ITS USE, OR FOR ANY INFRINGEMENTS OF PATENTS OR OTHER RIGHTS OF
|
|
* THIRD PARTIES RESULTING FROM ITS USE. LOCUSWORKS SPECIFICALLY DISCLAIMS ANY
|
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE AND
|
|
* ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS
|
|
* IS". LOCUSWORKS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
|
|
* ENHANCEMENTS, OR MODIFICATIONS.
|
|
*/
|
|
package net.locusworks.discord.eighttrack.handlers;
|
|
|
|
import java.nio.ByteBuffer;
|
|
|
|
import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
|
|
import com.sedmelluq.discord.lavaplayer.track.playback.AudioFrame;
|
|
|
|
import net.dv8tion.jda.api.audio.AudioSendHandler;
|
|
|
|
public class EightTrackAudioSendHandler implements AudioSendHandler {
|
|
|
|
private final AudioPlayer audioPlayer;
|
|
private AudioFrame lastFrame;
|
|
|
|
public EightTrackAudioSendHandler(AudioPlayer audioPlayer) {
|
|
this.audioPlayer = audioPlayer;
|
|
}
|
|
|
|
public boolean canProvide() {
|
|
lastFrame = audioPlayer.provide();
|
|
return lastFrame != null;
|
|
}
|
|
|
|
public ByteBuffer provide20MsAudio() {
|
|
if (lastFrame == null || lastFrame.getData() == null) {
|
|
return ByteBuffer.wrap(new byte[0]);
|
|
}
|
|
return ByteBuffer.wrap(lastFrame.getData());
|
|
}
|
|
|
|
public boolean isOpus() {
|
|
return true;
|
|
}
|
|
|
|
}
|