コード例 #1
0
ファイル: MacroCommandDialog.cs プロジェクト: zBart/Ares
        private void commandTypeCombo_SelectedIndexChanged(object sender, EventArgs e)
        {
            bool hasElement = commandTypeCombo.SelectedIndex < 4 || commandTypeCombo.SelectedIndex == 5 || commandTypeCombo.SelectedIndex == 6;

            selectCommandElementButton.Enabled = hasElement;
            commandElementBox.Enabled          = hasElement;
            if (!hasElement)
            {
                commandElementBox.Text = String.Empty;
            }
            if (hasElement && m_CurrentCommandElement != null && (commandTypeCombo.SelectedIndex == 5 || commandTypeCombo.SelectedIndex == 6))
            {
                commandElementBox.Text  = String.Empty;
                m_CurrentCommandElement = null;
                m_CurrentCategoryId     = -1;
                m_CurrentTagId          = -1;
            }
            else if (hasElement && m_CurrentTagId != -1 && commandTypeCombo.SelectedIndex < 4)
            {
                commandElementBox.Text  = String.Empty;
                m_CurrentCommandElement = null;
                m_CurrentCategoryId     = -1;
                m_CurrentTagId          = -1;
            }
            waitTimeUpDown.Enabled = !hasElement;
            if (!String.IsNullOrEmpty(errorProvider.GetError(commandElementBox)) && !hasElement)
            {
                errorProvider.SetError(commandElementBox, String.Empty);
            }
        }
コード例 #2
0
 public ElementRenamedAction(IElement element, IModeElement modeElement, String newName)
 {
     m_Element     = element;
     m_ModeElement = modeElement;
     m_OldName     = element.Title;
     m_NewName     = newName;
 }
コード例 #3
0
ファイル: KeyChecks.cs プロジェクト: zBart/Ares
        public static String GetErrorForKey(IProject project, IModeElement modeElement, int key)
        {
            IMode elementMode = null;

            foreach (IMode mode in project.GetModes())
            {
                if (mode.KeyCode == key)
                {
                    return(String.Format(StringResources.KeyUsedByMode, mode.Title));
                }
                if (mode.GetElements().Contains(modeElement))
                {
                    elementMode = mode;
                }
            }
            if (elementMode != null)
            {
                foreach (IModeElement element in elementMode.GetElements())
                {
                    if (element != modeElement && element.Trigger != null && element.Trigger.TriggerType == TriggerType.Key &&
                        (element.Trigger as IKeyTrigger).KeyCode == key)
                    {
                        return(String.Format(StringResources.KeyUsedByModeElement, element.Title));
                    }
                }
            }
            if (s_GlobalReservedKeys.ContainsKey(key))
            {
                return(StringResources.KeyGloballyReserved);
            }

            return(String.Empty);
        }
コード例 #4
0
ファイル: MacroCommandDialog.cs プロジェクト: zBart/Ares
 private void selectCommandElementButton_Click(object sender, EventArgs e)
 {
     System.Windows.Forms.ContextMenu menu;
     if (commandTypeCombo.SelectedIndex < 4)
     {
         menu = CreateElementSelectionMenu((IModeElement element) =>
         {
             m_CurrentCommandElement = element;
             commandElementBox.Text  = GetElementDisplayName(element, m_Project);
             if (element != null && !String.IsNullOrEmpty(errorProvider.GetError(commandElementBox)))
             {
                 errorProvider.SetError(commandElementBox, String.Empty);
             }
         });
     }
     else
     {
         menu = CreateTagSelectionMenu((int categoryId, int tagId) =>
         {
             m_CurrentTagId         = tagId;
             m_CurrentCategoryId    = categoryId;
             commandElementBox.Text = GetTagName(tagId, m_Project);
             if (m_CurrentTagId != -1 && !String.IsNullOrEmpty(errorProvider.GetError(commandElementBox)))
             {
                 errorProvider.SetError(commandElementBox, String.Empty);
             }
         }, m_Project);
     }
     menu.Show(commandGroupBox, new Point(selectCommandElementButton.Left, selectCommandElementButton.Bottom));
 }
