mirror of
https://github.com/team-infusion-developers/android_hardware_samsung.git
synced 2024-11-06 21:55:41 +00:00
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:
parent
a7a0ecde63
commit
464c0c98bd
3 changed files with 56 additions and 26 deletions
|
@ -15,9 +15,15 @@
|
||||||
# HAL module implementation stored in
|
# HAL module implementation stored in
|
||||||
# hw/<POWERS_HARDWARE_MODULE_ID>.<ro.hardware>.so
|
# hw/<POWERS_HARDWARE_MODULE_ID>.<ro.hardware>.so
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
LOCAL_PATH := $(call my-dir)
|
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),)
|
ifeq ($(IR_HAL_SUFFIX),)
|
||||||
IR_HAL_SUFFIX := $(TARGET_BOARD_PLATFORM)
|
IR_HAL_SUFFIX := $(TARGET_BOARD_PLATFORM)
|
||||||
|
@ -25,16 +31,6 @@ endif
|
||||||
|
|
||||||
LOCAL_MODULE := consumerir.$(IR_HAL_SUFFIX)
|
LOCAL_MODULE := consumerir.$(IR_HAL_SUFFIX)
|
||||||
LOCAL_MODULE_RELATIVE_PATH := hw
|
LOCAL_MODULE_RELATIVE_PATH := hw
|
||||||
LOCAL_SRC_FILES := consumerir.c
|
|
||||||
LOCAL_SHARED_LIBRARIES := liblog libcutils
|
|
||||||
LOCAL_MODULE_TAGS := optional
|
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)
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
|
@ -28,27 +28,14 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <samsung_consumerir.h>
|
||||||
|
|
||||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
|
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
|
||||||
#define UNUSED __attribute__((unused))
|
#define UNUSED __attribute__((unused))
|
||||||
|
|
||||||
#define IR_PATH "/sys/class/sec/sec_ir/ir_send"
|
|
||||||
|
|
||||||
static int fd = 0;
|
static int fd = 0;
|
||||||
static pthread_mutex_t g_mtx;
|
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)
|
static bool try_append_number(char *buffer, int *len, int size, int number)
|
||||||
{
|
{
|
||||||
int stored;
|
int stored;
|
||||||
|
|
47
consumerir/include/samsung_consumerir.h
Normal file
47
consumerir/include/samsung_consumerir.h
Normal 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
|
Loading…
Reference in a new issue