From: gichan2-jang Date: Tue, 13 Aug 2024 07:54:27 +0000 (+0900) Subject: Add skeleton code for custom connection X-Git-Tag: accepted/tizen/unified/20240903.172453~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3acf0b540f8d6f9ca920ca0c0e4c792cc3a2bbd2;p=platform%2Fupstream%2Fnnstreamer-edge.git Add skeleton code for custom connection User can create tehir own connection type using custom connection. Signed-off-by: gichan2-jang --- diff --git a/debian/nnstreamer-edge-dev.install b/debian/nnstreamer-edge-dev.install index 5541838..ea4991d 100644 --- a/debian/nnstreamer-edge-dev.install +++ b/debian/nnstreamer-edge-dev.install @@ -1,3 +1,4 @@ /usr/include/nnstreamer/nnstreamer-edge.h +/usr/include/nnstreamer/nnstreamer-edge-custom.h /usr/lib/*/pkgconfig/nnstreamer-edge.pc /usr/lib/*/libnnstreamer-edge.so diff --git a/include/nnstreamer-edge-custom.h b/include/nnstreamer-edge-custom.h new file mode 100644 index 0000000..09d6c2f --- /dev/null +++ b/include/nnstreamer-edge-custom.h @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/** + * Copyright (C) 2024 Gichan Jang + * + * @file nnstreamer-edge-custom.h + * @date 14 Aug 2024 + * @brief APIs for NNStreamer-edge custom connection. + * @see https://github.com/nnstreamer/nnstreamer + * @author Gichan Jang + * @bug No known bugs except for NYI items + */ + +#ifndef __NNSTREAMER_EDGE_CUSTOM_H__ +#define __NNSTREAMER_EDGE_CUSTOM_H__ + +#include +#include +#include +#include +#include "nnstreamer-edge.h" + +typedef struct _NnsEdgeCustomDef +{ + char *(*nns_edge_get_connection_type) (); + int (*nns_edge_custom_create) (void **priv); + int (*nns_edge_custom_close) (void *priv); + int (*nns_edge_custom_start) (void *priv); + int (*nns_edge_custom_stop) (void *priv); + int (*nns_edge_custom_connect) (void *priv); + int (*nns_edge_custom_subscribe) (void *priv); + int (*nns_edge_custom_is_connected) (void *priv); + int (*nns_edge_custom_set_event_cb) (void *priv, nns_edge_event_cb cb, void *user_data); + int (*nns_edge_custom_send_data) (void *priv, nns_edge_data_h data_h); + int (*nns_edge_custom_set_option) (void *priv, const char *key, const char *value); + const char *(*nns_edge_custom_get_option) (void *priv, const char *key); +} NnsEdgeCustomDef; + +void* nns_edge_custom_get_handle (); + +#endif /* __NNSTREAMER_EDGE_CUSTOM_H__ */ diff --git a/include/nnstreamer-edge.h b/include/nnstreamer-edge.h index b3d19e8..d546df4 100644 --- a/include/nnstreamer-edge.h +++ b/include/nnstreamer-edge.h @@ -62,6 +62,8 @@ typedef enum { NNS_EDGE_CONNECT_TYPE_HYBRID, NNS_EDGE_CONNECT_TYPE_AITT, + NNS_EDGE_CONNECT_TYPE_CUSTOM, + NNS_EDGE_CONNECT_TYPE_UNKNOWN } nns_edge_connect_type_e; diff --git a/packaging/nnstreamer-edge.spec b/packaging/nnstreamer-edge.spec index 27c92ab..a733543 100644 --- a/packaging/nnstreamer-edge.spec +++ b/packaging/nnstreamer-edge.spec @@ -173,6 +173,7 @@ rm -rf %{buildroot} %files devel %{_includedir}/nnstreamer/nnstreamer-edge.h +%{_includedir}/nnstreamer/nnstreamer-edge-custom.h %{_libdir}/pkgconfig/nnstreamer-edge.pc %if 0%{?unit_test} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c97febd..acff3a8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -43,3 +43,4 @@ ENDIF() INSTALL (TARGETS ${NNS_EDGE_LIB_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR}) INSTALL (FILES ${INCLUDE_DIR}/nnstreamer-edge.h DESTINATION ${INCLUDE_INSTALL_DIR}) +INSTALL (FILES ${INCLUDE_DIR}/nnstreamer-edge-custom.h DESTINATION ${INCLUDE_INSTALL_DIR}) diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index 7a951b6..bf79851 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -21,6 +21,7 @@ #include "nnstreamer-edge-queue.h" #include "nnstreamer-edge-aitt.h" #include "nnstreamer-edge-mqtt.h" +#include "nnstreamer-edge-custom.h" #ifndef MSG_NOSIGNAL #define MSG_NOSIGNAL 0