public override ActionBase GetAction() { string type = (string)this.TypeComboBox.SelectedItem; if (!string.IsNullOrEmpty(type)) { if (type.Equals(ShowHideWidgetOption)) { if (this.WidgetNameComboBox.SelectedIndex >= 0) { OverlayWidget widget = (OverlayWidget)this.WidgetNameComboBox.SelectedItem; return(new OverlayAction(widget.Item.ID, this.ShowHideWidgetCheckBox.IsChecked.GetValueOrDefault())); } } else { OverlayActionTypeEnum overlayType = EnumHelper.GetEnumValueFromString <OverlayActionTypeEnum>(type); if (this.OverlayNameComboBox.SelectedIndex < 0) { return(null); } string overlayName = (string)this.OverlayNameComboBox.SelectedItem; double duration; if (double.TryParse(this.DurationTextBox.Text, out duration) && duration > 0 && this.EntranceAnimationComboBox.SelectedIndex >= 0 && this.VisibleAnimationComboBox.SelectedIndex >= 0 && this.ExitAnimationComboBox.SelectedIndex >= 0) { OverlayEffectEntranceAnimationTypeEnum entrance = EnumHelper.GetEnumValueFromString <OverlayEffectEntranceAnimationTypeEnum>((string)this.EntranceAnimationComboBox.SelectedItem); OverlayEffectVisibleAnimationTypeEnum visible = EnumHelper.GetEnumValueFromString <OverlayEffectVisibleAnimationTypeEnum>((string)this.VisibleAnimationComboBox.SelectedItem); OverlayEffectExitAnimationTypeEnum exit = EnumHelper.GetEnumValueFromString <OverlayEffectExitAnimationTypeEnum>((string)this.ExitAnimationComboBox.SelectedItem); OverlayItemEffects effect = new OverlayItemEffects(entrance, visible, exit, duration); OverlayItemPosition position = this.ItemPosition.GetPosition(); OverlayItemBase item = null; if (overlayType == OverlayActionTypeEnum.Image) { item = this.ImageItem.GetItem(); } else if (overlayType == OverlayActionTypeEnum.Text) { item = this.TextItem.GetItem(); } else if (overlayType == OverlayActionTypeEnum.YouTube) { item = this.YouTubeItem.GetItem(); } else if (overlayType == OverlayActionTypeEnum.Video) { item = this.VideoItem.GetItem(); } else if (overlayType == OverlayActionTypeEnum.WebPage) { item = this.WebPageItem.GetItem(); } else if (overlayType == OverlayActionTypeEnum.HTML) { item = this.HTMLItem.GetItem(); } if (item != null) { return(new OverlayAction(overlayName, item, position, effect)); } } } } return(null); }
private async Task SendEffectPacket(string type, OverlayItemBase item, OverlayItemPosition position, OverlayItemEffects effects) { JObject jobj = new JObject(); if (effects != null) { jobj.Merge(JObject.FromObject(effects)); } if (position != null) { jobj.Merge(JObject.FromObject(position)); } jobj.Merge(JObject.FromObject(item)); await this.SendPacket(type, jobj); }
public OverlayAction(string overlayName, OverlayItemBase item, OverlayItemPosition position, OverlayItemEffects effects) : this() { this.OverlayName = overlayName; this.Item = item; this.Position = position; this.Effects = effects; }
public async Task SendItem(OverlayItemBase item, OverlayItemPosition position, OverlayItemEffects effects) { if (item is OverlayImageItem) { OverlayImageItem imageItem = (OverlayImageItem)item; this.httpListenerServer.SetLocalFile(imageItem.FileID, imageItem.FilePath); } else if (item is OverlayVideoItem) { OverlayVideoItem videoItem = (OverlayVideoItem)item; this.httpListenerServer.SetLocalFile(videoItem.FileID, videoItem.FilePath); } await this.SendEffectPacket(item.ItemType, item, position, effects); }