1 /*
2  * Copyright 2012 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 import java.io.PrintStream;
18 
19 /**
20  * Emits a Java interface and Java & C implementation for a C function.
21  *
22  * <p> The Java interface will have Buffer and array variants for functions that
23  * have a typed pointer argument.  The array variant will convert a single "<type> *data"
24  * argument to a pair of arguments "<type>[] data, int offset".
25  */
26 public class EGLCodeEmitter extends JniCodeEmitter {
27 
28     PrintStream mJavaImplStream;
29     PrintStream mCStream;
30 
31     PrintStream mJavaInterfaceStream;
32 
33     /**
34       */
EGLCodeEmitter(String classPathName, ParameterChecker checker, PrintStream javaImplStream, PrintStream cStream)35     public EGLCodeEmitter(String classPathName,
36                           ParameterChecker checker,
37                           PrintStream javaImplStream,
38                           PrintStream cStream) {
39         mClassPathName = classPathName;
40         mChecker = checker;
41 
42         mJavaImplStream = javaImplStream;
43         mCStream = cStream;
44         mUseContextPointer = false;
45         mUseStaticMethods = true;
46         mUseSimpleMethodNames = true;
47         mUseHideCommentForAPI = false;
48     }
49 
emitCode(CFunc cfunc, String original)50     public void emitCode(CFunc cfunc, String original) {
51         emitCode(cfunc, original, null, mJavaImplStream,
52                 mCStream);
53     }
54 
emitNativeRegistration(String nativeRegistrationName)55     public void emitNativeRegistration(String nativeRegistrationName) {
56         emitNativeRegistration(nativeRegistrationName, mCStream);
57     }
58 }
59