using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Collections.ObjectModel; namespace BuzzGUI.Interfaces { public enum MachineDialog { Parameters, Attributes, SignalAnalysis, Rename, Delay, Patterns }; public interface IMachine : INotifyPropertyChanged { IMachineGraph Graph { get; } IMachineDLL DLL { get; } ReadOnlyCollection Inputs { get; } ReadOnlyCollection Outputs { get; } int InputChannelCount { get; } int OutputChannelCount { get; } string Name { get; set; } Tuple Position { get; } int OversampleFactor { get; set; } int MIDIInputChannel { get; set; } ReadOnlyCollection ParameterGroups { get; } ReadOnlyCollection Attributes { get; } IMenuItem Commands { get; } ReadOnlyCollection EnvelopeNames { get; } ReadOnlyCollection Patterns { get; } bool IsControlMachine { get; } bool IsActive { get; } bool IsMuted { get; set; } bool IsSoloed { get; set; } int LastEngineThread { get; } IMachineDLL PatternEditorDLL { get; } void SelectPreset(string name); void ShowPresetEditor(); void CopyParameters(); void ShowHelp(); void UnbindAllMIDIControllers(); void ShowContextMenu(int x, int y); void DoubleClick(); void ShowDialog(MachineDialog d, int x, int y); void ExecuteCommand(int id); string GetChannelName(bool input, int index); byte[] SendGUIMessage(byte[] message); } }