All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH BlueZ v6 0/9] mcp: support multiple MCP and implement local GMCS
@ 2025-12-12 20:12 Pauli Virtanen
  2025-12-12 20:12 ` [PATCH BlueZ v6 1/9] shared/mcp, mcp: support multiple MCP, and add non-stub MCS server Pauli Virtanen
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Pauli Virtanen @ 2025-12-12 20:12 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Pauli Virtanen

v6:
- use only rewritten bt_uinput to be able to change license
- make all patches buildable, combining commits
- in that, split out mcp: add support for Repeat & Shuffle
- fixup: re-read of values on track change if remote doesn't notify
- fixup: make sure other values are read only after CCID

v5:
- fix -D_FORTIFY_SOURCE false positive vs. strncpy in the old avctp code
  in testbot environment

v4:
- move uinput-util.h to src/shared + adapt accordingly
- improve debug logs in profile

v3:
- add missing #include to fix build in the test environment

v2:
- fix compilation issues
- remove unnecessary code in get_media_cp_op_supported

***

For Media Control Client, add support for multiple GMCS / MCS services
on the server. Revise the API accordingly.

For Media Control Server, make it a non-stub implementation (OTS still
missing), and add an API the profile can use.

Add tests.

This changes the design of the previous MCP code, so it's mostly a
rewrite.

The shared/mcp: commit doesn't fix the API in profiles/audio, that's
done in the later mcp: commit, as it's a rewrite of the API.

TODO (for later): OTP/OTS parts -- requires design for OTP/OTS
implementation first

TODO (for later): MPRIS integration to GMCS server -- this needs some
redesign in media.c as it's hardcoded to AVRCP there.

Tested devices (MCS):
- Creative Zen Hybrid Pro (doesn't even connect without GMCS)
- Samsung Galaxy Buds Pro2
- Creative Aurvana Ace 2

Tested devices (MCP):
- Samsung Galaxy A56

Pauli Virtanen (9):
  shared/mcp, mcp: support multiple MCP, and add non-stub MCS server
  test-mcp: add tests for MCP / MCS
  mcp: add support for Repeat & Shuffle for remote player
  shared/uinput: add uinput utility functions
  avctp: use uinput utilities from src/shared
  mcp: add local GMCS service that emits uinput media keys
  shared/mcp: on track changed, re-read values if notify not available
  test-mcp: check attributes are reread on track change if no notify
  shared/mcp: complete CCID read before considering other attributes

 .gitignore             |    1 +
 Makefile.am            |    9 +-
 lib/bluetooth/uuid.h   |   27 +-
 profiles/audio/avctp.c |  166 +--
 profiles/audio/mcp.c   |  808 +++++++---
 src/shared/mcp.c       | 3216 +++++++++++++++++++++++-----------------
 src/shared/mcp.h       |  186 ++-
 src/shared/mcs.h       |   51 +-
 src/shared/uinput.c    |  204 +++
 src/shared/uinput.h    |   32 +
 unit/test-mcp.c        | 1859 +++++++++++++++++++++++
 11 files changed, 4802 insertions(+), 1757 deletions(-)
 create mode 100644 src/shared/uinput.c
 create mode 100644 src/shared/uinput.h
 create mode 100644 unit/test-mcp.c

-- 
2.51.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-12-12 20:29 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-12 20:12 [PATCH BlueZ v6 0/9] mcp: support multiple MCP and implement local GMCS Pauli Virtanen
2025-12-12 20:12 ` [PATCH BlueZ v6 1/9] shared/mcp, mcp: support multiple MCP, and add non-stub MCS server Pauli Virtanen
2025-12-12 20:29   ` mcp: support multiple MCP and implement local GMCS bluez.test.bot
2025-12-12 20:12 ` [PATCH BlueZ v6 2/9] test-mcp: add tests for MCP / MCS Pauli Virtanen
2025-12-12 20:12 ` [PATCH BlueZ v6 3/9] mcp: add support for Repeat & Shuffle for remote player Pauli Virtanen
2025-12-12 20:12 ` [PATCH BlueZ v6 4/9] shared/uinput: add uinput utility functions Pauli Virtanen
2025-12-12 20:12 ` [PATCH BlueZ v6 5/9] avctp: use uinput utilities from src/shared Pauli Virtanen
2025-12-12 20:12 ` [PATCH BlueZ v6 6/9] mcp: add local GMCS service that emits uinput media keys Pauli Virtanen
2025-12-12 20:12 ` [PATCH BlueZ v6 7/9] shared/mcp: on track changed, re-read values if notify not available Pauli Virtanen
2025-12-12 20:12 ` [PATCH BlueZ v6 8/9] test-mcp: check attributes are reread on track change if no notify Pauli Virtanen
2025-12-12 20:12 ` [PATCH BlueZ v6 9/9] shared/mcp: complete CCID read before considering other attributes Pauli Virtanen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.