summaryrefslogtreecommitdiff
path: root/base/src/main/java/com/smartdevicelink/streaming/audio
diff options
context:
space:
mode:
authorRHenigan <heniganr1@gmail.com>2020-09-15 14:02:09 -0400
committerRHenigan <heniganr1@gmail.com>2020-09-15 14:02:09 -0400
commitcd4ac27321c641ef4a9c9f6628059735364ef4dd (patch)
tree81c48fcde2b3948e75a3958f3226b5b7b96629d3 /base/src/main/java/com/smartdevicelink/streaming/audio
parentdefdf9f62567494c454984fca17800f8a2aac7b8 (diff)
downloadsdl_android-cd4ac27321c641ef4a9c9f6628059735364ef4dd.tar.gz
Move proxy interfaces to better packagesfeature/move_proxy_interfaces
Diffstat (limited to 'base/src/main/java/com/smartdevicelink/streaming/audio')
-rw-r--r--base/src/main/java/com/smartdevicelink/streaming/audio/IAudioStreamListener.java74
1 files changed, 74 insertions, 0 deletions
diff --git a/base/src/main/java/com/smartdevicelink/streaming/audio/IAudioStreamListener.java b/base/src/main/java/com/smartdevicelink/streaming/audio/IAudioStreamListener.java
new file mode 100644
index 000000000..20f758969
--- /dev/null
+++ b/base/src/main/java/com/smartdevicelink/streaming/audio/IAudioStreamListener.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2017, Xevo Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * * Neither the name of the copyright holder nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.smartdevicelink.streaming.audio;
+
+import com.smartdevicelink.managers.CompletionListener;
+
+import java.nio.ByteBuffer;
+
+/**
+ * A listener that receives audio streaming data from app.
+ */
+public interface IAudioStreamListener {
+ /**
+ * Sends a chunk of audio data to SDL Core.
+ * <p>
+ * Note: this method must not be called after SdlProxyBase.endAudioStream() is called.
+ *
+ * @param data Byte array containing audio data
+ * @param offset Starting offset in 'data'
+ * @param length Length of the data
+ * @param presentationTimeUs (Reserved for future use) Presentation timestamp (PTS) of the
+ * last audio sample data included in this chunk, in microseconds.
+ * It must be greater than the previous timestamp.
+ * Specify -1 if unknown.
+ * @throws ArrayIndexOutOfBoundsException When offset does not satisfy
+ * {@code 0 <= offset && offset <= data.length}
+ * or length does not satisfy
+ * {@code 0 < length && offset + length <= data.length}
+ */
+ void sendAudio(byte[] data, int offset, int length, long presentationTimeUs)
+ throws ArrayIndexOutOfBoundsException;
+
+ /**
+ * Sends a chunk of audio data to SDL Core.
+ * <p>
+ * Note: this method must not be called after SdlProxyBase.endAudioStream() is called.
+ *
+ * @param data Data chunk to send. Its position will be updated upon return.
+ * @param presentationTimeUs (Reserved for future use) Presentation timestamp (PTS) of the
+ * last audio sample data included in this chunk, in microseconds.
+ * It must be greater than the previous timestamp.
+ * Specify -1 if unknown.
+ * @param completionListener A completion listener that informs when the audio file is played
+ */
+ void sendAudio(ByteBuffer data, long presentationTimeUs, CompletionListener completionListener);
+}