Skip to content

Added connection support for both omi + omi glasses#4843

Open
MithilSaiReddy wants to merge 4 commits intoBasedHardware:mainfrom
MithilSaiReddy:main
Open

Added connection support for both omi + omi glasses#4843
MithilSaiReddy wants to merge 4 commits intoBasedHardware:mainfrom
MithilSaiReddy:main

Conversation

@MithilSaiReddy
Copy link

@MithilSaiReddy MithilSaiReddy commented Feb 17, 2026

@aaravgarg @beastoin check this

Multi-device support (Omi + OmiGlass)

description
Enable simultaneous connection of Omi (audio) and OmiGlass (camera) so both streams feed a single multimodal conversation.

What this delivers

  • Connect audio + camera devices at the same time (no more silent disconnects).
  • Audio transcripts and image frames stream concurrently to the same conversation.
  • Pause/resume affects audio only; camera capture continues.
  • Backend now receives multimodal source when both devices are active.
  • Backwards compatible when only one device is connected.

Key implementation

  • Replaced single device connection with typed device map in devices.dart.
  • Split recording state into _audioDevice and _glassDevice in capture_provider.dart.
  • Separated audio and photo streaming pipelines.
  • Fixed bugs from prior partial migration (null access, incorrect disconnect calls).

Impact
Unlocks real multimodal capture using existing WebSocket + conversation structure with minimal architectural change.

Files

  • lib/services/devices/devices.dart
  • lib/providers/capture_provider.dart

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request successfully refactors the application to support simultaneous connections for an audio device (Omi) and a camera device (OmiGlass), which is a great step towards multimodal conversations. The changes in CaptureProvider correctly separate the logic for audio and photo streaming. However, the core DeviceService has critical issues in the implementation of multi-device support. The _connectToDevice and ensureConnection methods contain incorrect logic, typos, and duplicated code that will cause compilation and runtime errors. I have provided detailed comments and suggestions to address these critical problems.

@MithilSaiReddy
Copy link
Author

@aaravgarg @mdmohsin7 can u guys check this pr ?

@beastoin
Copy link
Collaborator

Hey 👋 — thanks for putting this together! Before we can review, could you share a quick live demo (screenshot, screen recording, or terminal output) showing this working on your local or dev environment?

In the AI era, writing code is the easy part — what really makes a PR stand out is proof that it works end-to-end. A short video or even a screenshot goes a long way in helping reviewers feel confident about merging.

Feel free to update this PR whenever you have something to show. Thanks! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants