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 <javelinanddart@gmail.com>
This commit is contained in:
Paul Keith 2016-12-10 09:30:32 -06:00
parent a7a0ecde63
commit 464c0c98bd
3 changed files with 56 additions and 26 deletions

View File

@ -15,9 +15,15 @@
# HAL module implementation stored in
# hw/<POWERS_HARDWARE_MODULE_ID>.<ro.hardware>.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)

View File

@ -28,27 +28,14 @@
#include <string.h>
#include <unistd.h>
#include <samsung_consumerir.h>
#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;

View File

@ -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