Esempio n. 1
0
        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();
            }
        }