public override void SetItem(OverlayItemModelBase item) { if (item != null) { this.viewModel = new OverlayWebPageItemViewModel((OverlayWebPageItemModel)item); } }
public async Task ShowItem(OverlayItemModelBase item, UserViewModel user, IEnumerable <string> arguments, Dictionary <string, string> extraSpecialIdentifiers) { if (item != null) { try { JObject jobj = await item.GetProcessedItem(user, arguments, extraSpecialIdentifiers); if (jobj != null) { if (item is OverlayImageItemModel || item is OverlayVideoItemModel) { OverlayFileItemModelBase fileItem = (OverlayFileItemModelBase)item; string filePath = jobj["FilePath"].ToString(); this.SetLocalFile(fileItem.FileID, filePath); jobj["FullLink"] = fileItem.GetFileFullLink(fileItem.FileID, fileItem.FileType, filePath); } else if (item is OverlaySparkCrystalItemModel) { OverlaySparkCrystalItemModel sparkCrystalItem = (OverlaySparkCrystalItemModel)item; if (!string.IsNullOrEmpty(sparkCrystalItem.CustomImageFilePath)) { this.SetLocalFile(sparkCrystalItem.ID.ToString(), jobj["CustomImageFilePath"].ToString()); } } await this.SendPacket("Show", jobj); } } catch (Exception ex) { Logger.Log(ex); } } }
private static async Task Version35Upgrade(int version, string filePath) { if (version < 35) { DesktopChannelSettings settings = await SerializerHelper.DeserializeFromFile <DesktopChannelSettings>(filePath); await ChannelSession.Services.Settings.Initialize(settings); foreach (CommandBase command in GetAllCommands(settings)) { StoreCommandUpgrader.RestructureNewerOverlayActions(command.Actions); } #pragma warning disable CS0612 // Type or member is obsolete foreach (OverlayWidget widget in settings.overlayWidgetsInternal) { OverlayItemModelBase newItem = StoreCommandUpgrader.ConvertOverlayItem(widget.Item); newItem.ID = widget.Item.ID; newItem.Position = new OverlayItemPositionModel((OverlayItemPositionType)widget.Position.PositionType, widget.Position.Horizontal, widget.Position.Vertical, 0); OverlayWidgetModel newWidget = new OverlayWidgetModel(widget.Name, widget.OverlayName, newItem, 0); settings.OverlayWidgets.Add(newWidget); if (newWidget.SupportsRefreshUpdating && !widget.DontRefresh) { newWidget.RefreshTime = settings.OverlayWidgetRefreshTime; } } settings.overlayWidgetsInternal.Clear(); #pragma warning restore CS0612 // Type or member is obsolete await ChannelSession.Services.Settings.Save(settings); } }
public override Task <Result> Validate() { if (this.SelectedActionType == OverlayActionTypeEnum.ShowHideWidget) { if (this.SelectedWidget == null) { return(Task.FromResult(new Result(MixItUp.Base.Resources.OverlayActionMissingWidget))); } } else { if (this.ItemDuration <= 0) { return(Task.FromResult(new Result(MixItUp.Base.Resources.OverlayActionDurationInvalid))); } if (this.SelectedItemViewModel == null) { return(Task.FromResult(new Result(MixItUp.Base.Resources.OverlayActionItemInvalid))); } OverlayItemModelBase overlayItem = this.SelectedItemViewModel.GetOverlayItem(); if (overlayItem == null) { return(Task.FromResult(new Result(MixItUp.Base.Resources.OverlayActionItemInvalid))); } } return(Task.FromResult(new Result())); }
private async void SaveButton_Click(object sender, RoutedEventArgs e) { await this.RunAsyncOperation((System.Func <Task>)(async() => { if (await this.viewModel.Validate()) { OverlayItemPositionModel position = this.ItemPosition.GetPosition(); if (position == null) { await DialogHelper.ShowMessage("A valid position for this overlay widget must be selected"); return; } OverlayItemModelBase overlayItem = overlayTypeEditor.GetItem(); if (overlayItem == null) { await DialogHelper.ShowMessage("There are missing details for the overlay item"); return; } overlayItem.Position = position; OverlayWidgetModel widget = new OverlayWidgetModel(this.viewModel.Name, this.viewModel.SelectedOverlayEndpoint, overlayItem, (int)this.viewModel.RefreshTime); if (this.viewModel.OverlayWidget != null) { await this.viewModel.OverlayWidget.Disable(); ChannelSession.Settings.OverlayWidgets.Remove(this.viewModel.OverlayWidget); overlayItem.ID = this.viewModel.OverlayWidget.Item.ID; } ChannelSession.Settings.OverlayWidgets.Add(widget); this.Close(); } })); }
public OverlayActionModel(string overlayName, OverlayItemModelBase overlayItem) : base(ActionTypeEnum.Overlay) { var overlays = ChannelSession.Services.Overlay.GetOverlayNames(); if (overlays.Contains(overlayName)) { this.OverlayName = overlayName; } else { this.OverlayName = ChannelSession.Services.Overlay.DefaultOverlayName; } this.OverlayItem = overlayItem; }
protected override Task <ActionModelBase> GetActionInternal() { if (this.SelectedActionType == OverlayActionTypeEnum.ShowHideWidget) { return(Task.FromResult <ActionModelBase>(new OverlayActionModel(this.SelectedWidget.Item.ID, this.WidgetVisible))); } else { OverlayItemModelBase overlayItem = this.SelectedItemViewModel.GetOverlayItem(); if (overlayItem != null) { overlayItem.Position = this.ItemPosition.GetPosition(); overlayItem.Effects = new OverlayItemEffectsModel(this.SelectedEntranceAnimation, this.SelectedVisibleAnimation, this.SelectedExitAnimation, this.ItemDuration); return(Task.FromResult <ActionModelBase>(new OverlayActionModel(this.SelectedOverlayEndpoint, overlayItem))); } } return(Task.FromResult <ActionModelBase>(null)); }
public async Task UpdateItem(OverlayItemModelBase item, CommandParametersModel parameters) { if (item != null) { try { JObject jobj = await item.GetProcessedItem(parameters); if (jobj != null) { await this.SendPacket("Update", jobj); } } catch (Exception ex) { Logger.Log(ex); } } }
public async Task UpdateItem(OverlayItemModelBase item, UserViewModel user, IEnumerable <string> arguments, Dictionary <string, string> extraSpecialIdentifiers, StreamingPlatformTypeEnum platform) { if (item != null) { try { JObject jobj = await item.GetProcessedItem(user, arguments, extraSpecialIdentifiers, platform); if (jobj != null) { await this.SendPacket("Update", jobj); } } catch (Exception ex) { Logger.Log(ex); } } }
private async void SaveButton_Click(object sender, RoutedEventArgs e) { await this.RunAsyncOperation((System.Func <Task>)(async() => { if (await this.viewModel.Validate()) { OverlayItemPositionModel position = this.position.GetPosition(); if (position == null) { await DialogHelper.ShowMessage(MixItUp.Base.Resources.InvalidPosition); return; } OverlayItemModelBase overlayItem = overlayTypeEditor.GetItem(); if (overlayItem == null) { await DialogHelper.ShowMessage(MixItUp.Base.Resources.OverlayMissingDetails); return; } overlayItem.Position = position; OverlayWidgetModel widget = new OverlayWidgetModel(this.viewModel.Name, this.viewModel.SelectedOverlayEndpoint, overlayItem, (int)this.viewModel.RefreshTime); if (this.viewModel.OverlayWidget != null) { await this.viewModel.OverlayWidget.Disable(); ChannelSession.Settings.OverlayWidgets.Remove(this.viewModel.OverlayWidget); overlayItem.ID = this.viewModel.OverlayWidget.Item.ID; } if (widget.Item is OverlayEndCreditsItemModel) { widget.IsEnabled = false; } ChannelSession.Settings.OverlayWidgets.Add(widget); this.Close(); } })); }
public async Task ShowItem(OverlayItemModelBase item, UserViewModel user, IEnumerable <string> arguments, Dictionary <string, string> extraSpecialIdentifiers, StreamingPlatformTypeEnum platform) { if (item != null) { try { JObject jobj = await item.GetProcessedItem(user, arguments, extraSpecialIdentifiers, platform); if (jobj != null) { if (item is OverlayImageItemModel || item is OverlayVideoItemModel || item is OverlaySoundItemModel) { this.SetLocalFile(jobj["FileID"].ToString(), jobj["FilePath"].ToString()); jobj["FullLink"] = OverlayItemModelBase.GetFileFullLink(jobj["FileID"].ToString(), jobj["FileType"].ToString(), jobj["FilePath"].ToString()); } await this.SendPacket("Show", jobj); } } catch (Exception ex) { Logger.Log(ex); } } }
public async Task UpdateItem(OverlayItemModelBase item, CommandParametersModel parameters) { if (item != null) { try { JObject jobj = await item.GetProcessedItem(parameters); if (jobj != null) { if (item is OverlayImageItemModel || item is OverlayVideoItemModel || item is OverlaySoundItemModel) { this.SetLocalFile(jobj["FileID"].ToString(), jobj["FilePath"].ToString()); jobj["FullLink"] = OverlayItemModelBase.GetFileFullLink(jobj["FileID"].ToString(), jobj["FileType"].ToString(), jobj["FilePath"].ToString()); } await this.SendPacket("Update", jobj); } } catch (Exception ex) { Logger.Log(ex); } } }
public async Task HideItem(OverlayItemModelBase item) { await this.SendPacket("Hide", JObject.FromObject(item)); }
public OverlayAction(string overlayName, OverlayItemModelBase overlayItem) : this() { this.OverlayName = overlayName; this.OverlayItem = overlayItem; }
public virtual void SetItem(OverlayItemModelBase item) { }
public override ActionBase GetAction() { string type = (string)this.TypeComboBox.SelectedItem; if (!string.IsNullOrEmpty(type)) { if (type.Equals(ShowHideWidgetOption)) { if (this.WidgetNameComboBox.SelectedIndex >= 0) { OverlayWidgetModel widget = (OverlayWidgetModel)this.WidgetNameComboBox.SelectedItem; return(new OverlayAction(widget.Item.ID, this.ShowHideWidgetCheckBox.IsChecked.GetValueOrDefault())); } } else { OverlayItemModelTypeEnum overlayType = EnumHelper.GetEnumValueFromString <OverlayItemModelTypeEnum>(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) { OverlayItemEffectEntranceAnimationTypeEnum entrance = EnumHelper.GetEnumValueFromString <OverlayItemEffectEntranceAnimationTypeEnum>((string)this.EntranceAnimationComboBox.SelectedItem); OverlayItemEffectVisibleAnimationTypeEnum visible = EnumHelper.GetEnumValueFromString <OverlayItemEffectVisibleAnimationTypeEnum>((string)this.VisibleAnimationComboBox.SelectedItem); OverlayItemEffectExitAnimationTypeEnum exit = EnumHelper.GetEnumValueFromString <OverlayItemEffectExitAnimationTypeEnum>((string)this.ExitAnimationComboBox.SelectedItem); OverlayItemEffectsModel effects = new OverlayItemEffectsModel(entrance, visible, exit, duration); OverlayItemPositionModel position = this.ItemPosition.GetPosition(); OverlayItemModelBase item = null; if (overlayType == OverlayItemModelTypeEnum.Image) { item = this.ImageItem.GetItem(); } else if (overlayType == OverlayItemModelTypeEnum.Text) { item = this.TextItem.GetItem(); } else if (overlayType == OverlayItemModelTypeEnum.YouTube) { item = this.YouTubeItem.GetItem(); } else if (overlayType == OverlayItemModelTypeEnum.Video) { item = this.VideoItem.GetItem(); } else if (overlayType == OverlayItemModelTypeEnum.WebPage) { item = this.WebPageItem.GetItem(); } else if (overlayType == OverlayItemModelTypeEnum.HTML) { item = this.HTMLItem.GetItem(); } if (item != null) { item.Position = position; item.Effects = effects; return(new OverlayAction(overlayName, item)); } } } } return(null); }
public OverlayActionModel(string overlayName, OverlayItemModelBase overlayItem) : base(ActionTypeEnum.Overlay) { this.OverlayName = overlayName; this.OverlayItem = overlayItem; }