104 Commits

Author SHA1 Message Date
Wonsik Kim
9e922ca970 Fix native calls to null pointer
Since DEVICE_AVAILABLE event fires right after initialization, it
could happen before TvInputHal.mPtr is set, which causes calls to
null pointer. Fix the bug by allowing TvInputHal to wait for mPtr to
be set before calling native methods.

Change-Id: Id07f15130beb69f77c16bf3c735285c31ae4a3a4
2014-06-23 14:06:19 +09:00
Mike Reed
b933055cf3 stop using (deprecated) SkBitmap::Config
Change-Id: Ic75b5fc6996578e9d95bd3a220439ec1541d7c3b
2014-06-20 10:28:37 -04:00
Wonsik Kim
a358b53e1d TvInputHardware: Add HDMI port ID
Bug: 15570939
Change-Id: I957804124fa5e417de8c98c6d41332609097d995
2014-06-19 10:35:33 +09:00
Wonsik Kim
d7c29189aa TvInputHardware: Integration with audio framework changes
TvInputHardwareManager detects AudioPort specified by tv_input and
connect source to sink via AudioManager.createAudioPatch().

Bug: 15177175
Change-Id: I2252eb0df2d8287889ed28cc7d76dc1a659fd08b
2014-06-19 10:35:33 +09:00
Jinsuk Kim
63dd3bb360 Fixed a wrong path to HdmiPortInfo class
This fixes a JNI error for HdmiCecController

Change-Id: I8ce987dfa3126ecffd455a964c01d27fb9aa01eb
2014-06-13 14:46:17 +09:00
Jinsuk Kim
0340bbc89f RoutingControlAction for HdmiControlService
Routing control action is initiated in various cases, such as manual
TV input port switching, routing change of a different CEC switch,
and so on. The action determines the device to be a new active source.

Change-Id: I1efcd6ff1919dd94d6fa0e0ffa6e430c48d4e9c6
2014-06-12 23:40:05 +00:00
Jinsuk Kim
a6ce7708d6 DeviceSelectAction for HdmiControlService
DeviceSelectAction is the main handler for the API deviceSelect() which is
used to choose a new active source among logical devices on the bus.

Change-Id: I77582a1f873423fc316d89f67a89a867461a76b2
2014-06-12 23:06:29 +00:00
Jungshik Jang
092b445ef8 Move message handling logic to local device instead of service.
Local device is in charge of handling incoming messages
and for some messages such as <set menum language> or
<report physical address> each device has slightly different
behavior. Instread of checking destination address and
local device status from service, this change leaves it
to each local device.
Note that some messages are still left on service
and will be refactored in the following changes.

Along with this, following changes are included.
1. add missing jin interfaces
  set_option
  set_audio_return_channel
  is_connected
  Note that get_port_info is under review of jinsuk's change
2. if tv device receives <Report Physical Address>,
  starts NewDeviceAction.
3. add constants variables related to new interfaces.
4. add two helper methods for physical address and vendor
  id handling

Change-Id: I9c9d04744bc09fbf38431ecfa6e77097b0618a37
2014-06-12 10:53:36 +09:00
destradaa
96a14701c0 IPv6 support for GPS HAL.
Change-Id: Iacaf3ab86009975ba07e1a13dbe539cf47c5a6f7
2014-06-10 11:14:31 -07:00
Ed Heyl
5adb67d4ce merge 4ce22057, regen api/current.txt
Change-Id: I39186b5c4d41753c729c5d1ee7ee96b03a45c514
2014-06-09 10:41:21 -07:00
Jinsuk Kim
3f48068d78 Remove HdmiCecService
The service is replaced with HdmiControlService. Removing all the related
classes and the initialization of the service.

Change-Id: Ic7baaddffb9873613ddd1096e874f226da983939
2014-06-09 07:55:47 +09:00
destradaa
5ce66d8dcc Re-work the initialization of FLP HAL to make isSupported() static.
b/14839888

