linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Pauli Virtanen <noreply@github.com>
To: linux-bluetooth@vger.kernel.org
Subject: [bluez/bluez] 737884: shared/mcp, mcp: support multiple MCP, and add non...
Date: Fri, 12 Dec 2025 12:50:58 -0800	[thread overview]
Message-ID: <bluez/bluez/push/refs/heads/1032751/000000-a992b5@github.com> (raw)

  Branch: refs/heads/1032751
  Home:   https://github.com/bluez/bluez
  Commit: 73788476d4a7b1f07cfd6d8dc9653e6c069b3a1e
      https://github.com/bluez/bluez/commit/73788476d4a7b1f07cfd6d8dc9653e6c069b3a1e
  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: d2b0cc438b78636e5d93633103f7c3b07d48f53b
      https://github.com/bluez/bluez/commit/d2b0cc438b78636e5d93633103f7c3b07d48f53b
  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: 9e7e5d8f85335dc4db441453f247bd8c76b80a26
      https://github.com/bluez/bluez/commit/9e7e5d8f85335dc4db441453f247bd8c76b80a26
  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: 7c1a45bd46f6a6ce9b79e2fb007856cbf6693ac0
      https://github.com/bluez/bluez/commit/7c1a45bd46f6a6ce9b79e2fb007856cbf6693ac0
  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: 3c3f19c8600febbd944ccd573d75ec2217e79980
      https://github.com/bluez/bluez/commit/3c3f19c8600febbd944ccd573d75ec2217e79980
  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: c4190846065d580b2050ffba60d9f2190863bb08
      https://github.com/bluez/bluez/commit/c4190846065d580b2050ffba60d9f2190863bb08
  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: a7aa7f6c20bee2b75ab71a8678745ee73fa33d83
      https://github.com/bluez/bluez/commit/a7aa7f6c20bee2b75ab71a8678745ee73fa33d83
  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: 466bd25bdadc919caad5585e83ee086f5d3a7e1a
      https://github.com/bluez/bluez/commit/466bd25bdadc919caad5585e83ee086f5d3a7e1a
  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: a992b51df5e35a733a62b435319fbb04153d2beb
      https://github.com/bluez/bluez/commit/a992b51df5e35a733a62b435319fbb04153d2beb
  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/73788476d4a7%5E...a992b51df5e3

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

                 reply	other threads:[~2025-12-12 20:50 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bluez/bluez/push/refs/heads/1032751/000000-a992b5@github.com \
    --to=noreply@github.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).