1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 package org.mozilla.gecko.media; 6 7 import android.media.MediaCrypto; 8 9 public interface GeckoMediaDrm { 10 public interface Callbacks { onSessionCreated(int createSessionToken, int promiseId, byte[] sessionId, byte[] request)11 void onSessionCreated(int createSessionToken, int promiseId, byte[] sessionId, byte[] request); 12 onSessionUpdated(int promiseId, byte[] sessionId)13 void onSessionUpdated(int promiseId, byte[] sessionId); 14 onSessionClosed(int promiseId, byte[] sessionId)15 void onSessionClosed(int promiseId, byte[] sessionId); 16 onSessionMessage(byte[] sessionId, int sessionMessageType, byte[] request)17 void onSessionMessage(byte[] sessionId, int sessionMessageType, byte[] request); 18 onSessionError(byte[] sessionId, String message)19 void onSessionError(byte[] sessionId, String message); 20 onSessionBatchedKeyChanged(byte[] sessionId, SessionKeyInfo[] keyInfos)21 void onSessionBatchedKeyChanged(byte[] sessionId, SessionKeyInfo[] keyInfos); 22 // All failure cases should go through this function. onRejectPromise(int promiseId, String message)23 void onRejectPromise(int promiseId, String message); 24 } 25 setCallbacks(Callbacks callbacks)26 void setCallbacks(Callbacks callbacks); 27 createSession(int createSessionToken, int promiseId, String initDataType, byte[] initData)28 void createSession(int createSessionToken, int promiseId, String initDataType, byte[] initData); 29 updateSession(int promiseId, String sessionId, byte[] response)30 void updateSession(int promiseId, String sessionId, byte[] response); 31 closeSession(int promiseId, String sessionId)32 void closeSession(int promiseId, String sessionId); 33 release()34 void release(); 35 getMediaCrypto()36 MediaCrypto getMediaCrypto(); 37 setServerCertificate(final byte[] cert)38 void setServerCertificate(final byte[] cert); 39 } 40