Пример #1
0
        public static void TestConstruction()
        {
            {
                string         name = "bdfgbsgaudio";
                Id <Parameter> id   = Id <Parameter> .Parse("BC123324-1BA2-4BCD-83D3-419D854CFE3D");

                AudioParameter p = new AudioParameter(name, id);
                Assert.That(p.Name, Is.EqualTo(name));
                Assert.That(p.Id, Is.EqualTo(id));
                Assert.That(p.TypeId, Is.EqualTo(AudioParameter.ParameterType));
                Assert.That(p.Corrupted, Is.True);
                //AudioParameters are always constructed corrupted and the conversation files automatically decorrupt them by generating new values for them
            }

            {
                string         name = "bdfgadio";
                Id <Parameter> id   = Id <Parameter> .Parse("3F8D6F37-36B8-48A7-BAC6-4F524728D1FE");

                AudioParameter p = new AudioParameter(name, id);
                Assert.That(p.Name, Is.EqualTo(name));
                Assert.That(p.Id, Is.EqualTo(id));
                Assert.That(p.TypeId, Is.EqualTo(AudioParameter.ParameterType));
                Assert.That(p.Corrupted, Is.True);
                //AudioParameters are always constructed corrupted and the conversation files automatically decorrupt them by generating new values for them
            }
        }
Пример #2
0
        public static void Test()
        {
            string         name = "bdfgbsgaudio";
            Id <Parameter> id   = Id <Parameter> .Parse("BC123324-1BA2-4BCD-83D3-419D854CFE3D");

            AudioParameter p = new AudioParameter(name, id);

            var value1 = new Audio("asdkavds\\asdasd");
            var action = p.SetValueAction(value1);

            Assert.That(action, Is.Not.Null);
            action.Value.Redo();
            CheckValue(p, value1);
            action.Value.Undo();
            Assert.That(p.Corrupted, Is.True);

            p.TryDeserialiseValue("shane");
            CheckValue(p, new Audio("shane"));
            var value2  = new Audio("a\\b\\c");
            var action2 = p.SetValueAction(value2);

            Assert.That(action2, Is.Not.Null);
            action2.Value.Redo();
            CheckValue(p, value2);
            action2.Value.Undo();
            CheckValue(p, new Audio("shane"));
        }
 //播放聲音
 public void PlaySoundEffect(AudioParameter parameter)
 {
     try
     {
         if (this.GetComponent <AudioSource>() != null)
         {
             AudioSource source = this.GetComponent <AudioSource>();
             if (parameter.AudioClip != null)
             {
                 //設定來源和相關參數
                 source.clip = parameter.AudioClip;
                 source.loop = parameter.IsLoop;
                 //然後播放
                 source.Play();
             }
             else
             {
                 source.Stop();
             }
         }
     }
     catch
     {
     }
 }
Пример #4
0
 private static void CheckValue(AudioParameter p, Audio value)
 {
     Assert.That(p.Corrupted, Is.False);
     Assert.That(p.Value, Is.EqualTo(value));
     Assert.That(p.DisplayValue((a, b) => "a"), Is.EqualTo(value.DisplayValue()));
     Assert.That(p.SetValueAction(value), Is.Null);
     Assert.That(p.ValueAsString(), Is.EqualTo(value.Serialize()));
 }
Пример #5
0
        public static AudioParameter Parse(uint audioSpecificConfig)
        {
            var objectType           = (audioSpecificConfig & 0xf800) >> 11; // 5 bits: object type
            var frequencyIndex       = (audioSpecificConfig & 0x0780) >> 7;  // 4 bits: frequency index
            var channelConfiguration = (audioSpecificConfig & 0x0078) >> 3;  // 4 bits: channel configuration

            var config = new AudioParameter()
            {
                Frequency = GetFrequency(frequencyIndex)
            };

            // MPEG-4 Channel Configuration
            switch (channelConfiguration)
            {
            case 0:
                break;

            case 1:
                config.NumChannels = 1;
                config.ChannelMask = SpeakerPositions.FrontCenter;
                break;

            case 2:
                config.NumChannels = 2;
                config.ChannelMask = SpeakerPositions.Stereo;
                break;

            case 3:
                config.NumChannels = 3;
                config.ChannelMask = SpeakerPositions.Stereo | SpeakerPositions.FrontCenter;
                break;

            case 4:
                config.NumChannels = 4;
                config.ChannelMask = SpeakerPositions.Surround;
                break;

            case 5:
                config.NumChannels = 5;
                config.ChannelMask = SpeakerPositions.Quad | SpeakerPositions.FrontCenter;
                break;

            case 6:
                config.NumChannels = 6;
                config.ChannelMask = SpeakerPositions.FivePoint1;
                break;

            case 7:
                config.NumChannels = 8;
                config.ChannelMask = SpeakerPositions.SevenPoint1Surround;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(channelConfiguration));
            }
            return(config);
        }
Пример #6
0
 // Plays an audio clip with the given parameters
 public void PlayAudioParameter(AudioParameter audio)
 {
     PlayAudio(audio.audioClip
               , audio.volume
               , audio.priority
               , _audioSourceLayer
               , audio.pitchLow
               , audio.pitchHigh);
 }
