update 2016-11-08 b1
1. resolved decoder for Android build
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -3,5 +3,7 @@
|
|||||||
src/ir_decoder/.idea
|
src/ir_decoder/.idea
|
||||||
src/ir_encoder/.idea
|
src/ir_encoder/.idea
|
||||||
src/ir_decoder/out
|
src/ir_decoder/out
|
||||||
|
src/ir_decoder/libs
|
||||||
|
src/ir_decoder/obj
|
||||||
files/
|
files/
|
||||||
files/*
|
files/*
|
||||||
@@ -6,7 +6,7 @@ LOCAL_CFLAGS := -DBOARD_ANDROID
|
|||||||
LOCAL_MODULE := libirdecode
|
LOCAL_MODULE := libirdecode
|
||||||
LOCAL_SRC_FILES := irda_decode_jni.c \
|
LOCAL_SRC_FILES := irda_decode_jni.c \
|
||||||
irda_decode.c \
|
irda_decode.c \
|
||||||
irda_lib.c \
|
irda_tv_parse.c \
|
||||||
irda_apply.c \
|
irda_apply.c \
|
||||||
irda_irframe.c \
|
irda_irframe.c \
|
||||||
irda_parse_ac_parameter.c \
|
irda_parse_ac_parameter.c \
|
||||||
@@ -14,9 +14,6 @@ LOCAL_SRC_FILES := irda_decode_jni.c \
|
|||||||
irda_parse_frame_parameter.c \
|
irda_parse_frame_parameter.c \
|
||||||
irda_utils.c \
|
irda_utils.c \
|
||||||
|
|
||||||
LOCAL_MODULE_TAGS := optional
|
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
|
||||||
LOCAL_PRELINK_MODULE := false
|
|
||||||
|
|
||||||
LOCAL_SHARED_LIBRARIES := liblog libcutils
|
|
||||||
|
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
1
src/ir_decoder/Application.mk
Normal file
1
src/ir_decoder/Application.mk
Normal file
@@ -0,0 +1 @@
|
|||||||
|
APP_BUILD_SCRIPT := Android.mk
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
# Copyright (C) 2007 The Android Open Source Project
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
# If you don't need to do a full clean build but would like to touch
|
|
||||||
# a file or delete some intermediate files, add a clean step to the end
|
|
||||||
# of the list. These steps will only be run once, if they haven't been
|
|
||||||
# run before.
|
|
||||||
#
|
|
||||||
# E.g.:
|
|
||||||
# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
|
|
||||||
# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
|
|
||||||
#
|
|
||||||
# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
|
|
||||||
# files that are missing or have been moved.
|
|
||||||
#
|
|
||||||
# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
|
|
||||||
# Use $(OUT_DIR) to refer to the "out" directory.
|
|
||||||
#
|
|
||||||
# If you need to re-do something that's already mentioned, just copy
|
|
||||||
# the command and add it to the bottom of the list. E.g., if a change
|
|
||||||
# that you made last week required touching a file and a change you
|
|
||||||
# made today requires touching the same file, just copy the old
|
|
||||||
# touch step and add it to the end of the list.
|
|
||||||
#
|
|
||||||
# ************************************************
|
|
||||||
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
|
|
||||||
# ************************************************
|
|
||||||
|
|
||||||
# For example:
|
|
||||||
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
|
|
||||||
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
|
|
||||||
#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
|
|
||||||
#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
|
|
||||||
|
|
||||||
# ************************************************
|
|
||||||
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
|
|
||||||
# ************************************************
|
|
||||||
@@ -143,62 +143,6 @@ JNIEXPORT jintArray JNICALL Java_net_irext_remote_service_DecodeService_irdaTVCo
|
|||||||
JNIEXPORT void JNICALL Java_net_irext_remote_service_DecodeService_irdaTVLibClose
|
JNIEXPORT void JNICALL Java_net_irext_remote_service_DecodeService_irdaTVLibClose
|
||||||
(JNIEnv *, jobject);
|
(JNIEnv *, jobject);
|
||||||
|
|
||||||
/*
|
|
||||||
* Class: net_irext_remote_service_DecodeService
|
|
||||||
* Method: bcLibOpen
|
|
||||||
* Signature: (Ljava/lang/String;)I
|
|
||||||
*/
|
|
||||||
JNIEXPORT jint JNICALL Java_net_irext_remote_service_DecodeService_bcLibOpen
|
|
||||||
(JNIEnv *, jobject, jstring);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Class: net_irext_remote_service_DecodeService
|
|
||||||
* Method: bcGetNeedConnAck
|
|
||||||
* Signature: ()I
|
|
||||||
*/
|
|
||||||
JNIEXPORT jint JNICALL Java_net_irext_remote_service_DecodeService_bcGetNeedConnAck
|
|
||||||
(JNIEnv *, jobject);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Class: net_irext_remote_service_DecodeService
|
|
||||||
* Method: bcGetDeviceName
|
|
||||||
* Signature: ()Ljava/lang/String;
|
|
||||||
*/
|
|
||||||
JNIEXPORT jstring JNICALL Java_net_irext_remote_service_DecodeService_bcGetDeviceName
|
|
||||||
(JNIEnv *, jobject);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Class: net_irext_remote_service_DecodeService
|
|
||||||
* Method: bcGetValidKeys
|
|
||||||
* Signature: ()[I
|
|
||||||
*/
|
|
||||||
JNIEXPORT jintArray JNICALL Java_net_irext_remote_service_DecodeService_bcGetValidKeys
|
|
||||||
(JNIEnv *, jobject);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Class: net_irext_remote_service_DecodeService
|
|
||||||
* Method: bcLibClose
|
|
||||||
* Signature: ()V
|
|
||||||
*/
|
|
||||||
JNIEXPORT void JNICALL Java_net_irext_remote_service_DecodeService_bcLibClose
|
|
||||||
(JNIEnv *, jobject);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Class: net_irext_remote_service_DecodeService
|
|
||||||
* Method: bcGetConnAck
|
|
||||||
* Signature: ()Lcom/irext/remote/bean/jnibean/JNIBCCommands;
|
|
||||||
*/
|
|
||||||
JNIEXPORT jobject JNICALL Java_net_irext_remote_service_DecodeService_bcGetConnAck
|
|
||||||
(JNIEnv *, jobject);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Class: net_irext_remote_service_DecodeService
|
|
||||||
* Method: bcGetCommand
|
|
||||||
* Signature: (I)Lcom/irext/remote/bean/jnibean/JNIBCCommands;
|
|
||||||
*/
|
|
||||||
JNIEXPORT jobject JNICALL Java_net_irext_remote_service_DecodeService_bcGetCommand
|
|
||||||
(JNIEnv *, jobject, jint);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -9,19 +9,88 @@ Revision log:
|
|||||||
* 2016-03-21: created by strawmanbobi
|
* 2016-03-21: created by strawmanbobi
|
||||||
**************************************************************************************************/
|
**************************************************************************************************/
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "include/irda_decode_jni.h"
|
#include <errno.h>
|
||||||
#include "irda_defs.h"
|
#include "./include/irda_decode_jni.h"
|
||||||
#include "irda_decode.h"
|
#include "./include/irda_defs.h"
|
||||||
|
#include "./include/irda_decode.h"
|
||||||
|
|
||||||
// function declaration
|
// global variable definition
|
||||||
void FillBCCommandValuesToJni(JNIEnv* env, jobject j_bc_command, jclass bccommand_class, t_bc_command bc_command);
|
UINT16 binary_length = 0;
|
||||||
|
UINT8 *binary_content = NULL;
|
||||||
|
|
||||||
|
INT8 irda_ac_file_open(const char* file_name)
|
||||||
|
{
|
||||||
|
FILE *stream = fopen(file_name, "rb");
|
||||||
|
if (NULL == stream)
|
||||||
|
{
|
||||||
|
IR_PRINTF("\nfile open failed : %d\n", errno);
|
||||||
|
return IR_DECODE_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
fseek(stream, 0, SEEK_END);
|
||||||
|
binary_length = ftell(stream);
|
||||||
|
binary_content = (UINT8*) irda_malloc(binary_length);
|
||||||
|
|
||||||
|
if (NULL == binary_content)
|
||||||
|
{
|
||||||
|
IR_PRINTF("\nfailed to alloc memory for binary\n");
|
||||||
|
return IR_DECODE_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
fseek(stream, 0, SEEK_SET);
|
||||||
|
fread(binary_content, binary_length, 1, stream);
|
||||||
|
fclose(stream);
|
||||||
|
|
||||||
|
if (IR_DECODE_FAILED == irda_ac_lib_open(binary_content, binary_length))
|
||||||
|
{
|
||||||
|
irda_free(binary_content);
|
||||||
|
binary_length = 0;
|
||||||
|
return IR_DECODE_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
return IR_DECODE_SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
|
INT8 irda_tv_file_open(const char* file_name)
|
||||||
|
{
|
||||||
|
int print_index = 0;
|
||||||
|
FILE *stream = fopen(file_name, "rb");
|
||||||
|
|
||||||
|
IR_PRINTF("file name = %s\n", file_name);
|
||||||
|
|
||||||
|
if (stream == NULL)
|
||||||
|
{
|
||||||
|
IR_PRINTF("\nfile open failed : %d\n", errno);
|
||||||
|
return IR_DECODE_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
fseek(stream, 0, SEEK_END);
|
||||||
|
binary_length = ftell(stream);
|
||||||
|
IR_PRINTF("length of binary = %d\n", binary_length);
|
||||||
|
|
||||||
|
binary_content = (UINT8*) irda_malloc(binary_length);
|
||||||
|
|
||||||
|
fseek(stream, 0, SEEK_SET);
|
||||||
|
fread(binary_content, binary_length, 1, stream);
|
||||||
|
fclose(stream);
|
||||||
|
|
||||||
|
if (IR_DECODE_FAILED == irda_tv_lib_open(binary_content, binary_length))
|
||||||
|
{
|
||||||
|
irda_free(binary_content);
|
||||||
|
binary_length = 0;
|
||||||
|
return IR_DECODE_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
return IR_DECODE_SUCCEEDED;
|
||||||
|
}
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_net_irext_remote_service_DecodeService_irdaACLibOpen
|
JNIEXPORT jint JNICALL Java_net_irext_remote_service_DecodeService_irdaACLibOpen
|
||||||
(JNIEnv *env, jobject this_obj, jstring file_name)
|
(JNIEnv *env, jobject this_obj, jstring file_name)
|
||||||
{
|
{
|
||||||
const char *n_file_name = (*env)->GetStringUTFChars(env, file_name, 0);
|
const char *n_file_name = (*env)->GetStringUTFChars(env, file_name, 0);
|
||||||
if (IR_DECODE_FAILED == irda_ac_lib_open(n_file_name))
|
if (IR_DECODE_FAILED == irda_ac_file_open(n_file_name))
|
||||||
{
|
{
|
||||||
irda_ac_lib_close();
|
irda_ac_lib_close();
|
||||||
(*env)->ReleaseStringUTFChars(env, file_name, n_file_name);
|
(*env)->ReleaseStringUTFChars(env, file_name, n_file_name);
|
||||||
@@ -167,7 +236,7 @@ JNIEXPORT jint JNICALL Java_net_irext_remote_service_DecodeService_irdaTVLibOpen
|
|||||||
{
|
{
|
||||||
const char *n_file_name = (*env)->GetStringUTFChars(env, file_name, 0);
|
const char *n_file_name = (*env)->GetStringUTFChars(env, file_name, 0);
|
||||||
|
|
||||||
if (IR_DECODE_FAILED == irda_tv_lib_open(n_file_name))
|
if (IR_DECODE_FAILED == irda_tv_file_open(n_file_name))
|
||||||
{
|
{
|
||||||
(*env)->ReleaseStringUTFChars(env, file_name, n_file_name);
|
(*env)->ReleaseStringUTFChars(env, file_name, n_file_name);
|
||||||
return IR_DECODE_FAILED;
|
return IR_DECODE_FAILED;
|
||||||
|
|||||||
Reference in New Issue
Block a user