I've been using my Raspberry Pi to experiment with cec-client. As I read through the specification, one thing has puzzled me: How do you determine whether or not a feature is supported by the device? The spec says
This section describes the message transfer and additional details for a number of common features enabled by CEC. Note that where a feature is supported, all messages within that feature should be implemented.
The implication, to me, is that not every feature is supported. If that feature is not supported, the device should respond with "Feature Abort". Let's say I try to send the command using the following:
echo "tx 10 64 00 41 20 42 20 43" | cec-client -s -d 1
That should put the text "A B C" on the screen, but it does not. That's reasonable if the television doesn't support that feature. Unfortunately, the tail of the cec-client output looks like this:
DEBUG: [ 1404] >> TV (0) -> Recorder 1 (1): give osd name (46) DEBUG: [ 1405] << Recorder 1 (1) -> TV (0): OSD name 'CECTester' TRAFFIC: [ 1407] << 10:47:43:45:43:54:65:73:74:65:72 TRAFFIC: [ 1772] >> 01:90:00 DEBUG: [ 1775] >> TV (0) -> Recorder 1 (1): report power status (90) DEBUG: [ 1776] TV (0): power status changed from 'unknown' to 'on' DEBUG: [ 1777] expected response received (90: report power status) TRAFFIC: [ 1781] << 10:64:00:41:20:42:20:43 DEBUG: [ 1995] unregistering all CEC clients NOTICE: [ 1998] unregistering client: libCEC version = 2.1.1, client version = 2.1.1, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 18.104.22.168, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi', compiled on: Wed Apr 24 21:12:36 UTC 2013 by me@raspberrypi on Linux 3.2.27+ (armv6l) DEBUG: [ 2000] Recorder 1 (1): power status changed from 'on' to 'unknown' DEBUG: [ 2001] Recorder 1 (1): CEC version unknown DEBUG: [ 2003] Recorder 1 (1): osd name set to 'Recorder 1' DEBUG: [ 2004] Recorder 1 (1): device status changed into 'unknown' DEBUG: [ 2005] unregistering all CEC clients DEBUG: [ 2008] UnregisterLogicalAddress - releasing previous logical address DEBUG: [ 2011] logical address changed to Broadcast (f)
I don't see any evidence of "Feature Abort" being returned. What am I missing?