Change-Id: Ib5973586fd8a2d4a1e5fd09cf82dd4f4493398d0
2014-06-03 11:09:00 -07:00
Jae Seo
4c9e57f156 resolved conflicts for merge of ebe661c4 to master
Change-Id: Ic25dc762ee43654b439de3ec237ead007bee3df4
2014-06-03 17:06:58 +00:00
Jae Seo
d5cc4a281e Put TV Input Framework under android.media.tv, including TvContract
Bug: 15345342
Change-Id: I665ca23f0f074ce29cb2e047109b209178532107
2014-06-02 11:02:52 -07:00
Florin Malita
9ec2eabe5a Merge "Add a native Canvas wrapper." 2014-06-02 13:37:11 +00:00
Jinsuk Kim
e74282b70b DO NOT MERGE: Stop publishing HdmiCecService, start publishing HdmiControlService
HdmiCecService will soon be deprecated and replaced with HdmiControlService.
Stopped publishing the service, and turned the corresponding manager to
stub so that it will do nothing but print out a warning msg instead.

Will help the app transition to the new service in the meantime. Once
the migration is finished, will gut out all the HdmiCecService/
HdmiCecManager stuff.

Change-Id: Ic34a69c4fb99f4e5a2c8323538195204ab16a545
2014-06-02 11:02:51 +09:00
Jungshik Jang
c47e26ca2f DO NOT MERGE: Add cec message handler to hdmi cec jni implementation
Notification for incoming cec message can be issued
from any thread but jni can call java method
in the thread that jni knows like service thread.
So this change delegates incoming message to
jni-friendly thread, service thread by exploit
looper of service thread.

Change-Id: If3b141d917df3e209912af1778eb509777199969
2014-06-02 10:55:50 +09:00
Florin Malita
5c3d927e17 Add a native Canvas wrapper.
Instead of storing a direct SkCanvas reference, Canvas now tracks
an opaque native wrapper class. The native wrapper can be used to
store additional info for emulating deprecated Skia features
(at this point it only stores a canvas).

Some notes:

* all native handle -> SkCanvas conversions are routed through a
  handful of native utility methods.
* safeCanvasSwap() refactored as a lower level setNativeBitmp() - which
  is what clients need.
* removed unused get_thread_msec() (Canvas.cpp)

Change-Id: I715a5a6f1e1621c1cfc1e510ae4f2ea15cf11114
2014-05-30 16:11:04 -04:00
Jinsuk Kim
8692fc68a4 Stop publishing HdmiCecService, start publishing HdmiControlService
HdmiCecService will soon be deprecated and replaced with HdmiControlService.
Stopped publishing the service, and turned the corresponding manager to
stub so that it will do nothing but print out a warning msg instead.

Will help the app transition to the new service in the meantime. Once
the migration is finished, will gut out all the HdmiCecService/
HdmiCecManager stuff.

Change-Id: Ic34a69c4fb99f4e5a2c8323538195204ab16a545
2014-05-29 21:09:43 +00:00
Jungshik Jang
4085d0ef62 Add cec message handler to hdmi cec jni implementation
Notification for incoming cec message can be issued
from any thread but jni can call java method
in the thread that jni knows like service thread.
So this change delegates incoming message to
jni-friendly thread, service thread by exploit
looper of service thread.

Change-Id: If3b141d917df3e209912af1778eb509777199969
2014-05-28 18:01:24 +09:00
Wonsik Kim
c22dbb6919 Revert "Revert "Add physical TV input handling to TvInputManagerService""
This reverts commit 1940e197a8de186df5edf0b78e0907ae539bd215.

Bug: 14118245, Bug: 15197740
Change-Id: Ia308f16d2ed8ec55112a4d21c180ccb97e8d7c6a
2014-05-27 01:33:50 +00:00
Jungshik Jang
be9cd8eb3f Add ARC commands
ARC, Audio Return Channel is newly introduced in HDMI CEC 1.4.
Here is a list of new command
<Initiate ARC>
<Report ARC Initiated>
<Report ARC Terminated>
<Request ARC Initiation>
<Request ARC Termination>
<Terminate ARC>

Along with it replaced <Get OSD Name> with <Give OSD Name>
which is renamed in CEC 1.4.

