linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [bluez/bluez] b45440: shared/mcp, mcp: support multiple MCP, and add non...
@ 2025-12-12 20:22 Pauli Virtanen
  0 siblings, 0 replies; only message in thread
From: Pauli Virtanen @ 2025-12-12 20:22 UTC (permalink / raw)
  To: linux-bluetooth

  Branch: refs/heads/1032730
  Home:   https://github.com/bluez/bluez
  Commit: b45440cca48dffcd0cc0f33dbc4bc815edb85a1b
      https://github.com/bluez/bluez/commit/b45440cca48dffcd0cc0f33dbc4bc815edb85a1b
  Author: Pauli Virtanen <pav@iki.fi>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M lib/bluetooth/uuid.h
    M profiles/audio/mcp.c
    M src/shared/mcp.c
    M src/shared/mcp.h
    M src/shared/mcs.h

  Log Message:
  -----------
  shared/mcp, mcp: support multiple MCP, and add non-stub MCS server

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 complete implementation (OTS still
missing), and add an API the profile can use.

This is mostly a complete rewrite.

Adapt also profile/mcp.c to use the new API, adding support for multiple
MCS services on the remote side.


  Commit: 2d71b6f901e5bf0df2b9a21058e5beea21a4a21f
      https://github.com/bluez/bluez/commit/2d71b6f901e5bf0df2b9a21058e5beea21a4a21f
  Author: Pauli Virtanen <pav@iki.fi>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M .gitignore
    M Makefile.am
    A unit/test-mcp.c

  Log Message:
  -----------
  test-mcp: add tests for MCP / MCS

Add tests for the Media Control Client / Server implementation.

This contains basic GGIT and state transition tests.  Not all state
transition tests are here, as they'd largely test the upper layer of the
profile which is not tested now.


  Commit: 8f5d3d9e2d011df33050920b75412118413d58d7
      https://github.com/bluez/bluez/commit/8f5d3d9e2d011df33050920b75412118413d58d7
  Author: Pauli Virtanen <pav@iki.fi>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M profiles/audio/mcp.c

  Log Message:
  -----------
  mcp: add support for Repeat & Shuffle for remote player

Add support for toggling remote player playing order settings.

These do not fully map to current org.bluez.MediaPlayer Repeat/Shuffle,
but try best effort mapping.


  Commit: 795424a01efd552bce742fe046842c1326365a7b
      https://github.com/bluez/bluez/commit/795424a01efd552bce742fe046842c1326365a7b
  Author: Pauli Virtanen <pav@iki.fi>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M Makefile.am
    A src/shared/uinput.c
    A src/shared/uinput.h

  Log Message:
  -----------
  shared/uinput: add uinput utility functions

Add uinput utility function that can be used both for AVCTP and MCS.


  Commit: 1a4067c650edef4385c04de80ff2ab3316b0521b
      https://github.com/bluez/bluez/commit/1a4067c650edef4385c04de80ff2ab3316b0521b
  Author: Pauli Virtanen <pav@iki.fi>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M profiles/audio/avctp.c

  Log Message:
  -----------
  avctp: use uinput utilities from src/shared

Make use of the src/shared version of uinput_create() / send_key


  Commit: 1563041a4c66c7a368de4e149b54ae9717d7bafd
      https://github.com/bluez/bluez/commit/1563041a4c66c7a368de4e149b54ae9717d7bafd
  Author: Pauli Virtanen <pav@iki.fi>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M profiles/audio/mcp.c

  Log Message:
  -----------
  mcp: add local GMCS service that emits uinput media keys

Implement simple GMCS service that is always inactive, and emits media
key presses via uinput for Play/Pause/Stop/Next/Prev MCS commands.

In practice, this seems to be enough to support media control keys on
headsets.  Some headsets (Creative Zen Hybrid Pro) also refuse to
connect if there is no GMCS service.


  Commit: a99047749c8e7cc1b642516e32c970bf7d1807e0
      https://github.com/bluez/bluez/commit/a99047749c8e7cc1b642516e32c970bf7d1807e0
  Author: Pauli Virtanen <pav@iki.fi>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M src/shared/mcp.c

  Log Message:
  -----------
  shared/mcp: on track changed, re-read values if notify not available

Notify is optional for some MCS attributes. To get new track titles etc.
re-read values on track change, if remote does not have notify on them.


  Commit: a2ff5f082013d6be3ef60c9e1736d76b740f1abd
      https://github.com/bluez/bluez/commit/a2ff5f082013d6be3ef60c9e1736d76b740f1abd
  Author: Pauli Virtanen <pav@iki.fi>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M unit/test-mcp.c

  Log Message:
  -----------
  test-mcp: check attributes are reread on track change if no notify

Add test we reread attributes on track change if remote does not have
optional notify features.


  Commit: b00b63b3f692db1d2ae4f9a1b1e1fa0414b9d4b3
      https://github.com/bluez/bluez/commit/b00b63b3f692db1d2ae4f9a1b1e1fa0414b9d4b3
  Author: Pauli Virtanen <pav@iki.fi>
  Date:   2025-12-12 (Fri, 12 Dec 2025)

  Changed paths:
    M src/shared/mcp.c

  Log Message:
  -----------
  shared/mcp: complete CCID read before considering other attributes

Service is shown ready to upper level when CCID is read, after which we
should notify upper level about current attribute values.

Make sure the values reach upper level, by reading them only after the
service is ready. Otherwise, the reads may complete in unspecified
order and upper level misses some events.


Compare: https://github.com/bluez/bluez/compare/b45440cca48d%5E...b00b63b3f692

To unsubscribe from these emails, change your notification settings at https://github.com/bluez/bluez/settings/notifications

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-12-12 20:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-12 20:22 [bluez/bluez] b45440: shared/mcp, mcp: support multiple MCP, and add non Pauli Virtanen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).