コード例 #5
0
        private void UpdateMusicList()
        {
            var newMusicList   = CreateTagsMusicList(m_Title, m_CurrentChoices, m_FadeOnlyOnChange ? 0 : m_FadeTime);
            var newModeElement = Ares.Data.DataModule.ElementFactory.CreateModeElement(m_Title, newMusicList);

            newModeElement.Trigger                = Ares.Data.DataModule.ElementFactory.CreateNoTrigger();
            newModeElement.Trigger.StopMusic      = true;
            newModeElement.Trigger.CrossFadeMusic = false;
            if (m_FadeTime > 0)
            {
                newModeElement.Trigger.FadeMusic     = true;
                newModeElement.Trigger.FadeMusicTime = m_FadeTime;
            }
            IRandomBackgroundMusicList oldMusicList;

            lock (m_SyncObject)
            {
                oldMusicList  = m_MusicList;
                m_MusicList   = newMusicList;
                m_ModeElement = newModeElement;
            }
            if (oldMusicList != null)
            {
                foreach (IChoiceElement element in oldMusicList.GetElements())
                {
                    Ares.Data.DataModule.ElementRepository.DeleteElement(element.Id);
                }
                Ares.Data.DataModule.ElementRepository.DeleteElement(oldMusicList.Id);
            }
        }
コード例 #6
0
ファイル: MacroPlayer.cs プロジェクト: monstrim/Ares
 public void ModeElementStarted(IModeElement element)
 {
     lock (m_LockObject)
     {
         m_RunningElements.Add(element.Id);
     }
     Signal(element.Id);
 }
コード例 #7
0
ファイル: MacroPlayer.cs プロジェクト: monstrim/Ares
 public void ModeElementFinished(IModeElement element)
 {
     lock (m_LockObject)
     {
         m_RunningElements.Remove(element.Id);
     }
     Signal(element.Id);
 }
コード例 #8
0
ファイル: DataExtensions.cs プロジェクト: zBart/Ares
 public static bool IsEndless(this IModeElement element)
 {
     if (element.StartElement == null)
     {
         return(false);
     }
     return(IsEndless(element.StartElement));
 }
コード例 #9
0
ファイル: DataExtensions.cs プロジェクト: zBart/Ares
 public static bool AlwaysStartsMusic(this IModeElement element)
 {
     if (element.StartElement == null)
     {
         return(false);
     }
     return(AlwaysStartsMusic(element.StartElement));
 }
コード例 #10
0
ファイル: ElementActions.cs プロジェクト: zBart/Ares
        public override void Undo(Ares.Data.IProject project)
        {
            IModeElement modeElement = m_Node.Tag as IModeElement;

            modeElement.Title = m_OldName;
            modeElement.StartElement.Title = m_OldName;
            m_Node.Text = modeElement.GetNodeTitle();
            ElementChanges.Instance.ElementRenamed(modeElement.Id);
            ElementChanges.Instance.ElementRenamed(modeElement.StartElement.Id);
        }
コード例 #11
0
ファイル: ElementActions.cs プロジェクト: zBart/Ares
        public override void Do(Ares.Data.IProject project)
        {
            m_Parent.Nodes.Remove(m_Node);
            IModeElement element = (m_Node.Tag as IModeElement);

            (m_Parent.Tag as IMode).RemoveElement(element);
            Data.DataModule.ElementRepository.DeleteElement(element.Id);
            ElementRemoval.NotifyRemoval(element);
            Ares.ModelInfo.ModelChecks.Instance.CheckAll(project);
        }
コード例 #12
0
 public TagsMusicPlayer()
 {
     m_CurrentFile    = String.Empty;
     m_CurrentFileId  = -1;
     m_Title          = StringResources.TaggedMusic;
     m_MusicList      = Ares.Data.DataModule.ElementFactory.CreateRandomBackgroundMusicList(m_Title);
     m_ModeElement    = Ares.Data.DataModule.ElementFactory.CreateModeElement(m_Title, m_MusicList);
     m_CurrentChoices = new List <String>();
     ProjectCallbacks.Instance.AddCallbacks(this);
 }
コード例 #13
0
        private static String GetElementDisplayName(IModeElement modeElement, IProject project)
        {
            if (modeElement == null)
            {
                return(StringResources.InvalidModeElement);
            }
            IMode mode = FindMode(modeElement, project);

            return(String.Format(StringResources.ModeElementDisplay, mode != null ? mode.Title : StringResources.InvalidModeElement, modeElement.Title));
        }
コード例 #14
0
ファイル: MacroCommandDialog.cs プロジェクト: zBart/Ares
 private void selectConditionElementButton_Click(object sender, EventArgs e)
 {
     System.Windows.Forms.ContextMenu menu = CreateElementSelectionMenu((IModeElement element) =>
     {
         m_CurrentConditionElement = element;
         conditionElementBox.Text  = GetElementDisplayName(element, m_Project);
         if (element != null && !String.IsNullOrEmpty(errorProvider.GetError(conditionElementBox)))
         {
             errorProvider.SetError(conditionElementBox, String.Empty);
         }
     });
     menu.Show(conditionGroupBox, new Point(selectConditionElementButton.Left, selectConditionElementButton.Bottom));
 }
コード例 #15
0
 private static IMode FindMode(IModeElement modeElement, IProject project)
 {
     foreach (IMode mode in project.GetModes())
     {
         foreach (IModeElement element in mode.GetElements())
         {
             if (element == modeElement)
             {
                 return(mode);
             }
         }
     }
     return(null);
 }
コード例 #16
0
ファイル: WebRadioEditor.cs プロジェクト: zBart/Ares
 public void SetElement(IWebRadioElement element, IProject project, IModeElement modeElement)
 {
     ElementId     = element.Id;
     m_Element     = element;
     m_ModeElement = modeElement;
     m_Project     = project;
     volumeControl.SetElement(element, project);
     fileVolumeControl.SetContainer(null, project);
     fileVolumeControl.SetEffects(element);
     listen      = false;
     urlBox.Text = element.Url;
     listen      = true;
     Update(m_Element.Id, Actions.ElementChanges.ChangeType.Renamed);
     Actions.ElementChanges.Instance.AddListener(ElementId, Update);
 }
コード例 #17
0
ファイル: ModeActions.cs プロジェクト: zBart/Ares
        public static string GetNodeTitle(this IModeElement modeElement)
        {
            ITrigger trigger = modeElement.Trigger;

            if (trigger != null && trigger.TriggerType == TriggerType.Key)
            {
                KeysConverter converter = new KeysConverter();
                int           keyCode   = (trigger as IKeyTrigger).KeyCode;
                return(modeElement.Title + " (" + (keyCode != 0 ? converter.ConvertToString((System.Windows.Forms.Keys)keyCode) : StringResources.NoKey) + ")");
            }
            else
            {
                // at first, as long as there are no other triggers
                return(modeElement.Title + " (" + StringResources.NoKey + ")");
            }
        }
コード例 #18
0
        public IModeElement GetModeElementDefinition(ITargetDirectoryProvider targetDirectoryProvider)
        {
            IElementContainer <IParallelElement> container = DataModule.ElementFactory.CreateParallelContainer("Test-Szenario");
            IModeElement modeElement = DataModule.ElementFactory.CreateModeElement("Test-Szenario", container);

            IRandomBackgroundMusicList music = DataModule.ElementFactory.CreateRandomBackgroundMusicList("Musik");

            container.AddElement(music);

            IBackgroundSounds sounds = DataModule.ElementFactory.CreateBackgroundSounds("Sounds");

            container.AddElement(sounds);

            IBackgroundSoundChoice soundChoice1 = sounds.AddElement("Auswahl 1");

            music.AddElement(DataModule.ElementFactory.CreateFileElement(targetDirectoryProvider.GetPathWithinLibrary(m_MusicResource), SoundFileType.Music));
            soundChoice1.AddElement(DataModule.ElementFactory.CreateFileElement(targetDirectoryProvider.GetPathWithinLibrary(m_SoundResource), SoundFileType.SoundEffect));

            return(modeElement);
        }
コード例 #19
0
ファイル: ElementRepository.cs プロジェクト: zBart/Ares
        public int AddElement(IElement element)
        {
            if (element is IGeneralElementContainer)
            {
                foreach (IContainerElement containerElement in (element as IGeneralElementContainer).GetGeneralElements())
                {
                    AddElement(containerElement.InnerElement);
                }
            }
            else if (element is IModeElement)
            {
                IModeElement me = (element as IModeElement);
                if (me.StartElement != null)
                {
                    AddElement(me.StartElement);
                }
            }
            // do NOT follow references
            int id = element.Id;

            AddElement(ref id, element);
            element.Id = id;
            return(id);
        }
コード例 #20
0
ファイル: ElementRepository.cs プロジェクト: zBart/Ares
 public void DeleteElement(int id)
 {
     if (m_Elements.ContainsKey(id))
     {
         IElement element = m_Elements[id];
         if (element is IGeneralElementContainer)
         {
             foreach (IContainerElement containerElement in (element as IGeneralElementContainer).GetGeneralElements())
             {
                 DeleteElement(containerElement.InnerElement.Id);
             }
         }
         else if (element is IModeElement)
         {
             IModeElement me = (element as IModeElement);
             if (me.StartElement != null)
             {
                 DeleteElement(me.StartElement.Id);
             }
         }
         // do NOT follow references ;-)
         m_Elements.Remove(id);
     }
 }
コード例 #21
0
ファイル: StartElementPlayer.cs プロジェクト: zBart/Ares
 public ModeElementPlayer(IModeElement modeElement, IProjectPlayingCallbacks callbacks, Action <StartElementPlayer> finishedAction, bool playMusicOnAllSpeakers)
     : base(modeElement.StartElement, finishedAction, playMusicOnAllSpeakers)
 {
     m_Mode      = modeElement;
     m_Callbacks = callbacks;
 }
コード例 #22
0
 public SetModeElementTriggerAction(IModeElement modeElement, ITrigger trigger)
 {
     m_ModeElement = modeElement;
     m_OldTrigger  = modeElement.Trigger;
     m_NewTrigger  = trigger;
 }
コード例 #23
0
 public SetModeElementVisibleAction(IModeElement modeElement, bool visibleInPlayer)
 {
     m_ModeElement = modeElement;
     m_OldVisible  = modeElement.IsVisibleInPlayer;
     m_NewVisible  = visibleInPlayer;
 }
コード例 #24
0
ファイル: Macros.cs プロジェクト: zBart/Ares
 public ITagCommand CreateTagCommand(int categoryId, int tagId, bool addTag, MacroConditionType conditionType, IModeElement conditionElement)
 {
     return(new TagCommand(categoryId, tagId, addTag, conditionType, conditionElement));
 }
コード例 #25
0
 public void ModeElementFinished(IModeElement element)
 {
 }
コード例 #26
0
 public void ModeElementStarted(IModeElement element)
 {
 }
コード例 #27
0
ファイル: Macros.cs プロジェクト: zBart/Ares
 public IWaitConditionCommand CreateWaitCondition(MacroConditionType awaitedConditionType, IModeElement awaitedConditionElement, MacroConditionType conditionType, IModeElement conditionElement)
 {
     return(new WaitConditionCommand(awaitedConditionType, awaitedConditionElement, conditionType, conditionElement));
 }
コード例 #28
0
ファイル: Macros.cs プロジェクト: zBart/Ares
 public IRemoveAllTagsCommand CreateRemoveAllTagsCommand(MacroConditionType conditionType, IModeElement conditionElement)
 {
     return(new RemoveAllTagsCommand(conditionType, conditionElement));
 }
コード例 #29
0
ファイル: Macros.cs プロジェクト: zBart/Ares
 public IWaitTimeCommand CreateWaitTime(int timeInMillis, MacroConditionType conditionType, IModeElement conditionElement)
 {
     return(new WaitTimeCommand(timeInMillis, conditionType, conditionElement));
 }
コード例 #30
0
ファイル: Macros.cs プロジェクト: zBart/Ares
 public IStopCommand CreateStopCommand(IModeElement startedElement, MacroConditionType conditionType, IModeElement conditionElement)
 {
     return(new StopCommand(startedElement, conditionType, conditionElement));
 }