Change-Id: If4a7aedef839c8413a8e3b5f66f3df0c7234104b
2014-05-15 20:21:43 +09:00
Florin Malita
531fecca1c Merge "Encapsulate Canvas.mNativeCanvas" 2014-05-07 22:44:47 +00:00
Florin Malita
c677675e9c Encapsulate Canvas.mNativeCanvas
Currently, the native canvas is accessed/manipulated from several
unrelated classes.

In order to facilitate SaveFlags emulation, this CL encapsulates
the field and refactors its external users.

Two main changes:

* new getNativeCanvas() getter for use in Java-level clients.
* JNI canvas swappers (GraphicsBuffers, Surface, TextureView &
  AssetAtlasService) are refactored based on the exising/equivalent
  safeCanvasSwap() Canvas method.

Change-Id: I966bd4898f0838fb3699e226d3d3d51e0224ea97
2014-05-06 21:07:19 -04:00
Jungshik Jang
a9095ba488 Implement more native api for Hdmi cec.
HAL interface for CEC has more apis that haven't
connected with HdmiCecController.
Here is a list of apis.

1. addLogicalAddress
2. clearLogicalAddress
3. getPhysicalAddress
4. getVersion
5. getVendorId

Verified that it does not affect to other components in nakasi

Change-Id: I535bde47c43dd25bbede002c0a2aefbe86779076
2014-05-07 00:36:26 +00:00
Jungshik Jang
97babdc92b Fix unmatched jni method name.
It breaks systemserver

Change-Id: Iecc5600d64a273c4bbf51bd8fd779a79a3dab107
2014-05-02 13:21:15 +09:00
Jungshik Jang
e9c77c88ea Implement native send and receive logic for HdmiCecController.
This change includes native jni implementation for
incoming and outgoing message of CEC.
For incoming message, native layer converts it into three
pieces, source address (initiator), destination address (follower)
and data body which includes opcode. In Java layer, it is delegated to
main io thread. For now all messages are rejected by sending <Feature Abort>
to initiator.
For outoging message, all messages are sent to io thread and it delegates
it into native layer. Native logic converts it into cec_message and
pass it to HAL so that HAL performs sending message.
In order to handle <Feature Abort> message, added [Abort reason] which is
defined in hdmi_cec.h.

Change-Id: If9fd74745f476105e5cfae964e39c78bae69d3e2
2014-04-30 14:29:04 +09:00
Michael Wright
15c32f2699 Merge "Move key attribute information into KeyEvent." 2014-04-29 22:31:06 +00:00
Jinsuk Kim
c79224e4b7 am 60037302: am 8fe27e88: Merge "Move logical address allocation logic into native service from HAL" into klp-modular-dev
* commit '60037302208be033442cc3f3c50a25c7064ebbd1':
  Move logical address allocation logic into native service from HAL
2014-04-29 21:38:19 +00:00
Jinsuk Kim
6003730220 am 8fe27e88: Merge "Move logical address allocation logic into native service from HAL" into klp-modular-dev
* commit '8fe27e881851921a90882f7d4da142bf936c5549':
  Move logical address allocation logic into native service from HAL
2014-04-29 21:35:01 +00:00
Michael Wright
337d9d2edc Move key attribute information into KeyEvent.
This consolidates all of the information that was in the native
KeyEvent and the KeyLayout files into the managed KeyEvent class.

It also moves the definition for all of the key names to the native
side, rather than having them in both places.

Change-Id: I172e3b554e7eb52c79ae2ec406ef4332e8b25ffa
2014-04-28 14:33:40 -07:00
Jungshik Jang
0792d37385 Implement skeleton of new HDMI Control Service.
HdmiCecService is a system service handling HDMI-CEC features
and command. Recently we found out that industry has more
requirements to support HDMI-CEC. Also, MHL is another
standard should be in our pocket. Basically, MHL is
a standard to support communication between mobile device
and TV or Av device. As CEC is a control standard over HDMI
cable, MHL has control channel for peer device.
There behavior is very similiar. Both have commands that
can change Tv's current input and can send/receive key
to other device to control other deivce or TV.

In order to cover both CEC and MHL, current HdmiCecService
implementation has limitation. We had several
session of discussion and decided to refactor
HdmiCecService into HdmiControlService.
For each standard it will have separate controller instance
like HdmiCecController and HdmiMhlController.

