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