// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
using System.Collections.Generic;
using FlaxEditor.CustomEditors.Editors;
using FlaxEditor.Scripting;
using FlaxEngine;
using FlaxEngine.Tools;
namespace FlaxEngine.Tools
{
partial class AudioTool
{
partial struct Options
{
private bool ShowBtiDepth => Format != AudioFormat.Vorbis;
}
}
}
namespace FlaxEditor.CustomEditors.Dedicated
{
///
/// Custom editor for .
///
[CustomEditor(typeof(FlaxEngine.Tools.AudioTool.Options)), DefaultEditor]
public class AudioToolOptionsEditor : GenericEditor
{
///
protected override List GetItemsForType(ScriptType type)
{
// Show both fields and properties
return GetItemsForType(type, true, true);
}
}
}
namespace FlaxEditor.Content.Import
{
///
/// Proxy object to present audio import settings in .
///
[HideInEditor]
public class AudioImportSettings
{
///
/// The settings data.
///
[EditorDisplay(null, EditorDisplayAttribute.InlineStyle)]
public AudioTool.Options Settings = AudioTool.Options.Default;
}
///
/// Audio asset import entry.
///
///
public partial class AudioImportEntry : AssetImportEntry
{
private AudioImportSettings _settings = new();
///
/// Initializes a new instance of the class.
///
/// The import request.
public AudioImportEntry(ref Request request)
: base(ref request)
{
// Try to restore target asset Audio import options (useful for fast reimport)
Editor.TryRestoreImportOptions(ref _settings.Settings, ResultUrl);
}
///
public override object Settings => _settings;
///
public override bool TryOverrideSettings(object settings)
{
if (settings is AudioImportSettings s)
{
_settings.Settings = s.Settings;
return true;
}
if (settings is AudioTool.Options o)
{
_settings.Settings = o;
return true;
}
return false;
}
///
public override bool Import()
{
return Editor.Import(SourceUrl, ResultUrl, _settings.Settings);
}
}
}