Changeset 8ff0bd2 in mainline for uspace/drv/bus/usb/usbhid/multimedia/multimedia.c
- Timestamp:
- 2011-09-04T11:30:58Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 03bc76a
- Parents:
- d2c67e7 (diff), deac215e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/usbhid/multimedia/multimedia.c
rd2c67e7 r8ff0bd2 50 50 #include <str_error.h> 51 51 52 #include <ipc/kbd .h>52 #include <ipc/kbdev.h> 53 53 #include <io/console.h> 54 54 55 55 // FIXME: remove this header 56 #include < kernel/ipc/ipc_methods.h>56 #include <abi/ipc/methods.h> 57 57 58 58 #define NAME "multimedia-keys" … … 94 94 95 95 usb_multimedia_t *multim_dev = (usb_multimedia_t *)fun->driver_data; 96 //usb_hid_dev_t *hid_dev = (usb_hid_dev_t *)fun->driver_data;97 96 98 97 if (multim_dev == NULL) { … … 162 161 } 163 162 164 async_obsolete_msg_4(multim_dev->console_phone, KBD _EVENT, ev.type, ev.key,163 async_obsolete_msg_4(multim_dev->console_phone, KBDEV_EVENT, ev.type, ev.key, 165 164 ev.mods, ev.c); 166 }167 168 /*----------------------------------------------------------------------------*/169 170 static void usb_multimedia_free(usb_multimedia_t **multim_dev)171 {172 if (multim_dev == NULL || *multim_dev == NULL) {173 return;174 }175 176 // hangup phone to the console177 async_obsolete_hangup((*multim_dev)->console_phone);178 179 free(*multim_dev);180 *multim_dev = NULL;181 165 } 182 166 … … 186 170 usb_multimedia_t *multim_dev) 187 171 { 188 /* Create the function exposed under /dev/devices. */172 /* Create the exposed function. */ 189 173 ddf_fun_t *fun = ddf_fun_create(hid_dev->usb_dev->ddf_dev, fun_exposed, 190 174 NAME); … … 206 190 } 207 191 208 usb_log_debug("%s function created ( jandle: %" PRIun ").\n",192 usb_log_debug("%s function created (handle: %" PRIun ").\n", 209 193 NAME, fun->handle); 210 194 211 rc = ddf_fun_add_to_c lass(fun, "keyboard");195 rc = ddf_fun_add_to_category(fun, "keyboard"); 212 196 if (rc != EOK) { 213 197 usb_log_error( 214 "Could not add DDF function to c lass'keyboard': %s.\n",198 "Could not add DDF function to category 'keyboard': %s.\n", 215 199 str_error(rc)); 216 200 // TODO: Can / should I destroy the DDF function? … … 248 232 249 233 int rc = usb_multimedia_create_function(hid_dev, multim_dev); 250 if (rc != EOK) { 251 usb_multimedia_free(&multim_dev); 234 if (rc != EOK) 252 235 return rc; 253 }254 236 255 237 usb_log_debug(NAME " HID/multimedia structure initialized.\n"); … … 268 250 if (data != NULL) { 269 251 usb_multimedia_t *multim_dev = (usb_multimedia_t *)data; 270 usb_multimedia_free(&multim_dev);271 }272 }273 274 /*----------------------------------------------------------------------------*/ 275 276 bool usb_multimedia_polling_callback(struct usb_hid_dev *hid_dev, void *data, 277 uint8_t *buffer, size_t buffer_size)252 // hangup phone to the console 253 async_obsolete_hangup(multim_dev->console_phone); 254 } 255 } 256 257 /*----------------------------------------------------------------------------*/ 258 259 bool usb_multimedia_polling_callback(struct usb_hid_dev *hid_dev, void *data) 278 260 { 279 261 // TODO: checks 280 if (hid_dev == NULL || data == NULL || buffer == NULL) {262 if (hid_dev == NULL || data == NULL) { 281 263 return false; 282 264 } 283 284 usb_log_debug(NAME " usb_lgtch_polling_callback(%p, %p, %zu)\n", 285 hid_dev, buffer, buffer_size); 286 265 287 266 usb_multimedia_t *multim_dev = (usb_multimedia_t *)data; 288 289 usb_log_debug(NAME " Calling usb_hid_parse_report() with "290 "buffer %s\n", usb_debug_str_buffer(buffer, buffer_size, 0));291 267 292 268 usb_hid_report_path_t *path = usb_hid_report_path(); 293 269 usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_CONSUMER, 0); 294 270 295 uint8_t report_id; 296 297 int rc = usb_hid_parse_report(hid_dev->report, buffer, buffer_size, 298 &report_id); 299 300 if (rc != EOK) { 301 usb_log_warning(NAME "Error in usb_hid_parse_report(): %s\n", 302 str_error(rc)); 303 return true; 304 } 305 306 usb_hid_report_path_set_report_id(path, report_id); 271 usb_hid_report_path_set_report_id(path, hid_dev->report_id); 307 272 308 273 usb_hid_report_field_t *field = usb_hid_report_get_sibling(
Note:
See TracChangeset
for help on using the changeset viewer.