Commit Graph

3 Commits

Author SHA1 Message Date
zarazaex69
f287dc117a feat: expose CreateRoom in pkg/olcrtc public API
Add olcrtc.CreateRoom(ctx, authName) that delegates to the auth
provider's RoomCreator interface. Returns ErrRoomCreationUnsupported
for providers that don't support room creation (e.g. telemost).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 13:58:51 +03:00
zarazaex69
5078798204 feat: implement net.Conn via io.Pipe in pkg/olcrtc
Add conn.go wrapping Session as net.Conn: Read from pipe fed by OnData,
Write calls engine.Send, Close drains pipe and tears down session.
Add Session.Dial(ctx) as single-call connect-and-wrap entry point.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 13:55:49 +03:00
zarazaex69
0d9de3588d feat: add pkg/olcrtc — public library API
Exposes olcrtc as an embeddable Go library via pkg/olcrtc.Session.

Two usage modes:
  - Direct engine: caller supplies Engine+URL+Token, no HTTP auth flow.
  - Built-in auth: caller supplies Auth+RoomID; the registered auth
    provider (telemost, jazz, wbstream) resolves credentials internally.

Public surface:
  New(ctx, Config) (*Session, error)
  Session.Connect / Send / Close / WatchConnection
  Session.CanSend / SetEndedCallback / SetShouldReconnect
  RegisterDefaults() — pulls in all built-in engines + auth providers.

Also add !pkg/ exception to .gitignore (bare "olcrtc" pattern was
shadowing the new directory).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 13:49:19 +03:00