summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--1.patch149
-rw-r--r--tv_input.cpp54
2 files changed, 176 insertions, 27 deletions
diff --git a/tv_input.cpp b/tv_input.cpp
index 822c7c8..b67e359 100644
--- a/tv_input.cpp
+++ b/tv_input.cpp
@@ -23,16 +23,10 @@
#include <hardware/tv_input.h>
#include <tv/CTv.h>
+#include <tvin/CTvin.h>
#include <tvserver/TvService.h>
/*****************************************************************************/
-#define ATV_DEV_ID 1
-#define DTV_DEV_ID 2
-#define AV_DEV_ID 3
-#define HDMI1_DEV_ID 4
-#define HDMI2_DEV_ID 5
-#define HDMI3_DEV_ID 6
-
typedef struct tv_input_private {
tv_input_device_t device;
@@ -46,7 +40,7 @@ typedef struct tv_input_private {
static int notify_ATV_device_available(tv_input_private_t *priv)
{
tv_input_event_t event;
- event.device_info.device_id = ATV_DEV_ID;
+ event.device_info.device_id = SOURCE_TV;
event.device_info.type = TV_INPUT_TYPE_TUNER;
event.type = TV_INPUT_EVENT_DEVICE_AVAILABLE;
event.device_info.audio_type = AUDIO_DEVICE_NONE;
@@ -57,7 +51,7 @@ static int notify_ATV_device_available(tv_input_private_t *priv)
static int notify_DTV_device_available(tv_input_private_t *priv)
{
tv_input_event_t event;
- event.device_info.device_id = DTV_DEV_ID;
+ event.device_info.device_id = SOURCE_DTV;
event.device_info.type = TV_INPUT_TYPE_TUNER;
event.type = TV_INPUT_EVENT_DEVICE_AVAILABLE;
event.device_info.audio_type = AUDIO_DEVICE_NONE;
@@ -68,7 +62,7 @@ static int notify_DTV_device_available(tv_input_private_t *priv)
static int notify_AV_device_available(tv_input_private_t *priv)
{
tv_input_event_t event;
- event.device_info.device_id = AV_DEV_ID;
+ event.device_info.device_id = SOURCE_AV1;
event.device_info.type = TV_INPUT_TYPE_COMPONENT;
event.type = TV_INPUT_EVENT_DEVICE_AVAILABLE;
event.device_info.audio_type = AUDIO_DEVICE_NONE;
@@ -95,48 +89,48 @@ static int get_stream_configs(int dev_id, int *num_configurations, const tv_stre
return -1;
}
switch (dev_id) {
- case ATV_DEV_ID:
- mconfig->stream_id = ATV_DEV_ID;
+ case SOURCE_TV:
+ mconfig->stream_id = SOURCE_TV;
mconfig->type = TV_STREAM_TYPE_INDEPENDENT_VIDEO_SOURCE ;
mconfig->max_video_width = 1920;
mconfig->max_video_height = 1080;
*num_configurations = 1;
*configs = mconfig;
break;
- case DTV_DEV_ID:
- mconfig->stream_id = DTV_DEV_ID;
+ case SOURCE_DTV:
+ mconfig->stream_id = SOURCE_DTV;
mconfig->type = TV_STREAM_TYPE_INDEPENDENT_VIDEO_SOURCE ;
mconfig->max_video_width = 1920;
mconfig->max_video_height = 1080;
*num_configurations = 1;
*configs = mconfig;
break;
- case AV_DEV_ID:
- mconfig->stream_id = AV_DEV_ID;
+ case SOURCE_AV1:
+ mconfig->stream_id = SOURCE_AV1;
mconfig->type = TV_STREAM_TYPE_INDEPENDENT_VIDEO_SOURCE ;
mconfig->max_video_width = 1920;
mconfig->max_video_height = 1080;
*num_configurations = 1;
*configs = mconfig;
break;
- case HDMI1_DEV_ID:
- mconfig->stream_id = HDMI1_DEV_ID;
+ case SOURCE_HDMI1:
+ mconfig->stream_id = SOURCE_HDMI1;
mconfig->type = TV_STREAM_TYPE_INDEPENDENT_VIDEO_SOURCE ;
mconfig->max_video_width = 1920;
mconfig->max_video_height = 1080;
*num_configurations = 1;
*configs = mconfig;
break;
- case HDMI2_DEV_ID:
- mconfig->stream_id = HDMI2_DEV_ID;
+ case SOURCE_HDMI2:
+ mconfig->stream_id = SOURCE_HDMI2;
mconfig->type = TV_STREAM_TYPE_INDEPENDENT_VIDEO_SOURCE ;
mconfig->max_video_width = 1920;
mconfig->max_video_height = 1080;
*num_configurations = 1;
*configs = mconfig;
break;
- case HDMI3_DEV_ID:
- mconfig->stream_id = HDMI3_DEV_ID;
+ case SOURCE_HDMI3:
+ mconfig->stream_id = SOURCE_HDMI3;
mconfig->type = TV_STREAM_TYPE_INDEPENDENT_VIDEO_SOURCE ;
mconfig->max_video_width = 1920;
mconfig->max_video_height = 1080;
@@ -197,11 +191,11 @@ static int tv_input_initialize(struct tv_input_device *dev,
/* AV_DEVICE_AVAILABLE */
notify_AV_device_available(priv);
/* HDMI1_DEVICE_AVAILABLE */
- notify_hdmi_device_available(priv, HDMI1_DEV_ID, 1);
+ notify_hdmi_device_available(priv, SOURCE_HDMI1, 1);
/* HDMI2_DEVICE_AVAILABLE */
- notify_hdmi_device_available(priv, HDMI2_DEV_ID, 2);
+ notify_hdmi_device_available(priv, SOURCE_HDMI2, 2);
/* HDMI3_DEVICE_AVAILABLE */
- notify_hdmi_device_available(priv, HDMI3_DEV_ID, 3);
+ notify_hdmi_device_available(priv, SOURCE_HDMI3, 3);
return 0;
}
@@ -216,13 +210,19 @@ static int tv_input_get_stream_configurations(const struct tv_input_device *dev,
return -EINVAL;
}
-static int tv_input_open_stream(struct tv_input_device *, int, tv_stream_t *)
+static int tv_input_open_stream(struct tv_input_device* dev, int device_id,
+ tv_stream_t* stream)
{
+ tv_input_private_t *priv = (tv_input_private_t *)dev;
+ priv->pTv->SetSourceSwitchInput((tv_source_input_t) device_id);
return -EINVAL;
}
-static int tv_input_close_stream(struct tv_input_device *, int, int)
+static int tv_input_close_stream(struct tv_input_device* dev, int device_id,
+ int stream_id)
{
+ tv_input_private_t *priv = (tv_input_private_t *)dev;
+ priv->pTv->StopTvLock();
return -EINVAL;
}