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="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(); } }