2011-10-24 11:38:10 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
|
2013-06-05 03:02:43 -04:00
|
|
|
|
namespace CUETools.Codecs
|
2011-10-24 11:38:10 +00:00
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
public class CUEToolsUDCEncoderList : BindingList<AudioEncoderSettingsViewModel>
|
2011-10-24 11:38:10 +00:00
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
public CUEToolsUDCEncoderList()
|
|
|
|
|
|
: base()
|
|
|
|
|
|
{
|
|
|
|
|
|
AddingNew += OnAddingNew;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnAddingNew(object sender, AddingNewEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
e.NewObject = new AudioEncoderSettingsViewModel("new", "wav", true, "", "", "", "");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool TryGetValue(string extension, bool lossless, string name, out AudioEncoderSettingsViewModel result)
|
|
|
|
|
|
{
|
|
|
|
|
|
//result = this.Where(udc => udc.settings.Extension == extension && udc.settings.Lossless == lossless && udc.settings.Name == name).First();
|
|
|
|
|
|
foreach (AudioEncoderSettingsViewModel udc in this)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (udc.settings.Extension == extension && udc.settings.Lossless == lossless && udc.settings.Name == name)
|
|
|
|
|
|
{
|
|
|
|
|
|
result = udc;
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
result = null;
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2013-04-09 20:51:13 -04:00
|
|
|
|
|
2018-03-23 19:26:26 -04:00
|
|
|
|
public AudioEncoderSettingsViewModel GetDefault(string extension, bool lossless)
|
|
|
|
|
|
{
|
|
|
|
|
|
AudioEncoderSettingsViewModel result = null;
|
|
|
|
|
|
foreach (AudioEncoderSettingsViewModel udc in this)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (udc.settings.Extension == extension && udc.settings.Lossless == lossless && (result == null || result.settings.Priority < udc.settings.Priority))
|
|
|
|
|
|
{
|
|
|
|
|
|
result = udc;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class CUEToolsUDCDecoderList : BindingList<AudioDecoderSettingsViewModel>
|
|
|
|
|
|
{
|
|
|
|
|
|
public CUEToolsUDCDecoderList()
|
2011-10-24 11:38:10 +00:00
|
|
|
|
: base()
|
|
|
|
|
|
{
|
|
|
|
|
|
AddingNew += OnAddingNew;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OnAddingNew(object sender, AddingNewEventArgs e)
|
|
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
e.NewObject = new AudioDecoderSettingsViewModel(new CommandLineDecoderSettings("new", "wav", "", ""));
|
2011-10-24 11:38:10 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2018-03-23 19:26:26 -04:00
|
|
|
|
public bool TryGetValue(string extension, bool lossless, string name, out AudioDecoderSettingsViewModel result)
|
2011-10-24 11:38:10 +00:00
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
foreach (AudioDecoderSettingsViewModel udc in this)
|
2011-10-24 11:38:10 +00:00
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
if (udc.decoderSettings.Extension == extension && udc.decoderSettings.Lossless == lossless && udc.decoderSettings.Name == name)
|
2011-10-24 11:38:10 +00:00
|
|
|
|
{
|
|
|
|
|
|
result = udc;
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
result = null;
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2018-03-23 19:26:26 -04:00
|
|
|
|
public AudioDecoderSettingsViewModel GetDefault(string extension, bool lossless)
|
2011-10-24 11:38:10 +00:00
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
AudioDecoderSettingsViewModel result = null;
|
|
|
|
|
|
foreach (AudioDecoderSettingsViewModel udc in this)
|
2011-10-24 11:38:10 +00:00
|
|
|
|
{
|
2018-03-23 19:26:26 -04:00
|
|
|
|
if (udc.decoderSettings.Extension == extension && udc.decoderSettings.Lossless == lossless && (result == null || result.decoderSettings.Priority < udc.decoderSettings.Priority))
|
2011-10-24 11:38:10 +00:00
|
|
|
|
{
|
|
|
|
|
|
result = udc;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|