public void Enumerable() { var source = manager.Create("Name", user, AudioSourceTests.GetTestSource().CodecSettings); var source2 = manager.Create("Name2", user, AudioSourceTests.GetTestSource().CodecSettings); Assert.Contains(source, handler.ToList()); Assert.Contains(source2, handler.ToList()); }
internal void RequestSourceMessage(MessageEventArgs <RequestSourceMessage> e) { var request = (RequestSourceMessage)e.Message; SourceResult result = SourceResult.FailedUnknown; IUserInfo requestingUser = context.Users[e.Connection]; if (requestingUser == null) { return; } if (!context.GetPermission(PermissionName.RequestSource, requestingUser)) { result = SourceResult.FailedPermissions; } if (String.IsNullOrEmpty(request.Name) || AudioCodecArgs.IsInvalidBitrate(request.AudioSettings.Bitrate) || AudioCodecArgs.IsInvalidComplexity(request.AudioSettings.Complexity) || AudioCodecArgs.IsInvalidFrequency(request.AudioSettings.SampleRate) || AudioCodecArgs.IsInvalidFrameSize(request.AudioSettings.SampleRate, request.AudioSettings.Channels, request.AudioSettings.FrameSize)) { result = SourceResult.FailedInvalidArguments; } AudioSource source = null; try { if (result == SourceResult.FailedUnknown) { int bitrate = context.Settings.DefaultAudioBitrate; if (request.AudioSettings.Bitrate != 0) { bitrate = request.AudioSettings.Bitrate.Trim(context.Settings.MinimumAudioBitrate, context.Settings.MaximumAudioBitrate); } if (manager.IsSourceNameTaken(requestingUser, request.Name)) { result = SourceResult.FailedDuplicateSourceName; } else { source = manager.Create(request.Name, requestingUser, new AudioCodecArgs(request.AudioSettings) { Bitrate = bitrate }); result = SourceResult.Succeeded; } } } catch (OverflowException) { result = SourceResult.FailedLimit; } finally { e.Connection.SendAsync(new SourceResultMessage(request.Name, result, source)); if (result == SourceResult.Succeeded) { foreach (IConnection connection in context.Connections) { if (connection == e.Connection) { continue; } connection.SendAsync(new SourceResultMessage(request.Name, SourceResult.NewSource, source)); } } } }