public MusicInfoMaintainerController(ILogger <MusicInfoMaintainerController> logger, MusicDbContext musicDbContext, IndexMaintainer indexMaintainer, MusicConfiguration musicConfiguration) { Logger = logger; MusicDbContext = musicDbContext; IndexMaintainer = indexMaintainer; MusicConfiguration = musicConfiguration; }
public Broadcaster(IOptions <PlayerConfiguration> playerConfigOptions, IOptions <MusicConfiguration> musicConfigOptions, Messenger messenger, ILoggerFactory loggerFactory) : base(loggerFactory) { this.messenger = messenger; this.playConfig = playerConfigOptions.Value; this.musicConfig = musicConfigOptions.Value; webPlayerBroadcastInterval = musicConfig.WebPlayerBroadcastInterval; InitialiseQueue(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddVersionedApiExplorer( options => { options.GroupNameFormat = "'v'VVV"; options.SubstituteApiVersionInUrl = true; }); services.AddApiVersioning(o => { o.ReportApiVersions = true; o.AssumeDefaultVersionWhenUnspecified = true; o.DefaultApiVersion = new ApiVersion(1, 0); }); // Register the Swagger services services.AddSwaggerDocument(config => { config.Title = "Music Server API"; config.DocumentProcessors.Add(new SecurityDefinitionAppender( "basic", new OpenApiSecurityScheme { Type = OpenApiSecuritySchemeType.Basic, Name = "Authorization", In = OpenApiSecurityApiKeyLocation.Header })); config.OperationProcessors.Add(new OperationSecurityScopeProcessor("basic")); }); services.AddAuthentication("SimpleAuthentication").AddScheme <AuthenticationSchemeOptions, SimpleAuthenticationHandler>("SimpleAuthentication", null); services.AddControllersWithViews(); var musicConfiguration = new MusicConfiguration(); Configuration.GetSection("MusicConfiguration").Bind(musicConfiguration); services.AddSingleton(musicConfiguration); services.AddDbContextPool <MusicDbContext>(option => { option.UseMySql(Configuration.GetConnectionString("MusicConnection"), new MySqlServerVersion(new Version(musicConfiguration.SqlVersion))); }); services.AddSingleton <IndexMaintainer>(); var authentication = new AuthenticationInfo(); Configuration.Bind("AuthenticationInfo", authentication); services.AddSingleton(authentication); }
public Receiver(IOptions <MusicConfiguration> musicConfigOptions, DeviceManagerFactory dmf, Messenger messenger, ILoggerFactory loggerFactory) : base(loggerFactory) { this.musicConfig = musicConfigOptions.Value; this.dmf = dmf; this.messenger = messenger; serverInformation = new MusicServerInformation(); machineName = Environment.MachineName.ToLower(); var list = NetInfo.GetMatchingIPV4Addresses(musicConfig.LocalCIDR); currentIpAddress = list.First().ToString(); }
public IndexMaintainer(MusicConfiguration musicConfiguration, IServiceScopeFactory serviceScopeFactory, ILogger <IndexMaintainer> logger) { this.musicConfiguration = musicConfiguration; this.serviceScopeFactory = serviceScopeFactory; this.logger = logger; }
public override void OnInspectorGUI() { base.OnInspectorGUI(); Initialize(); AudioManager myTarget = (AudioManager)target; /* * if (GUILayout.Button("Grab from Fabric")) * { * myTarget.ClearConfiguration(); * var components = myTarget.transform.GetComponentsInChildren<Fabric.AudioComponent>(true); * foreach (var audioComponent in components) * { * var listener = audioComponent.GetComponent<Fabric.EventListener>(); * * if (listener != null) * { * bool found = false; * Sfx sfx = 0; * foreach (var s in Enum.GetValues(typeof(Sfx))) * { * if (AudioConfig.GetSfxEventName((Sfx)s) == listener._eventName) * { * sfx = (Sfx)s; * found = true; * break; * } * } * * if (found) * { * SfxConfiguration conf = myTarget.GetSfxConfiguration(sfx); * * if (conf == null) * conf = new SfxConfiguration(); * * conf.sfx = sfx; * myTarget.UpdateSfxConfiguration(conf); * * conf.volume = audioComponent.Volume; * conf.randomPitchOffset = audioComponent.PitchRandomization; * * var random = audioComponent as Fabric.RandomAudioClipComponent; * * if (random != null) * { * foreach (var c in random._audioClips) * conf.clips.Add(c); * } * else * conf.clips.Add(audioComponent.AudioClip); * } * } * } * * var rndcomponents = myTarget.transform.GetComponentsInChildren<Fabric.RandomComponent>(true); * foreach (var randomComponent in rndcomponents) * { * var listener = randomComponent.GetComponent<Fabric.EventListener>(); * * if (listener != null) * { * bool found = false; * Sfx sfx = 0; * foreach (var s in Enum.GetValues(typeof(Sfx))) * { * if (AudioConfig.GetSfxEventName((Sfx)s) == listener._eventName) * { * sfx = (Sfx)s; * found = true; * break; * } * } * * if (found) * { * SfxConfiguration conf = myTarget.GetSfxConfiguration(sfx); * * if (conf == null) * conf = new SfxConfiguration(); * conf.sfx = sfx; * conf.volume = randomComponent.Volume; * conf.randomPitchOffset = randomComponent.PitchRandomization; * * var childs = randomComponent.GetChildComponents(); * * if (childs != null) * foreach (var child in childs) * { * var random = child as Fabric.RandomAudioClipComponent; * * if (random != null) * { * foreach (var c in random._audioClips) * conf.clips.Add(c); * } * else * { * var c = child as Fabric.AudioComponent; * if (c != null) * conf.clips.Add(c.AudioClip); * } * } * } * } * } * } * */ EditorGUILayout.LabelField("-- Sound effects --", titlesStyle); EditorGUILayout.Separator(); foreach (var sfx in Enum.GetValues(typeof(Sfx))) { SfxConfiguration conf = myTarget.GetSfxConfiguration((Sfx)sfx); if (conf == null) { conf = new SfxConfiguration(); conf.sfx = (Sfx)sfx; conf.volume = 1; myTarget.UpdateSfxConfiguration(conf); } List <AudioClip> clips = conf.clips; int count = clips != null ? clips.Count : 0; int nonNullCount = -1; for (int i = 0; i < count; ++i) { var clip = clips[i]; if (clip != null) { ++nonNullCount; } } // Shrink if (count != nonNullCount) { var newClips = new List <AudioClip>(); for (int i = 0; i < count; ++i) { var clip = clips[i]; if (clip != null) { newClips.Add(clips[i]); } } clips = newClips; } bool hasClips = clips.Count > 0; EditorGUILayout.LabelField("Sfx." + sfx.ToString(), hasClips ? subtitleStyle : subtitleBadStyle); for (int i = 0; i < clips.Count; ++i) { EditorGUILayout.BeginHorizontal(); clips[i] = (AudioClip)EditorGUILayout.ObjectField(clips[i], typeof(AudioClip), false); if (GUILayout.Button("Play", GUILayout.Width(40))) { AudioUtils.PlayClip(clips[i]); } if (GUILayout.Button("Stop", GUILayout.Width(40))) { AudioUtils.StopAllClips(); } var prevColor = GUI.color; GUI.color = Color.red; if (GUILayout.Button("Remove", GUILayout.Width(60))) { clips[i] = null; } GUI.color = prevColor; EditorGUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(); if (clips.Count > 0) { EditorGUILayout.LabelField("Add Random Choice:", hasClips ? goodStyle : badStyle); } var newClip = (AudioClip)EditorGUILayout.ObjectField(null, typeof(AudioClip), false); EditorGUILayout.EndHorizontal(); if (newClip != null) { clips.Add(newClip); } conf.clips = clips; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Volume:", hasClips ? goodStyle : badStyle); conf.volume = EditorGUILayout.Slider(conf.volume, 0, 1); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Random Pitch Offset (+/-):", hasClips ? goodStyle : badStyle); conf.randomPitchOffset = EditorGUILayout.Slider(conf.randomPitchOffset, 0, 10); EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); } EditorGUILayout.LabelField("-- Music --", titlesStyle); EditorGUILayout.Separator(); foreach (var music in Enum.GetValues(typeof(Music))) { if ((Music)music == Music.DontChange || (Music)music == Music.Silence || (Music)music == Music.Custom) { continue; } MusicConfiguration conf = myTarget.GetMusicConfiguration((Music)music); if (conf == null) { conf = new MusicConfiguration(); conf.music = (Music)music; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Music." + music.ToString(), conf.clip ? goodStyle : badStyle); conf.clip = (AudioClip)EditorGUILayout.ObjectField(conf.clip, typeof(AudioClip), false); EditorGUILayout.EndHorizontal(); myTarget.UpdateMusicConfiguration(conf); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime lifeTime, IndexMaintainer maintainer, MusicConfiguration musicConfiguration, ILogger <Startup> logger) { Logger = logger; if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); // Register the Swagger generator and the Swagger UI middlewares app.UseOpenApi(); app.UseSwaggerUi3(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); // on exit // lifeTime.ApplicationStopping.Register(OnShutdown); AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit; Maintainer = maintainer; if (!Maintainer.IndexExist()) { Task.Run(async() => { await Maintainer.InitIndex(CancellationTokenSource.Token); }); } Task.Run(async() => { while (!CancellationTokenSource.Token.IsCancellationRequested) { Logger.LogInformation("Auto SaveResults start, will run after {AutoSaveIndexSeconds} seconds", musicConfiguration.AutoSaveIndexSeconds); await Task.Delay(musicConfiguration.AutoSaveIndexSeconds * 1000, CancellationTokenSource.Token); Logger.LogInformation("Auto SaveResults start"); await Maintainer.SaveResults(CancellationTokenSource.Token); Logger.LogInformation("Auto SaveResults finished"); } }, CancellationTokenSource.Token); }
public HomeController(ILogger <HomeController> logger, IOptions <MusicConfiguration> config) { this.log = logger; this.config = config.Value; }
public MusicController(MusicConfiguration musicConfiguration, ILogger <MusicController> logger) { this.musicConfiguration = musicConfiguration; this.logger = logger; }