From 464c0c98bd0752ab44f16988b20ff801bc901549 Mon Sep 17 00:00:00 2001 From: Paul Keith Date: Sat, 10 Dec 2016 09:30:32 -0600 Subject: [PATCH] consumerir: Allow devices to override default configs * This is cleaner than hacking up makefiles * This brings us closer to what other hals in this repo are doing (e.g. lights, power) and this is done following their example * As a note, haggertk suggested this when we added the inital unified hal, but I never got around to doing it Change-Id: I7c911c5afc2b67308d7135b50a4863a6a9480035 Signed-off-by: Paul Keith --- consumerir/Android.mk | 18 ++++------ consumerir/consumerir.c | 17 ++------- consumerir/include/samsung_consumerir.h | 47 +++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 26 deletions(-) create mode 100644 consumerir/include/samsung_consumerir.h diff --git a/consumerir/Android.mk b/consumerir/Android.mk index cd8fd38..b5cbcca 100644 --- a/consumerir/Android.mk +++ b/consumerir/Android.mk @@ -15,9 +15,15 @@ # HAL module implementation stored in # hw/..so +include $(CLEAR_VARS) + LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) +LOCAL_SRC_FILES := consumerir.c + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/include + +LOCAL_SHARED_LIBRARIES := liblog libcutils ifeq ($(IR_HAL_SUFFIX),) IR_HAL_SUFFIX := $(TARGET_BOARD_PLATFORM) @@ -25,16 +31,6 @@ endif LOCAL_MODULE := consumerir.$(IR_HAL_SUFFIX) LOCAL_MODULE_RELATIVE_PATH := hw -LOCAL_SRC_FILES := consumerir.c -LOCAL_SHARED_LIBRARIES := liblog libcutils LOCAL_MODULE_TAGS := optional -ifeq ($(BOARD_IR_HAS_ONE_FREQ_RANGE),true) -LOCAL_CFLAGS += -DUSE_ONE_FREQ_RANGE -endif - -ifeq ($(BOARD_USES_MS_IR_SIGNAL),true) -LOCAL_CFLAGS += -DMS_IR_SIGNAL -endif - include $(BUILD_SHARED_LIBRARY) diff --git a/consumerir/consumerir.c b/consumerir/consumerir.c index e41d447..f9ec588 100644 --- a/consumerir/consumerir.c +++ b/consumerir/consumerir.c @@ -28,27 +28,14 @@ #include #include +#include + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) #define UNUSED __attribute__((unused)) -#define IR_PATH "/sys/class/sec/sec_ir/ir_send" - static int fd = 0; static pthread_mutex_t g_mtx; -static const consumerir_freq_range_t consumerir_freqs[] = { -#ifdef USE_ONE_FREQ_RANGE - {.min = 16000, .max = 60000}, -#else - {.min = 30000, .max = 30000}, - {.min = 33000, .max = 33000}, - {.min = 36000, .max = 36000}, - {.min = 38000, .max = 38000}, - {.min = 40000, .max = 40000}, - {.min = 56000, .max = 56000}, -#endif -}; - static bool try_append_number(char *buffer, int *len, int size, int number) { int stored; diff --git a/consumerir/include/samsung_consumerir.h b/consumerir/include/samsung_consumerir.h new file mode 100644 index 0000000..6e4edc5 --- /dev/null +++ b/consumerir/include/samsung_consumerir.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2016 The CyanogenMod 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. + */ + +#ifndef SAMSUNG_CONSUMERIR_H +#define SAMSUNG_CONSUMERIR_H + +/* + * Board specific nodes + * + * If your kernel exposes these controls in another place, you can either + * symlink to the locations given here, or override this header in your + * device tree. + */ +#define IR_PATH "/sys/class/sec/sec_ir/ir_send" + +/* + * Board specific configs + * + * If your device needs a different configuration, you + * can override this header in your device tree + */ +// Some devices need MS_IR_SIGNAL to avoid ms to pulses conversionn +//#define MS_IR_SIGNAL + +static const consumerir_freq_range_t consumerir_freqs[] = { + {.min = 30000, .max = 30000}, + {.min = 33000, .max = 33000}, + {.min = 36000, .max = 36000}, + {.min = 38000, .max = 38000}, + {.min = 40000, .max = 40000}, + {.min = 56000, .max = 56000}, +}; + +#endif // SAMSUNG_CONSUMERIR_H