Commit graph

4 commits

Author SHA1 Message Date
Stewart Miles
84d35492b1 Described restrictions for common HAL object methods.
Inheritance of HAL object is performed by composing a child structure of a
single parent structure located at offset 0 followed by new data members
and function pointers in the child structure.

For example,

struct child {
  struct parent common;
  int a_data_member;
  void (*a_method)(struct child *c, int v);
};

HAL code assumes this layout when accessing child structures given a pointer
to a parent structure such that users write code like the following...

void child_method(struct *parent, int v) {
  struct child * c = (struct child*)parent;
  // do stuff with c
}

Code above will break if a member is added before "common" in "struct child".

This change adds comments that describe the restriction on the location of
parent HAL objects within a derived HAL object.  HAL objects that already
have comments that describe the required location of parent objects are not
modified.

Change-Id: Ibe4300275286ef275b2097534c84f1029d761d87
2014-05-12 12:35:37 -07:00
Alex Ray
d9d105a0ce consumer_ir: add array length to get carrier freq
Change-Id: Iefb424db6f16ffefa40da56c765c9b7a24bea397
2013-09-11 17:51:19 -07:00
Alex Ray
6670e24966 consumerir: make transmit array constant
Change-Id: I0409970d7bd8efe69a69ec038eea4ee3ff9cbfe0
2013-09-11 13:36:58 -07:00
Alex Ray
fe46e6a906 libhardware: add Consumer IR HAL API
Change-Id: I68db7911784aa802b378a5e1dad62397da16b03b
2013-09-09 23:52:49 -07:00