Пример #7
0
    // Plays an audio clip with the given parameters
    public void PlayAudioParameter(AudioName audioName)
    {
        AudioParameter audio = AudioDictionary[audioName];

        PlayAudio(audio.audioClip
                  , audio.volume
                  , audio.priority
                  , _audioSourceLayer
                  , audio.pitchLow
                  , audio.pitchHigh);
    }
Пример #8
0
            public GraphData(Id <NodeTemp> nodeId, Id <NodeTypeTemp> nodeTypeId, IEnumerable <NodeDataGeneratorParameterData> parameterData)
            {
                NodeId     = nodeId;
                NodeTypeId = nodeTypeId;

                var allConnectorsDefinition = new ConnectorDefinitionData(null, null, null, null, false);

                var outputs    = new List <Output>();
                var parameters = new List <IParameter>();

                DecimalParameter.Definition d = new DecimalParameter.Definition(null, null);
                ParameterType decimalType     = ParameterType.Basic.Parse("721796b6-a242-4723-82e9-35201097e675");
                ParameterType dynamicEnumType = ParameterType.Basic.Parse("6d2d52c8-5934-4ba8-8d4e-7081fe57f662");

                DynamicEnumParameter.Source source = new DynamicEnumParameter.Source();
                IEnumeration  enumeration          = new DummyEnumeration();
                ParameterType integerEnumType      = ParameterType.Basic.Parse("de108fdb-db50-4cd5-aad5-0ea791f04721");

                IntegerParameter.Definition i = new IntegerParameter.Definition(null, null);

                AudioParameter           = new AudioParameter("Audio", Id <Parameter> .Parse("3ac8d0ca-c9f6-4e06-b18c-c1366e1af7d3"));
                BooleanParameter         = new BooleanParameter("Boolean", Id <Parameter> .Parse("0e12e8e3-4c95-43a5-a733-d2d1fbbb780c"), "false");
                DecimalParameter         = new DecimalParameter("Decimal", Id <Parameter> .Parse("765e616a-f165-4053-a15c-14ed593429af"), decimalType, d, "1.0");
                DynamicEnumParameter     = new DynamicEnumParameter("DynamicEnum", Id <Parameter> .Parse("7c5b019c-79d0-4ef0-b848-0a2c68908f34"), source, dynamicEnumType, "shnae", false);
                EnumParameter            = new EnumParameter("Enum", Id <Parameter> .Parse("e576713b-5d45-48d0-8a4e-661f1fedcafd"), enumeration, enumeration.DefaultValue.ToString());
                IntegerParameter         = new IntegerParameter("Int", Id <Parameter> .Parse("275d75f3-fe4e-42b1-bfaf-e841ba591999"), integerEnumType, i, "1");
                LocalizedStringParameter = new LocalizedStringParameter("Localized stirng", Id <Parameter> .Parse("f332e619-e9a3-421f-9851-d95a00b62da9"), ParameterType.Basic.Parse("4547dbf2-46cc-4c84-ac6e-81ab185575dc"));
                SetParameter             = new SetParameter("Set", Id <Parameter> .Parse("2d6235ea-c8a1-447a-b9d8-692f6329be33"), enumeration, null);
                StringParameter          = new StringParameter("string", Id <Parameter> .Parse("4752d30e-e1ab-47ba-bc15-b2e6ecfa5416"));
                StringParameter2         = new StringParameter("string2", Id <Parameter> .Parse("dcd4a349-b0a8-4fa3-8989-2d10469b1a17"));

                if (nodeTypeId == TYPE1)
                {
                    outputs.Add(new Output(Id <TConnector> .Parse("0956c9d3-c230-49a2-874a-7e3747b58cff"), allConnectorsDefinition, this, null, DummyRules.Instance));
                    parameters.Add(AudioParameter);
                    parameters.Add(BooleanParameter);
                    parameters.Add(DecimalParameter);
                    parameters.Add(DynamicEnumParameter);
                    parameters.Add(EnumParameter);
                }
                else if (nodeTypeId == TYPE2)
                {
                    outputs.Add(new Output(Id <TConnector> .Parse("da2b4ded-378e-4484-89f0-1328a42f00e3"), allConnectorsDefinition, this, null, DummyRules.Instance));
                    outputs.Add(new Output(Id <TConnector> .Parse("2bf2ca93-6b81-4a9a-814f-809a8bef332f"), allConnectorsDefinition, this, null, DummyRules.Instance));

                    parameters.Add(IntegerParameter);
                    parameters.Add(LocalizedStringParameter);
                    parameters.Add(SetParameter);
                    parameters.Add(StringParameter);
                }
                else if (nodeTypeId == TYPE3)
                {
                    outputs.Add(new Output(Id <TConnector> .Parse("c3f67c87-a3fd-428d-90a2-90cb87906eb2"), allConnectorsDefinition, this, null, DummyRules.Instance));
                    parameters.Add(StringParameter);
                    parameters.Add(StringParameter2);
                }
                else
                {
                    Assert.Fail("Unexpected Id");
                }

                if (parameterData != null)
                {
                    foreach (var data in parameterData)
                    {
                        parameters.Where(p => p.Id == data.Guid).Single().TryDeserialiseValue(data.Value);
                    }
                }

                Connectors = outputs;
                Parameters = parameters;
            }