In this change I didn't touch original HdmiCecService
because some component, like cast receiver, uses HdmiCecService.
For a while we will keep HdmiCecService until HdmiControlService
accomodates all features of HdmiCecService.

Change-Id: I5485280ab803dbf071d898bfbe34be0b11ce7958
2014-04-25 08:37:51 +09:00
Jinsuk Kim
cbafd1b3ea Move logical address allocation logic into native service from HAL
Logical address logic is independent from hardware, and the algorithm is
standardized in the spec. Moved the logic to service so that all HAL
implementations doesn't have to duplicated logic inside.

Related change in HAL definition is in:
https://googleplex-android-review.git.corp.google.com/#/c/447951/

Change-Id: I9699309719f3214fc2dbdf219faad484c0c1c5bf
2014-04-21 07:42:35 +09:00
Jinsuk Kim
4bdcd299da am 55dab4dd: am b11f250e: Merge "Delegate HdmiCecService method impl to HdmiCecDevice subclass" into klp-modular-dev
* commit '55dab4dd3b5b56ade91c012d688b581b6cbdebdf':
  Delegate HdmiCecService method impl to HdmiCecDevice subclass
2014-04-11 09:43:37 +00:00
Jinsuk Kim
55dab4dd3b am b11f250e: Merge "Delegate HdmiCecService method impl to HdmiCecDevice subclass" into klp-modular-dev
* commit 'b11f250e09195d1ab250c93bfed0b31ed3a40f3d':
  Delegate HdmiCecService method impl to HdmiCecDevice subclass
2014-04-11 09:40:46 +00:00
Jinsuk Kim
b11f250e09 Merge "Delegate HdmiCecService method impl to HdmiCecDevice subclass" into klp-modular-dev 2014-04-11 09:38:23 +00:00
Jinsuk Kim
61791075f4 Delegate HdmiCecService method impl to HdmiCecDevice subclass
Most of the methods in the interface IHdmiCecService should be implemented
based on the device type. This CL makes a change such that the HdmiCecDevice
just has stub methods that should be overriden by subclasses.

Other changes:
  - Fixed a bug of <Inactive Source> not sending its physical address
    in its message body. Also the command should have been sent to TV
    only rather than broadcast.

  - Put back sendGiveDevicePowerStatus interface method. It allows the client
    to keep track of the other device(like TV) power status more closely.
    Devices goes through the status from standby -> transient to on -> on
    but the CEC spec doesn't require that they broacast it actively.

    The restored method can be used to let the playback device to get
    up-to-date power status of TV/display when it is booting up.

    This method should work the same across all the device types. So it was
    implemented in the service, not delegated to HdmiCecDevice.

  - Send <Report Physical Address> when a new logical device is registered,
    which is required by CEC spec: "it should report the association between
    its logical and physical address by broadcasting <Report Physical
    Address>

Change-Id: Iac1d2cf5783d947f2dcd6965a54670fbdb8e6a63
2014-04-11 18:35:01 +09:00
Jeff Brown
4e5c089ef3 resolved conflicts for merge of 337e764d to master
Change-Id: I8168dbf42b68c2f7b5ccb300e0080dddc627af26
2014-04-11 01:33:20 -07:00
Jeff Brown
337e764deb am f24687e2: Merge "Plumb display power state through display manager." into klp-modular-dev
* commit 'f24687e2731811fd0e3803b691fd47a659f89329':
  Plumb display power state through display manager.
2014-04-11 03:49:37 +00:00
Jeff Brown
037c33eae7 Plumb display power state through display manager.
Declare a new method, Display.getState() to retrieve the actual
power state of a display.

Improved documentation for Intent.ACTION_SCREEN_ON and
Intent.ACTION_SCREEN_OFF to clarify what they really mean in
terms of the interactive state of the device.

Deprecated PowerManager.isScreenOn() and replaced it with
PowerManager.isInteractive() with a more suggestive name and
better documentation.

Redirect display power state changes to go through the display
manager first and only then head over to the power manager for
legacy compatibility.

Eliminated the bright here and woke here policy flags since they
were unused.  Simplified the input dispatch policy somewhat.

