Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
liblinphone
Commits
471c5b3d
Commit
471c5b3d
authored
Oct 16, 2017
by
Sylvain Berfini
🐮
Browse files
Fixes for listeners in Java wrapper + added manually wrapped Core.getMediastreamerFactory
parent
cc86f4c3
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
34 additions
and
3 deletions
+34
-3
wrappers/java/genwrapper.py
wrappers/java/genwrapper.py
+3
-1
wrappers/java/java_class.mustache
wrappers/java/java_class.mustache
+13
-0
wrappers/java/jni.mustache
wrappers/java/jni.mustache
+17
-0
wrappers/java/migration.sh
wrappers/java/migration.sh
+1
-2
No files found.
wrappers/java/genwrapper.py
View file @
471c5b3d
...
...
@@ -416,6 +416,7 @@ class JavaTranslator(object):
}
classDict
[
'isLinphoneFactory'
]
=
_class
.
name
.
to_camel_case
()
==
"Factory"
classDict
[
'isLinphoneCore'
]
=
_class
.
name
.
to_camel_case
()
==
"Core"
classDict
[
'doc'
]
=
self
.
docTranslator
.
translate
(
_class
.
briefDescription
)
if
_class
.
briefDescription
is
not
None
else
None
for
_property
in
_class
.
properties
:
...
...
@@ -590,7 +591,7 @@ class JniInterface(object):
def
__init__
(
self
,
javaClass
,
apiClass
):
self
.
isSingleListener
=
(
not
apiClass
.
multilistener
)
self
.
isMultiListener
=
(
apiClass
.
multilistener
)
self
.
classCName
=
javaClass
.
cName
self
.
classCName
=
javaClass
.
c
lass
Name
self
.
cPrefix
=
javaClass
.
cPrefix
self
.
callbacks
=
[]
listener
=
apiClass
.
listenerInterface
...
...
@@ -626,6 +627,7 @@ class JavaClass(object):
def
__init__
(
self
,
package
,
_class
,
translator
):
self
.
_class
=
translator
.
translate_class
(
_class
)
self
.
isLinphoneFactory
=
self
.
_class
[
'isLinphoneFactory'
]
self
.
isLinphoneCore
=
self
.
_class
[
'isLinphoneCore'
]
self
.
isNotLinphoneFactory
=
not
self
.
isLinphoneFactory
self
.
cName
=
'Linphone'
+
_class
.
name
.
to_camel_case
()
self
.
cPrefix
=
'linphone_'
+
_class
.
name
.
to_snake_case
()
...
...
wrappers/java/java_class.mustache
View file @
471c5b3d
...
...
@@ -95,6 +95,12 @@ public {{#isLinphoneFactory}}abstract class{{/isLinphoneFactory}}{{#isNotLinphon
abstract public OpenH264DownloadHelper createOpenH264DownloadHelper(Context context);
{{/
isLinphoneFactory
}}
{{#
isLinphoneCore
}}
/**
* Gets the mediastreamer's factory
*/
public org.linphone.mediastream.Factory getMediastreamerFactory();
{{/
isLinphoneCore
}}
{{#
methods
}}
{{#
doc
}}
/**
...
...
@@ -181,6 +187,13 @@ class {{classImplName}} {{#isLinphoneFactory}}extends{{/isLinphoneFactory}}{{#is
}
{{/
methods
}}
{{#
isLinphoneCore
}}
private native org.linphone.mediastream.Factory getMediastreamerFactory(long nativePtr);
public org.linphone.mediastream.Factory getMediastreamerFactory() {
return getMediastreamerFactory(nativePtr);
}
{{/
isLinphoneCore
}}
{{#
isNotLinphoneFactory
}}
private native void unref(long ptr);
protected void finalize() throws Throwable {
...
...
wrappers/java/jni.mustache
View file @
471c5b3d
...
...
@@ -72,6 +72,9 @@ static jlong GetObjectNativePtr(JNIEnv *env, jobject object) {
class LinphoneJavaBindings {
public:
LinphoneJavaBindings(JNIEnv *env) {
ms_factory_class = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/mediastream/Factory"));
ms_factory_class_constructor = env->GetMethodID(ms_factory_class, "
<init>
", "(J)V");
{{#
objects
}}
{{
cPrefix
}}
_class = (jclass)env->NewGlobalRef(env->FindClass("
{{
jniPath
}}{{
classImplName
}}
"));
{{
cPrefix
}}
_class_constructor = env->GetMethodID(
{{
cPrefix
}}
_class, "
<init>
", "(J)V");
...
...
@@ -86,6 +89,9 @@ public:
~LinphoneJavaBindings() {
JNIEnv *env = 0;
jvm->AttachCurrentThread(
&env,NULL);
env->DeleteGlobalRef(ms_factory_class);
{{#
objects
}}
env->DeleteGlobalRef(
{{
cPrefix
}}
_class);
{{/
objects
}}
...
...
@@ -95,6 +101,9 @@ public:
{{/
enums
}}
}
jclass ms_factory_class;
jmethodID ms_factory_class_constructor;
{{#
objects
}}
jclass
{{
cPrefix
}}
_class;
jmethodID
{{
cPrefix
}}
_class_constructor;
...
...
@@ -265,6 +274,14 @@ void {{jniPackage}}{{classCName}}Impl_removeListener(JNIEnv* env, jobject thiz,
{{/
interfaces
}}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
jobject
{{
jni_package
}}
CoreImpl_getMediastreamerFactory(JNIEnv *env, jobject thiz, jlong ptr) {
LinphoneJavaBindings *ljb = (LinphoneJavaBindings *)linphone_factory_get_user_data(linphone_factory_get());
MSFactory *factory = linphone_core_get_ms_factory((LinphoneCore*)ptr);
return env->NewObject(ljb->ms_factory_class, ljb->ms_factory_class_constructor, (jlong)factory);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{{#
methods
}}
{{
return
}}
{{
name
}}
(
{{
params
}}
) {
{{#
notStatic
}}{{
classCName
}}
*cptr = (
{{
classCName
}}
*)ptr;
{{/
notStatic
}}{{#
strings
}}
...
...
wrappers/java/migration.sh
View file @
471c5b3d
...
...
@@ -228,10 +228,10 @@ eval "$SED_START 's/enableDownloadOpenH264(/OpenH264DownloadHelper.enableDownloa
eval
"
$SED_START
's/mLc.destroy()/mLc = null/g'
$SED_END
"
eval
"
$SED_START
's/getAllDialPlan()/getDialPlans()/g'
$SED_END
"
eval
"
$SED_START
's/getCountryName()/getCountry()/g'
$SED_END
"
eval
"
$SED_START
's/getMSFactory()/getMediastreamerFactory()/g'
$SED_END
"
#Changes in library required
#Tunnel
#DialPlan
#LinphoneBuffer
#Call.zoomVideo()
#AccountCreator.updatePassword
...
...
@@ -239,7 +239,6 @@ eval "$SED_START 's/getCountryName()/getCountry()/g' $SED_END"
#Android specifics not wrapped automatically
#Core.needsEchoCalibration()
#Core.hasCrappyOpenGL()
#Core.getMSFactory()
#Core.startEchoCalibration
#Core.startEchoTester
#Core.stopEchoTester
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment