Commit Graph

5 Commits

Author SHA1 Message Date
abdussamedulutas 3bba5af340 Studio: ID kartı, modal, oda oluşturma, Ana butonu kaldırıldı
Araç çubuğu:
  - Socket ID → kopyalanabilir kart (tıkla → clipboard, yeşil flash)
  - "Ana" butonu kaldırıldı (kafakarıştırıcıydı, Miller kolon kendisi navigasyon sağlıyor)
  - Durum mesajı sağda kaldı

Modal sistemi (_showModal):
  - Başlık + label'lı input alanları + İptal/Tamam butonları
  - Arka plana tıkla veya ✕ ile kapat
  - Enter → onayla, Esc → kapat
  - İlk alana otomatik focus

Eşler kolonu:
  - "ID ile ara" → prompt() yerine modal
  - Alan: Socket ID, placeholder: 'xxxxxxxx-xxxx-…'

Odalar kolonu:
  - "Oda Oluştur" (primary buton) → modal
  - Alanlar: oda adı + opsiyonel şifre
  - Oluşturunca oda kolonunu yeniler

style.css:
  - .mwse-id-card + __label/__value/__copy + --copied
  - .mwse-modal-overlay / .mwse-modal / __header/__body/__field/__footer/__input/__close

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 13:31:09 +03:00
abdussamedulutas 66158b1f74 Studio bağlantı fix + tam WebRTC/cihaz yönetimi
sdk/index.js — bağlantı hatası düzeltildi:
  - new MWSE() options=undefined → TypeError patlaması
  - constructor(options) → opts = { endpoint:'auto', ...options }
  - Artık new MWSE() / new MWSE('ws://host') / new MWSE({…}) hepsi çalışıyor

public/studio/Studio.js — tamamen yeniden yazıldı:
  Eşler kolonu:
    - mwse.pairs'ten gerçek eşleri gösteriyor
    - Her eş için: Video+Ses / Sesli Ara / Ekran Paylaş / Kamera Seç /
      Mikrofon Seç / Dosya Gönder / Aktif Akışlar / Eşleşmeyi Bitir
    - "ID ile ara" → prompt ile direkt peer ID girerek requestPair()
  Odalar kolonu: mwse.rooms'tan oda + üye listesi
  Cihazlar kolonu:
    - MediaSources.devices() ile kamera ve mikrofon listesi
    - Her cihaza tıkla → seçili eşe akış başlat veya önizle (floating video)
    - İzin İste butonu → izin alındıktan sonra listeyi yenile
  Akışlar kolonu: peer.rtc._streams.list() canlı gösterimi
  Kalite kolonu: Yüksek/Orta/Düşük preset + mute/stop
  Araç çubuğu: socket ID, durum mesajı, Ana butonu (popTo(0))
  Gelen track'ler: audio otomatik çalınır, status bar bildirir
  Cihaz önizleme: floating video element (✕ ile kapatılır)

public/studio/app.js: studio.mount() await ile çağrılıyor

go test -race ./... — yeşil

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 13:22:03 +03:00
abdussamedulutas 764644176c Studio ürünü sdk/'dan public/studio/'a taşındı + /studio route
sdk/studio/ → public/studio/:
  - index.js      → Studio.js (import yolları güncellendi:
                     ../webrtc/ → /sdk/webrtc/, ./ColumnView → /studio/ColumnView)
  - ColumnView.js → /studio/ altında (import: ./Column → /studio/Column)
  - Column.js, style.css → taşındı, değişmedi

public/studio/index.html — tam ürün HTML'i:
  - Loading overlay (spinner, hata durumu)
  - <script type="module" src="/studio/app.js">

public/studio/app.js — uygulama başlangıcı:
  - MWSE /sdk/index.js'den import
  - Studio /studio/Studio.js'den import
  - scope/close/error olaylarına göre loading overlay yönetimi

httpserver.go:
  - /studio     → public/studio/index.html
  - /studio/    → http.FileServer(public/studio/) — JS/CSS asset'leri

localhost:PORT/studio → Studio açılıyor
go test -race ./... — tüm testler yeşil

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 13:13:56 +03:00
abdussamedulutas c623016841 Revision 2026-04-23 23:10:05 +03:00
abdussamedulutas 33b57d7e67 WebDevice suite 2025-10-17 09:37:09 +03:00