A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita
audio
rust
zig
deno
mpris
rockbox
mpd
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id: $
9 *
10 * Copyright (C) 2008 by Frank Gevaerts
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21#include "string.h"
22#include "system.h"
23#include "usb_core.h"
24#include "usb_drv.h"
25#include "kernel.h"
26#include "usb_charging_only.h"
27#include "usb_class_driver.h"
28
29/*#define LOGF_ENABLE*/
30#include "logf.h"
31
32/* charging_only interface */
33static struct usb_interface_descriptor __attribute__((aligned(2)))
34 interface_descriptor =
35{
36 .bLength = sizeof(struct usb_interface_descriptor),
37 .bDescriptorType = USB_DT_INTERFACE,
38 .bInterfaceNumber = 0,
39 .bAlternateSetting = 0,
40 .bNumEndpoints = 0,
41 .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
42 .bInterfaceSubClass = 0,
43 .bInterfaceProtocol = 0,
44 .iInterface = 0
45};
46
47static int usb_interface;
48
49int usb_charging_only_request_endpoints(struct usb_class_driver *drv)
50{
51 (void) drv;
52 return 0;
53}
54
55int usb_charging_only_set_first_interface(int interface)
56{
57 usb_interface = interface;
58 return interface + 1;
59}
60
61int usb_charging_only_get_config_descriptor(unsigned char *dest,int max_packet_size)
62{
63 (void)max_packet_size;
64 unsigned char *orig_dest = dest;
65
66 interface_descriptor.bInterfaceNumber=usb_interface;
67 PACK_DATA(&dest, interface_descriptor);
68
69 return (dest-orig_dest);
70}