targets: Add service-lib stub for Android

This commit is contained in:
Ryan Pavlik 2020-08-24 10:51:08 -05:00
parent cb767c7705
commit 0ea7cf8009
3 changed files with 79 additions and 2 deletions

View file

@ -19,6 +19,13 @@ if(XRT_HAVE_SDL2)
endif()
if(XRT_FEATURE_SERVICE)
add_subdirectory(ctl)
add_subdirectory(service)
add_subdirectory(ctl)
endif()
if(XRT_FEATURE_SERVICE AND XRT_FEATURE_OPENXR)
if(ANDROID)
add_subdirectory(service-lib)
else()
add_subdirectory(service)
endif()
endif()

View file

@ -0,0 +1,22 @@
# Copyright 2020, Collabora, Ltd.
# SPDX-License-Identifier: BSL-1.0
add_library(monado-service MODULE
lib.cpp
)
target_link_libraries(monado-service PRIVATE
aux_util
st_prober
ipc_server
comp_main
target_lists
target_instance
xrt-external-jni-wrap
)
set_target_properties(monado-service
PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON)

View file

@ -0,0 +1,48 @@
// Copyright 2020, Collabora, Ltd.
// SPDX-License-Identifier: BSL-1.0
/*!
* @file
* @brief Library exposing IPC server.
* @author Ryan Pavlik <ryan.pavlik@collabora.com>
* @ingroup ipc_android
*/
#include "target_lists.h"
#include "jnipp.h"
#include "jni.h"
#include "wrap/android.os.h"
#include "wrap/android.view.h"
#include <android/native_window.h>
#include <android/native_window_jni.h>
using wrap::android::os::ParcelFileDescriptor;
using wrap::android::view::Surface;
extern "C" void
Java_org_freedesktop_monado_ipc_MonadoImpl_nativeAddClient(
JNIEnv *env, jobject thiz, jobject parcel_file_descriptor)
{
jni::init(env);
//! @todo do something!
// This may be the "entry point" of the native code, or we could already
// have another client running, etc.
ParcelFileDescriptor pfd(parcel_file_descriptor);
jni::Object monadoImpl(thiz);
}
extern "C" void
Java_org_freedesktop_monado_ipc_MonadoImpl_nativeAppSurface(JNIEnv *env,
jobject thiz,
jobject surface)
{
jni::init(env);
Surface surf(surface);
jni::Object monadoImpl(thiz);
ANativeWindow *nativeWindow = ANativeWindow_fromSurface(env, surface);
//! @todo do something!
}