/// <summary> /// Creates and initializes a new <see cref="IntegraModel{TModel}"/> instance.<br/> /// </summary> /// <param name="device">The device to connect the model.</param> /// <remarks><i> /// - All derived classes require an <see cref="IntegraAttribute"/>.<br/> /// - Sets the address, request and size from the <see cref="IntegraAttribute"/>.<br/> /// - Collections are responsible for there own requests.<br/> /// - Initializes the name with the type name.<br/> /// - Connects the model to the device.<br/> /// - Caches the model's <see cref="OffsetAttribute"/> decorated fields and properties.<br/> /// </i></remarks> internal IntegraModel(Integra device, bool connect = true) : base(device, connect) { if (!IsCached) { IsCached = this.Cache(); } }
public Home() { Snacks = Integra.GetLisSnacks(); Product = Integra.GetLisProducts(); RequestsSolicitation = Integra.GetLisRequestsSolicitation(); IngredientsSnacks = null; InitializeComponent(); }
private GM2ToneBank(Integra device) : base(device) { Name = "GM2 Tones"; Requests.Clear(); Requests.Add(new IntegraRequest(0x7900007F)); Requests.Add(new IntegraRequest(0x79013B7F)); Requests.Add(new IntegraRequest(0x79027F02)); }
/// <summary> /// Creates a new <see cref="TemporaryTone"/> instance. /// </summary> /// <param name="integra">The device to connect the model.</param> /// <param name="part">The associated part.</param> /// <remarks><i> /// - The temporary tone /// </i></remarks> internal TemporaryTone(Integra integra, Parts part) : base(integra, part, false) { Address = Attribute.Address; // 0x19, 0x19, 0x19, 0x19, 0x20, ... Address[0] += (byte)((int)part >> 2); // >> 2 equals division by 4 // 0x00, 0x20, 0x40, 0x60, 0x00, ... Address[1] += (byte)((int)part % 4 * 0x20); MFX = new MFX(this); Device.ToneChanged += ToneChanged; }
private StudioSet(Integra device) : base(device, false) { Common = device.CreateChildModel <StudioSetCommon>(); CommonChorus = device.CreateChildModel <StudioSetCommonChorus>(); CommonReverb = device.CreateChildModel <StudioSetCommonReverb>(); CommonMotionalSurround = device.CreateChildModel <StudioSetCommonMotionalSurround>(); MasterEQ = device.CreateChildModel <StudioSetMasterEQ>(); Midis = device.CreateChildModel <StudioSetMidis>(); Parts = device.CreateChildModel <StudioSetParts>(); PartEQs = device.CreateChildModel <StudioSetPartEQs>(); // TODO: Determin last models address value to filter system exclusives for IsInitialized? // Raises the property change event to update properties indexed by the selected part Device.PartChanged += PartChanged; // TODO: Remove event listener }
/// <summary> /// Creates a new <see cref="IntegraTemplateCollection{TTemplate}"/> instance. /// </summary> /// <param name="device">The device to connect the collection.</param> /// <remarks> /// <i>Requires the collection's items to be derived from <see cref="IntegraTemplate"/>.</i><br/> /// <i>Requires the <see cref="IntegraAttribute.Address"/> to specify the INTEGRA-7 function address.</i><br/> /// <i>Requires the <see cref="IntegraAttribute.Request"/> to specify the offset to the first template.</i> /// <i>Requires the <see cref="IntegraAttribute.Size"/> to specify the number of items.</i> /// </remarks> internal protected IntegraTemplateCollection(Integra device) : base(device) { for (int size = Size, i = 0; size > 0; size -= 0x40, i++) { // request[0] = 0x57, 0x00, 0x00, 0x40; 0.. 63 // request[1] = 0x57, 0x00, 0x40, 0x40; 64..127 // request[2] = 0x57, 0x01, 0x00, 0x40; 128..191 // request[3] = 0x57, 0x01, 0x40, 0x40; 192..255 IntegraRequest request = new (Attribute.Request); request[1] += (byte)(i / 2); request[2] = (byte)(i % 2 * 0x40); request[3] = (byte)(size > 0x40 ? 0x40 : size); Requests.Add(request); } }
/// <summary> /// Creates a new <see cref="IntegraPartialCollection{TPartial}"/> instance. /// </summary> /// <param name="device">The device to connect the collection.</param> /// <remarks> /// <i>Requires the collection's items to be derived from <see cref="IntegraPartial"/>.</i><br/> /// <i>Requires the <see cref="IntegraAttribute.Address"/> to specify the address of the first partial.</i><br/> /// <i>Requires the <see cref="IntegraAttribute.Request"/> to specify the request to initialize all partials.</i> /// </remarks> internal IntegraPartialCollection(Integra device, bool connect = true) : base(device, false) { IntegraAttribute?attribute = GetType().GetCustomAttribute <IntegraAttribute>(); Debug.Assert(attribute != null); Requests.Add(new IntegraRequest(attribute.Request)); for (int i = 0; i < IntegraConstants.PART_COUNT; i++) { var item = device.CreateChildModel <TPartial>((Parts)i); Debug.Assert(item != null); Add(item); } if (connect) { Connect(); } }
/// <summary> /// Creates a new <see cref="StudioSetMasterEQ"/> instance. /// </summary> /// <param name="device">The <see cref="Integra"/> to connect the model.</param> private StudioSetMasterEQ(Integra device) : base(device) { }
internal StudioSets(Integra device) : base(device) { }
[Integra(0x0F000402, 0x58650000, 7)] public sealed class ExSN06ToneBank : IntegraToneBank { private ExSN06ToneBank(Integra device) : base(device) { Name = "ExSN-06 SFX Tones"; }
private Setup(Integra device) : base(device) { }
/// <summary> /// Creates a new <see cref="StudioSetParts"/> collection instance. /// </summary> /// <param name="device">The device to connect the collection.</param> #pragma warning disable IDE0051 // Remove unused private members private StudioSetParts(Integra device) : base(device) { }
/// <summary> /// Creates a new <see cref="IntegraCollection"/> instance. /// </summary> /// <param name="device">The device to connect the collection.</param> /// <remarks> /// <b>Important:</b><br/> /// <i>Only intended for internal use.</i><br/> /// <i>Use the strongly typed <see cref="IntegraCollection{T}"/> instead.</i> /// </remarks> internal protected IntegraCollection(Integra device, bool connect = true) : base(device, connect) { }
[Integra(0x0F000402, 0x59620000, 50)] public sealed class ExSN03ToneBank : IntegraToneBank { private ExSN03ToneBank(Integra device) : base(device) { Name = "ExSN-03 Session Tones"; }
private void btnSave_Click(object sender, EventArgs e) { if (this.dataGridView1.SelectedRows.Count == 0) { MessageBox.Show("Ingredients is not null!"); return; } if (string.IsNullOrEmpty(txtCalculation.Text)) { MessageBox.Show("Is not Calculation!"); return; } if (string.IsNullOrEmpty(txtName.Text)) { MessageBox.Show("Name is not null!"); return; } if (string.IsNullOrEmpty(txtDescription.Text)) { MessageBox.Show("Description is not null!"); return; } var listProductSnacks = new List <ProductSnacksDTO>(); foreach (DataGridViewRow row in this.dataGridView1.Rows) { listProductSnacks.Add(row.DataBoundItem as ProductSnacksDTO); } double calculation; double.TryParse(txtCalculation.Text, out calculation); var solicitationProductSnacks = new SolicitationProductSnacksDTO(txtName.Text, txtDescription.Text, calculation, listProductSnacks); var postSnacks = Integra.PostSnacks(solicitationProductSnacks); if (postSnacks == null) { MessageBox.Show("Error you solicitation!"); return; } if (postSnacks.code <= 0) { MessageBox.Show("Error you solicitation!"); return; } var requestsSolicitation = new RequestsSolicitationDTO(postSnacks.code.ToString().PadLeft(6, '0'), postSnacks.name, postSnacks.description); txtCodes.Text = requestsSolicitation.codes; RequestsSolicitation = Integra.GetLisRequestsSolicitation(); var requestsSolicitation2 = this.RequestsSolicitation; dataGridViewRequests.DataSource = requestsSolicitation2; dataGridViewRequests.AutoResizeColumns(); dataGridViewRequests.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; dataGridViewRequests.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; dataGridViewRequests.Update(); dataGridViewRequests.Refresh(); txtCalculation.Text = null; txtDescription.Text = null; txtName.Text = null; IngredientsSnacks = null; dataGridView1.DataSource = null; dataGridView1.AutoResizeColumns(); dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; dataGridView1.Update(); dataGridView1.Refresh(); }
private StudioSetMidis(Integra device) : base(device) { }
/// <summary> /// Creates and initialize a new <see cref="VirtualSlots"/> instance. /// </summary> private VirtualSlots(Integra device) : base(device) { StartupExpansions = device.CreateModel <StartupExpansions>(); }
/// <summary> /// Creates a new <see cref="IntegraToneBank"/> instance. /// </summary> /// <param name="device">The device to connect the collection.</param> internal IntegraToneBank(Integra device) : base(device) { }
[Integra(0x0F000402, 0x5D000000, 41)] public sealed class SRX01ToneBank : IntegraToneBank { private SRX01ToneBank(Integra device) : base(device) { Name = "SRX-01 Dynamic Drums Tones"; }
/// <summary> /// Creates a new instance of the INTEGRA-7 studio set part model. /// </summary> private StudioSetPartEQ(Integra device, Parts part) : base(device, part) { }
private TemporaryTones(Integra integra) : base(integra) { }
[Integra(0x0F000402, 0x59630000, 12)] public sealed class ExSN04ToneBank : IntegraToneBank { private ExSN04ToneBank(Integra device) : base(device) { Name = "ExSN-04 Acoustic Guitar Tones"; }
private StudioSetCommon(Integra device) : base(device) { }
private StudioSetCommonMotionalSurround(Integra device) : base(device) { }
/// <summary> /// Creates a new <see cref="StudioSetPart"/> instance. /// </summary> /// <param name="device">The device to connect the model.</param> /// <param name="part">The model's associated part.</param> private StudioSetPart(Integra device, Parts part) : base(device, part) { PropertyChanged += ModelPropertyChanged; }
// Expansions [Integra(0x0F000402, 0x59600000, 17)] public sealed class ExSN01ToneBank : IntegraToneBank { private ExSN01ToneBank(Integra device) : base(device) { Name = "ExSN-01 Etnic Tones"; }
[Integra(0x0F000402, 0x59610000, 17)] public sealed class ExSN02ToneBank : IntegraToneBank { private ExSN02ToneBank(Integra device) : base(device) { Name = "ExSN-02 Woodwinds Tones"; }
private StartupExpansions(Integra device) : base(device) { }
protected IntegraPartial(Integra device, Parts part, bool connect = true) : base(device, connect) { Debug.Print($"[{nameof(IntegraPartial<TModel>)}] Constructor<{GetType().Name}>({part})"); Address += (int)part << 8; Part = part; }
[Integra(0x0F000402, 0x59640000, 12)] public sealed class ExSN05ToneBank : IntegraToneBank { private ExSN05ToneBank(Integra device) : base(device) { Name = "ExSN-05 Brass Tones"; }