mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-17 08:56:49 -05:00
bluez5: add MIDI server/peripheral implementation dbus part
This commit is contained in:
parent
fe11bfdba0
commit
d30a0c5ee6
3 changed files with 579 additions and 1 deletions
|
|
@ -28,6 +28,8 @@
|
|||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <dbus/dbus.h>
|
||||
|
||||
#include <spa/utils/defs.h>
|
||||
#include <spa/support/log.h>
|
||||
|
||||
|
|
@ -48,6 +50,11 @@
|
|||
#define MIDI_CLOCK_PERIOD_MSEC 0x2000
|
||||
#define MIDI_CLOCK_PERIOD_NSEC (MIDI_CLOCK_PERIOD_MSEC * SPA_NSEC_PER_MSEC)
|
||||
|
||||
struct spa_bt_midi_server
|
||||
{
|
||||
const char *chr_path;
|
||||
};
|
||||
|
||||
struct spa_bt_midi_parser {
|
||||
unsigned int size;
|
||||
unsigned int sysex:1;
|
||||
|
|
@ -64,6 +71,13 @@ struct spa_bt_midi_writer {
|
|||
uint8_t buf[MIDI_MAX_MTU];
|
||||
};
|
||||
|
||||
struct spa_bt_midi_server_cb
|
||||
{
|
||||
int (*acquire_notify)(void *user_data, int fd, uint16_t mtu);
|
||||
int (*acquire_write)(void *user_data, int fd, uint16_t mtu);
|
||||
int (*release)(void *user_data);
|
||||
};
|
||||
|
||||
static inline void spa_bt_midi_parser_init(struct spa_bt_midi_parser *parser)
|
||||
{
|
||||
parser->size = 0;
|
||||
|
|
@ -117,4 +131,9 @@ static inline void spa_bt_midi_writer_init(struct spa_bt_midi_writer *writer, un
|
|||
int spa_bt_midi_writer_write(struct spa_bt_midi_writer *writer,
|
||||
uint64_t time, const uint8_t *event, size_t event_size);
|
||||
|
||||
struct spa_bt_midi_server *spa_bt_midi_server_new(DBusConnection *conn,
|
||||
const struct spa_bt_midi_server_cb *cb, struct spa_log *log, void *user_data);
|
||||
void spa_bt_midi_server_released(struct spa_bt_midi_server *server, bool write);
|
||||
void spa_bt_midi_server_destroy(struct spa_bt_midi_server *server);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue