コード例 #1
0
        public virtual void Initialize(PDSingleAudioItem audioItem, PDPlayer pdPlayer)
        {
            base.Initialize(audioItem, pdPlayer);

            this.pdPlayer = pdPlayer;

            index = GetUnusedIndex();
            if (index == -1)
            {
                Debug.LogWarning(string.Format("No available voice for audio item {0} of id {1}.", audioItem.Name, audioItem.GetID()));
                audioItem.StopImmediate();
                return;
            }
            indexAudioItem[index] = audioItem;

            if (soundNameVoice.ContainsKey(audioItem.Name))
            {
                voice = soundNameVoice[audioItem.Name];
            }
            else
            {
                voice = voiceCounter;
                soundNameVoice[audioItem.Name] = voice;
                voiceCounter += 1;
                voiceCounter %= pdPlayer.audioSettings.maxVoices;
            }

            offset = index * pdPlayer.bridge.bufferSize * 2;
        }
コード例 #2
0
ファイル: PDModule.cs プロジェクト: Dracir/semicolon
        public PDModule(string name, int id, PDSpatializer spatializer, PDAudioItemManager itemManager, PDPlayer pdPlayer)
            : base(name, id, itemManager, pdPlayer)
        {
            this.spatializer = spatializer;
            this.pdPlayer    = pdPlayer;

            Initialize();
        }
コード例 #3
0
ファイル: PDEditorHelper.cs プロジェクト: Dracir/semicolon
 public static PDEditorHelper GetInstance(PDPlayer pdPlayer)
 {
     if (instance == null)
     {
         instance = new PDEditorHelper(pdPlayer);
     }
     instance.Update();
     return(instance);
 }
コード例 #4
0
ファイル: PDModule.cs プロジェクト: Dracir/semicolon
        public PDModule(int id, PDEditorModule editorModule, PDAudioItemManager itemManager, PDPlayer pdPlayer)
            : base(editorModule.Name, id, itemManager, pdPlayer)
        {
            this.Volume      = editorModule.Volume;
            this.spatializer = new PDSpatializer(editorModule, pdPlayer);
            this.pdPlayer    = pdPlayer;

            Initialize();
        }
コード例 #5
0
 public PDSpatializer(PDEditorModule editorModule, PDPlayer pdPlayer)
 {
     this.moduleName    = editorModule.Name;
     this.source        = editorModule.Source;
     this.volumeRolloff = editorModule.VolumeRolloff;
     this.minDistance   = editorModule.MinDistance;
     this.maxDistance   = editorModule.MaxDistance;
     this.panLevel      = editorModule.PanLevel;
     this.pdPlayer      = pdPlayer;
 }
コード例 #6
0
ファイル: PDEditorModule.cs プロジェクト: Dracir/semicolon
        public PDEditorModule(string name, PDPlayer pdPlayer)
        {
            this.name     = name;
            this.pdPlayer = pdPlayer;

            volume      = 1;
            minDistance = 1;
            maxDistance = 500;
            panLevel    = 1;
        }
コード例 #7
0
ファイル: PDEditorModule.cs プロジェクト: Dracir/semicolon
 public PDEditorModule(string name, PDEditorModule editorModule, PDPlayer pdPlayer)
 {
     this.name          = name;
     this.volume        = editorModule.Volume;
     this.source        = editorModule.Source;
     this.volumeRolloff = editorModule.VolumeRolloff;
     this.minDistance   = editorModule.MinDistance;
     this.maxDistance   = editorModule.MaxDistance;
     this.panLevel      = editorModule.PanLevel;
     this.pdPlayer      = pdPlayer;
 }
コード例 #8
0
ファイル: PDEditorModule.cs プロジェクト: Dracir/semicolon
 public PDEditorModule(PDModule module, PDPlayer pdPlayer)
 {
     this.name          = module.Name;
     this.volume        = module.GetVolume();
     this.source        = module.spatializer.Source;
     this.volumeRolloff = module.spatializer.VolumeRolloff;
     this.minDistance   = module.spatializer.MinDistance;
     this.maxDistance   = module.spatializer.MaxDistance;
     this.panLevel      = module.spatializer.PanLevel;
     this.pdPlayer      = pdPlayer;
 }
コード例 #9
0
ファイル: PDPlayerEditor.cs プロジェクト: Dracir/semicolon
    public override void OnInspectorGUI()
    {
        pdPlayer              = (PDPlayer)target;
        editorHelper          = pdPlayer.editorHelper;
        editorHelperProperty  = serializedObject.FindProperty("editorHelper");
        modulesProperty       = editorHelperProperty.FindPropertyRelative("modules");
        defaultModule         = editorHelper.defaultModule;
        defaultModuleProperty = editorHelperProperty.FindPropertyRelative("defaultModule");

        Begin();

        ShowGeneralSettings();
        Separator();
        ShowDefaultSettings();
        Separator();
        ShowModules();
        End();
    }
コード例 #10
0
    public override void OnInspectorGUI()
    {
        audioPlayer = (AudioPlayerOld)target;
        if (!audioPlayer.initialized)
        {
            return;
        }

        Begin();

        EditorGUILayout.PropertyField(serializedObject.FindProperty("audioClipsPath"));
        EditorGUILayout.PropertyField(serializedObject.FindProperty("masterVolume"));
        EditorGUILayout.PropertyField(serializedObject.FindProperty("maxVoices"));
        EditorGUILayout.PropertyField(serializedObject.FindProperty("tempoSettings"), new GUIContent(string.Format("Tempo Settings: {0} | {1}", audioPlayer.tempoSettings.beatsPerMinute, audioPlayer.tempoSettings.beatsPerMeasure)), true);
        Separator();
        ShowContainers();
        ShowRTPCs();
        ShowBuses();

        Sampler  sampler  = FindObjectOfType <Sampler>();
        PDPlayer pdPlayer = FindObjectOfType <PDPlayer>();

        if (sampler == null || pdPlayer == null)
        {
            Separator();
            if (sampler == null)
            {
                if (LargeAddElementButton("Add Sampler".ToGUIContent()))
                {
                    audioPlayer.gameObject.AddComponent <Sampler>();
                }
            }
            if (pdPlayer == null)
            {
                if (LargeAddElementButton("Add PDPlayer".ToGUIContent()))
                {
                    audioPlayer.gameObject.AddComponent <PDPlayer>();
                }
            }
        }

        End();
    }
コード例 #11
0
ファイル: AudioPlayerEditor.cs プロジェクト: Dracir/semicolon
        void ShowButtons()
        {
            PDPlayer pdPlayer = FindObjectOfType <PDPlayer>();

            if (pdPlayer != null)
            {
                return;
            }

            Separator();

            if (pdPlayer == null)
            {
                if (LargeAddElementButton("Add Pure Data Player".ToGUIContent()))
                {
                    audioPlayer.AddComponent <PDPlayer>();
                }
            }
        }
コード例 #12
0
ファイル: PDEditorHelper.cs プロジェクト: Dracir/semicolon
        public override void OnHierarchyWindowItemGUI(int instanceid, Rect selectionrect)
        {
                        #if UNITY_EDITOR
            icon = icon ?? HelperFunctions.GetAssetInFolder <Texture>("pd.png", "PDPlayer");
            GameObject gameObject = UnityEditor.EditorUtility.InstanceIDToObject(instanceid) as GameObject;

            if (gameObject == null || icon == null)
            {
                return;
            }

            float width = selectionrect.width;
            selectionrect.width  = 16;
            selectionrect.height = 16;


            PDPlayer player = gameObject.GetComponent <PDPlayer>();
            if (player != null)
            {
                selectionrect.x = width - 8 + gameObject.GetHierarchyDepth() * 14;
                GUI.DrawTexture(selectionrect, icon);
            }
                        #endif
        }
コード例 #13
0
 public PDAudioItemManager(PDPlayer pdPlayer)
     : base(pdPlayer.listener, pdPlayer.infoManager, pdPlayer)
 {
     this.pdPlayer = pdPlayer;
     BuildModulesDict();
 }
コード例 #14
0
ファイル: PDBridge.cs プロジェクト: Dracir/semicolon
 public PDBridge(PDPlayer pdPlayer)
 {
     this.pdPlayer = pdPlayer;
 }
コード例 #15
0
ファイル: PDEditorHelper.cs プロジェクト: Dracir/semicolon
 public PDEditorHelper(PDPlayer pdPlayer)
 {
     this.pdPlayer = pdPlayer;
 }
コード例 #16
0
ファイル: PDSingleAudioItem.cs プロジェクト: Dracir/semicolon
 public PDSingleAudioItem(string name, int id, AudioSource audioSource, AudioInfo audioInfo, GameObject gameObject, CoroutineHolder coroutineHolder, PDGainManager gainManager, PDAudioItemManager itemManager, PDPlayer pdPlayer)
     : base(name, id, audioSource, audioInfo, gameObject, coroutineHolder, gainManager, itemManager, pdPlayer)
 {
     this.pdPlayer = pdPlayer;
     pdPlayer.communicator.SendValue(Name + "_Volume", Volume);
 }
コード例 #17
0
 public void Start()
 {
     editorHelper = AudioHierarchyEditorHelper.GetInstance();
     editorHelper.Update();
     pdPlayer = Object.FindObjectOfType <PDPlayer>();
 }
コード例 #18
0
 public PDCommunicator(PDPlayer pdPlayer)
 {
     this.pdPlayer = pdPlayer;
 }
コード例 #19
0
ファイル: PDPatchManager.cs プロジェクト: Dracir/semicolon
 public PDPatchManager(PDPlayer pdPlayer)
 {
     this.pdPlayer = pdPlayer;
 }
コード例 #20
0
 public PDSpatializer(string moduleName, GameObject source, PDPlayer pdPlayer)
 {
     this.moduleName = moduleName;
     this.source     = source;
     this.pdPlayer   = pdPlayer;
 }