diff --git a/mobile/mobile.go b/mobile/mobile.go index f37750c..d4aa958 100644 --- a/mobile/mobile.go +++ b/mobile/mobile.go @@ -47,6 +47,7 @@ const ( dataTransport = "datachannel" defaultDNSServer = "1.1.1.1:53" carrierWBStream = "wbstream" + carrierJazz = "jazz" ) //nolint:gochecknoglobals // Mobile bindings expose a singleton runtime controlled by the embedding app. @@ -124,8 +125,8 @@ func SetVP8Options(fps, batchSize int) { mu.Lock() defer mu.Unlock() ensureDefaultConfigLocked() - defaults.vp8FPS = clamp(fps, 1, 120) - defaults.vp8BatchSize = clamp(batchSize, 1, 64) + defaults.vp8FPS = clamp(fps, 120) + defaults.vp8BatchSize = clamp(batchSize, 64) } // SetDebug enables or disables verbose logging. @@ -182,16 +183,8 @@ func Check( registerDefaults() carrierName = normalizeCarrier(carrierName) transportName = normalizeTransport(transportName) - - switch { - case carrierName == "": - return 0, errCarrierRequired - case roomID == "" && carrierName != "jazz": - return 0, errRoomIDRequired - case clientID == "": - return 0, errClientIDRequired - case keyHex == "": - return 0, errKeyHexRequired + if err := validateStartArgs(carrierName, roomID, clientID, keyHex); err != nil { + return 0, err } if timeoutMillis <= 0 { @@ -234,8 +227,8 @@ func Check( "", 0, 0, - clamp(vp8FPS, 1, 120), - clamp(vp8BatchSize, 1, 64), + clamp(vp8FPS, 120), + clamp(vp8BatchSize, 64), ) }() @@ -275,17 +268,11 @@ func startWithConfig( cfg.transport = normalizeTransport(transportName) } - switch { - case cancel != nil: + if cancel != nil { return errAlreadyRunning - case carrierName == "": - return errCarrierRequired - case roomID == "" && carrierName != "jazz": - return errRoomIDRequired - case clientID == "": - return errClientIDRequired - case keyHex == "": - return errKeyHexRequired + } + if err := validateStartArgs(carrierName, roomID, clientID, keyHex); err != nil { + return err } roomURL := buildRoomURL(carrierName, roomID) @@ -461,11 +448,26 @@ func normalizeCarrier(carrierName string) string { return carrierName } +func validateStartArgs(carrierName, roomID, clientID, keyHex string) error { + switch { + case carrierName == "": + return errCarrierRequired + case roomID == "" && carrierName != carrierJazz: + return errRoomIDRequired + case clientID == "": + return errClientIDRequired + case keyHex == "": + return errKeyHexRequired + default: + return nil + } +} + func buildRoomURL(carrierName, roomID string) string { switch carrierName { case "telemost": return "https://telemost.yandex.ru/j/" + roomID - case "jazz": + case carrierJazz: if roomID == "" { return "any" } @@ -477,9 +479,9 @@ func buildRoomURL(carrierName, roomID string) string { } } -func clamp(value, minValue, maxValue int) int { - if value < minValue { - return minValue +func clamp(value, maxValue int) int { + if value < 1 { + return 1 } if value > maxValue { return maxValue