mirror of https://github.com/jetkvm/kvm.git
Fix: goimports
This commit is contained in:
parent
520c218598
commit
638d08cdc5
|
@ -15,9 +15,9 @@ import (
|
||||||
type AudioEventType string
|
type AudioEventType string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
AudioEventMuteChanged AudioEventType = "audio-mute-changed"
|
AudioEventMuteChanged AudioEventType = "audio-mute-changed"
|
||||||
AudioEventMetricsUpdate AudioEventType = "audio-metrics-update"
|
AudioEventMetricsUpdate AudioEventType = "audio-metrics-update"
|
||||||
AudioEventMicrophoneState AudioEventType = "microphone-state-changed"
|
AudioEventMicrophoneState AudioEventType = "microphone-state-changed"
|
||||||
AudioEventMicrophoneMetrics AudioEventType = "microphone-metrics-update"
|
AudioEventMicrophoneMetrics AudioEventType = "microphone-metrics-update"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ func InitializeAudioEventBroadcaster() {
|
||||||
subscribers: make(map[string]*AudioEventSubscriber),
|
subscribers: make(map[string]*AudioEventSubscriber),
|
||||||
logger: &l,
|
logger: &l,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start metrics broadcasting goroutine
|
// Start metrics broadcasting goroutine
|
||||||
go audioEventBroadcaster.startMetricsBroadcasting()
|
go audioEventBroadcaster.startMetricsBroadcasting()
|
||||||
})
|
})
|
||||||
|
@ -99,7 +99,7 @@ func GetAudioEventBroadcaster() *AudioEventBroadcaster {
|
||||||
subscribers: make(map[string]*AudioEventSubscriber),
|
subscribers: make(map[string]*AudioEventSubscriber),
|
||||||
logger: &l,
|
logger: &l,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start metrics broadcasting goroutine
|
// Start metrics broadcasting goroutine
|
||||||
go audioEventBroadcaster.startMetricsBroadcasting()
|
go audioEventBroadcaster.startMetricsBroadcasting()
|
||||||
})
|
})
|
||||||
|
@ -110,15 +110,15 @@ func GetAudioEventBroadcaster() *AudioEventBroadcaster {
|
||||||
func (aeb *AudioEventBroadcaster) Subscribe(connectionID string, conn *websocket.Conn, ctx context.Context, logger *zerolog.Logger) {
|
func (aeb *AudioEventBroadcaster) Subscribe(connectionID string, conn *websocket.Conn, ctx context.Context, logger *zerolog.Logger) {
|
||||||
aeb.mutex.Lock()
|
aeb.mutex.Lock()
|
||||||
defer aeb.mutex.Unlock()
|
defer aeb.mutex.Unlock()
|
||||||
|
|
||||||
aeb.subscribers[connectionID] = &AudioEventSubscriber{
|
aeb.subscribers[connectionID] = &AudioEventSubscriber{
|
||||||
conn: conn,
|
conn: conn,
|
||||||
ctx: ctx,
|
ctx: ctx,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
}
|
}
|
||||||
|
|
||||||
aeb.logger.Info().Str("connectionID", connectionID).Msg("audio events subscription added")
|
aeb.logger.Info().Str("connectionID", connectionID).Msg("audio events subscription added")
|
||||||
|
|
||||||
// Send initial state to new subscriber
|
// Send initial state to new subscriber
|
||||||
go aeb.sendInitialState(connectionID)
|
go aeb.sendInitialState(connectionID)
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ func (aeb *AudioEventBroadcaster) Subscribe(connectionID string, conn *websocket
|
||||||
func (aeb *AudioEventBroadcaster) Unsubscribe(connectionID string) {
|
func (aeb *AudioEventBroadcaster) Unsubscribe(connectionID string) {
|
||||||
aeb.mutex.Lock()
|
aeb.mutex.Lock()
|
||||||
defer aeb.mutex.Unlock()
|
defer aeb.mutex.Unlock()
|
||||||
|
|
||||||
delete(aeb.subscribers, connectionID)
|
delete(aeb.subscribers, connectionID)
|
||||||
aeb.logger.Info().Str("connectionID", connectionID).Msg("audio events subscription removed")
|
aeb.logger.Info().Str("connectionID", connectionID).Msg("audio events subscription removed")
|
||||||
}
|
}
|
||||||
|
@ -158,25 +158,25 @@ func (aeb *AudioEventBroadcaster) sendInitialState(connectionID string) {
|
||||||
aeb.mutex.RLock()
|
aeb.mutex.RLock()
|
||||||
subscriber, exists := aeb.subscribers[connectionID]
|
subscriber, exists := aeb.subscribers[connectionID]
|
||||||
aeb.mutex.RUnlock()
|
aeb.mutex.RUnlock()
|
||||||
|
|
||||||
if !exists {
|
if !exists {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send current audio mute state
|
// Send current audio mute state
|
||||||
muteEvent := AudioEvent{
|
muteEvent := AudioEvent{
|
||||||
Type: AudioEventMuteChanged,
|
Type: AudioEventMuteChanged,
|
||||||
Data: AudioMuteData{Muted: audio.IsAudioMuted()},
|
Data: AudioMuteData{Muted: audio.IsAudioMuted()},
|
||||||
}
|
}
|
||||||
aeb.sendToSubscriber(subscriber, muteEvent)
|
aeb.sendToSubscriber(subscriber, muteEvent)
|
||||||
|
|
||||||
// Send current microphone state
|
// Send current microphone state
|
||||||
sessionActive := currentSession != nil
|
sessionActive := currentSession != nil
|
||||||
var running bool
|
var running bool
|
||||||
if sessionActive && currentSession.AudioInputManager != nil {
|
if sessionActive && currentSession.AudioInputManager != nil {
|
||||||
running = currentSession.AudioInputManager.IsRunning()
|
running = currentSession.AudioInputManager.IsRunning()
|
||||||
}
|
}
|
||||||
|
|
||||||
micStateEvent := AudioEvent{
|
micStateEvent := AudioEvent{
|
||||||
Type: AudioEventMicrophoneState,
|
Type: AudioEventMicrophoneState,
|
||||||
Data: MicrophoneStateData{
|
Data: MicrophoneStateData{
|
||||||
|
@ -185,7 +185,7 @@ func (aeb *AudioEventBroadcaster) sendInitialState(connectionID string) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
aeb.sendToSubscriber(subscriber, micStateEvent)
|
aeb.sendToSubscriber(subscriber, micStateEvent)
|
||||||
|
|
||||||
// Send current metrics
|
// Send current metrics
|
||||||
aeb.sendCurrentMetrics(subscriber)
|
aeb.sendCurrentMetrics(subscriber)
|
||||||
}
|
}
|
||||||
|
@ -206,7 +206,7 @@ func (aeb *AudioEventBroadcaster) sendCurrentMetrics(subscriber *AudioEventSubsc
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
aeb.sendToSubscriber(subscriber, audioMetricsEvent)
|
aeb.sendToSubscriber(subscriber, audioMetricsEvent)
|
||||||
|
|
||||||
// Send microphone metrics
|
// Send microphone metrics
|
||||||
if currentSession != nil && currentSession.AudioInputManager != nil {
|
if currentSession != nil && currentSession.AudioInputManager != nil {
|
||||||
micMetrics := currentSession.AudioInputManager.GetMetrics()
|
micMetrics := currentSession.AudioInputManager.GetMetrics()
|
||||||
|
@ -229,17 +229,17 @@ func (aeb *AudioEventBroadcaster) sendCurrentMetrics(subscriber *AudioEventSubsc
|
||||||
func (aeb *AudioEventBroadcaster) startMetricsBroadcasting() {
|
func (aeb *AudioEventBroadcaster) startMetricsBroadcasting() {
|
||||||
ticker := time.NewTicker(2 * time.Second) // Same interval as current polling
|
ticker := time.NewTicker(2 * time.Second) // Same interval as current polling
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
|
|
||||||
for range ticker.C {
|
for range ticker.C {
|
||||||
aeb.mutex.RLock()
|
aeb.mutex.RLock()
|
||||||
subscriberCount := len(aeb.subscribers)
|
subscriberCount := len(aeb.subscribers)
|
||||||
aeb.mutex.RUnlock()
|
aeb.mutex.RUnlock()
|
||||||
|
|
||||||
// Only broadcast if there are subscribers
|
// Only broadcast if there are subscribers
|
||||||
if subscriberCount == 0 {
|
if subscriberCount == 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// Broadcast audio metrics
|
// Broadcast audio metrics
|
||||||
audioMetrics := audio.GetAudioMetrics()
|
audioMetrics := audio.GetAudioMetrics()
|
||||||
audioMetricsEvent := AudioEvent{
|
audioMetricsEvent := AudioEvent{
|
||||||
|
@ -254,7 +254,7 @@ func (aeb *AudioEventBroadcaster) startMetricsBroadcasting() {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
aeb.broadcast(audioMetricsEvent)
|
aeb.broadcast(audioMetricsEvent)
|
||||||
|
|
||||||
// Broadcast microphone metrics if available
|
// Broadcast microphone metrics if available
|
||||||
if currentSession != nil && currentSession.AudioInputManager != nil {
|
if currentSession != nil && currentSession.AudioInputManager != nil {
|
||||||
micMetrics := currentSession.AudioInputManager.GetMetrics()
|
micMetrics := currentSession.AudioInputManager.GetMetrics()
|
||||||
|
@ -278,7 +278,7 @@ func (aeb *AudioEventBroadcaster) startMetricsBroadcasting() {
|
||||||
func (aeb *AudioEventBroadcaster) broadcast(event AudioEvent) {
|
func (aeb *AudioEventBroadcaster) broadcast(event AudioEvent) {
|
||||||
aeb.mutex.RLock()
|
aeb.mutex.RLock()
|
||||||
defer aeb.mutex.RUnlock()
|
defer aeb.mutex.RUnlock()
|
||||||
|
|
||||||
for connectionID, subscriber := range aeb.subscribers {
|
for connectionID, subscriber := range aeb.subscribers {
|
||||||
go func(id string, sub *AudioEventSubscriber) {
|
go func(id string, sub *AudioEventSubscriber) {
|
||||||
if !aeb.sendToSubscriber(sub, event) {
|
if !aeb.sendToSubscriber(sub, event) {
|
||||||
|
@ -296,12 +296,12 @@ func (aeb *AudioEventBroadcaster) broadcast(event AudioEvent) {
|
||||||
func (aeb *AudioEventBroadcaster) sendToSubscriber(subscriber *AudioEventSubscriber, event AudioEvent) bool {
|
func (aeb *AudioEventBroadcaster) sendToSubscriber(subscriber *AudioEventSubscriber, event AudioEvent) bool {
|
||||||
ctx, cancel := context.WithTimeout(subscriber.ctx, 5*time.Second)
|
ctx, cancel := context.WithTimeout(subscriber.ctx, 5*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
err := wsjson.Write(ctx, subscriber.conn, event)
|
err := wsjson.Write(ctx, subscriber.conn, event)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
subscriber.logger.Warn().Err(err).Msg("failed to send audio event to subscriber")
|
subscriber.logger.Warn().Err(err).Msg("failed to send audio event to subscriber")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue