Archived
2
0

split remote to desktop and capture.

This commit is contained in:
Miroslav Šedivý
2022-09-12 22:12:47 +02:00
parent 0bca8c9d02
commit de4f6b45e5
26 changed files with 299 additions and 194 deletions

View File

@ -12,11 +12,11 @@ import (
"m1k1o/neko/internal/utils"
)
func New(remote types.RemoteManager) *SessionManager {
func New(capture types.CaptureManager) *SessionManager {
return &SessionManager{
logger: log.With().Str("module", "session").Logger(),
host: "",
remote: remote,
capture: capture,
members: make(map[string]*Session),
emmiter: events.New(),
}
@ -26,7 +26,7 @@ type SessionManager struct {
mu sync.Mutex
logger zerolog.Logger
host string
remote types.RemoteManager
capture types.CaptureManager
members map[string]*Session
emmiter events.EventEmmiter
// TODO: Handle locks in sessions as flags.
@ -45,8 +45,8 @@ func (manager *SessionManager) New(id string, admin bool, socket types.WebSocket
manager.mu.Lock()
manager.members[id] = session
if !manager.remote.Streaming() && len(manager.members) > 0 {
manager.remote.StartStream()
if !manager.capture.Streaming() && len(manager.members) > 0 {
manager.capture.StartStream()
}
manager.mu.Unlock()
@ -160,8 +160,8 @@ func (manager *SessionManager) Destroy(id string) {
err := session.destroy()
delete(manager.members, id)
if manager.remote.Streaming() && len(manager.members) <= 0 {
manager.remote.StopStream()
if manager.capture.Streaming() && len(manager.members) <= 0 {
manager.capture.StopStream()
}
manager.mu.Unlock()