Ignore:
Timestamp:
2011-09-04T11:30:58Z (14 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
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.
Message:

Merge mainline changes

File:
1 moved

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/usbhid/multimedia/multimedia.c

    rd2c67e7 r8ff0bd2  
    5050#include <str_error.h>
    5151
    52 #include <ipc/kbd.h>
     52#include <ipc/kbdev.h>
    5353#include <io/console.h>
    5454
    5555// FIXME: remove this header
    56 #include <kernel/ipc/ipc_methods.h>
     56#include <abi/ipc/methods.h>
    5757
    5858#define NAME "multimedia-keys"
     
    9494       
    9595        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;
    9796       
    9897        if (multim_dev == NULL) {
     
    162161        }
    163162       
    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,
    165164            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 console
    177         async_obsolete_hangup((*multim_dev)->console_phone);
    178 
    179         free(*multim_dev);
    180         *multim_dev = NULL;
    181165}
    182166
     
    186170    usb_multimedia_t *multim_dev)
    187171{
    188         /* Create the function exposed under /dev/devices. */
     172        /* Create the exposed function. */
    189173        ddf_fun_t *fun = ddf_fun_create(hid_dev->usb_dev->ddf_dev, fun_exposed,
    190174            NAME);
     
    206190        }
    207191       
    208         usb_log_debug("%s function created (jandle: %" PRIun ").\n",
     192        usb_log_debug("%s function created (handle: %" PRIun ").\n",
    209193            NAME, fun->handle);
    210194       
    211         rc = ddf_fun_add_to_class(fun, "keyboard");
     195        rc = ddf_fun_add_to_category(fun, "keyboard");
    212196        if (rc != EOK) {
    213197                usb_log_error(
    214                     "Could not add DDF function to class 'keyboard': %s.\n",
     198                    "Could not add DDF function to category 'keyboard': %s.\n",
    215199                    str_error(rc));
    216200                // TODO: Can / should I destroy the DDF function?
     
    248232       
    249233        int rc = usb_multimedia_create_function(hid_dev, multim_dev);
    250         if (rc != EOK) {
    251                 usb_multimedia_free(&multim_dev);
     234        if (rc != EOK)
    252235                return rc;
    253         }
    254236       
    255237        usb_log_debug(NAME " HID/multimedia structure initialized.\n");
     
    268250        if (data != NULL) {
    269251                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
     259bool usb_multimedia_polling_callback(struct usb_hid_dev *hid_dev, void *data)
    278260{
    279261        // TODO: checks
    280         if (hid_dev == NULL || data == NULL || buffer == NULL) {
     262        if (hid_dev == NULL || data == NULL) {
    281263                return false;
    282264        }
    283        
    284         usb_log_debug(NAME " usb_lgtch_polling_callback(%p, %p, %zu)\n",
    285             hid_dev, buffer, buffer_size);
    286        
     265
    287266        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));
    291267       
    292268        usb_hid_report_path_t *path = usb_hid_report_path();
    293269        usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_CONSUMER, 0);
    294270
    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);
    307272
    308273        usb_hid_report_field_t *field = usb_hid_report_get_sibling(
Note: See TracChangeset for help on using the changeset viewer.