Ensure that screen wake locks are respected up until the point
when dozing really begins.

Fixed a regression in DreamService where onDreamingStarted
might be called before onWindowAttached.

Bug: 13133142
Bug: 13472578
Bug: 13929355
Bug: 13760290
Change-Id: Iabef96921dd554ce3768fb18619cefc3230b5fb0
2014-04-10 20:46:14 -07:00
Michael Wright
118d113478 Merge "Fix size_t format specifier" 2014-04-04 23:51:36 +00:00
Ruchi Kandoi
654d75fec9 PowerManager: Fix build
fix build breaks by commit 667372e39bfe01bd15f0803d51ef0e9816f18808

Change-Id: I9e6e0f9146f860d27337cef0551c686ba2d60e23
2014-04-04 16:34:56 -07:00
Michael Wright
9ecba5269b Fix size_t format specifier
Change-Id: I7d4ce5e0c7bb4d9e0cc19edf68f30f6b2b054bc7
2014-04-04 15:29:53 -07:00
Leon Scroggins
7716b7d8ef Merge "Update to call new Skia APIs." 2014-04-04 20:31:00 +00:00
Ruchi Kandoi
f20a5eb279 PowerManager: add powerHint method
Add powerHint method to IPowerManager for passing power hints from other
processes.

Change-Id: Ic596ace2ed1796a6da4cddb2163dcc4536115e55
2014-04-04 20:24:16 +00:00
Leon Scroggins
cc11f15f76 Update to call new Skia APIs.
I816129d49c0118453222916f3c818eccac33663d merges a new version of
Skia that updates various APIs. Call the new ones.

SkBitmap::copyTo now takes an SkColorType instead of an
SkBitmap::Config, so do the conversion with
SkBitmapConfigToColorType or use the enum when it makes sense.

Call SkImageDecoder::decodeSubset instead of (deprecated)
SkImageDecoder::decodeRegion.

Override SkCanvas::ClipVisitor::clipRRect in ClipCopier.

In Canvas::clip calls, call SkCanvas::isClipEmpty(), which was
previously called inside the clip call, to determine the return value.

For various SkPaint effects, call the new factories (as the constructors
have been made protected).

Implement SkJavaOutputStream::bytesWritten(), overriding a new pure
virtual function on SkWStream.

Update Matrix calls to always return true (since SkMatrix calls no
longer return a value).

Depends on I816129d49c0118453222916f3c818eccac33663d (skia).

Change-Id: I5cdcea827ebff587df0bbddc0965e3e0fbf48002
2014-04-04 14:42:39 -04:00
Jinsuk Kim
f602835987 am f2fe3505: am 31518f74: Merge "Use build property for CEC device OSD name" into klp-modular-dev
* commit 'f2fe3505dac16dfa990fbab56713abab6ba0bc54':
  Use build property for CEC device OSD name
2014-04-03 02:11:40 +00:00
Jinsuk Kim
f2fe3505da am 31518f74: Merge "Use build property for CEC device OSD name" into klp-modular-dev
* commit '31518f745ffa5e832274c332ac957a065948fdaf':
  Use build property for CEC device OSD name
2014-04-03 00:39:23 +00:00
Jinsuk Kim
60b17cc094 Use build property for CEC device OSD name
Previously OSD name was based on device type. This CL makes it
independent of device type. CEC spec says "A device that implements
more than one type of CEC functionality should respond with the same
OSD name for each logical address. It is recommended that the name
refers to the complete physical product rather than the individual
CEC functionality".

Now the default name comes from system build property. I removed
setOsdName() from aidl for now since it won't be in use.

Change-Id: I3c9fb877fad4bc5efef56268d155a3f37a865fc2
2014-04-03 07:59:27 +09:00
Jinsuk Kim
00bc283453 am 2e59bd78: am 41eaa32c: Merge "Replace individual methods with a consolidated CEC nativeSendmessage" into klp-modular-dev
* commit '2e59bd788546e29e48b85bda72da6af61704113d':
  Replace individual methods with a consolidated CEC nativeSendmessage
2014-03-31 01:50:56 +00:00