void LiveVideoClick(ChannelLinkEventArgs evarg) { ReleaseViewModels(RegionNames.reg_property); ContentColumn column = new ContentColumn(); ShowView(column, "LiveVideoClick", RegionNames.reg_property); column.CreateBinding(ContentColumn.TitleProperty, LinkButtonsStrings.instance, x => x.liveVideo); var ctx = CreateActivityContext(RegionNames.reg_property, evarg.session, column); StreamInfoHelper strinfo = new StreamInfoHelper(); strinfo.streamInfo = () => { return(Apm.Iterate(LoadStreamInfoNVT(evarg, strinfo))); }; ctx.RegisterInstance <IStreamInfoHelper>(strinfo); Ctxdisp = ctx; ctx.RegisterInstance <IVideoInfo>(evarg.videoInfo); string videoSourceToken = evarg.token; string profToken = evarg.profile.token; UIdisp = LiveVideoActivity .Run(ctx, profToken, videoSourceToken) .Subscribe(x => { eventAggregator.GetEvent <VideoChangedEvent>().Publish(evarg); }, err => { dbg.Error(err); }); }
void NVAAnalyticsClick(NVALinkEventArgs evarg) { ReleaseViewModels(RegionNames.reg_property); ContentColumn column = new ContentColumn(); ShowView(column, "AnalyticsClick", RegionNames.reg_property); column.CreateBinding(ContentColumn.TitleProperty, LinkButtonsStrings.instance, x => x.analytics); var ctx = CreateActivityContext(RegionNames.reg_property, evarg.session, column); //TODO: Stub fix for #225 Remove this with plugin functionality ILastChangedModule lmodule = new LastChangedModule(); ctx.RegisterInstance <ILastChangedModule>(lmodule); // StreamInfoHelper strinfo = new StreamInfoHelper(); strinfo.streamInfo = () => { return(Apm.Iterate(LoadStreamInfoNVA(evarg, strinfo))); }; ctx.RegisterInstance <IStreamInfoHelper>(strinfo); Ctxdisp = ctx; //ctx.RegisterInstance<IVideoInfo>(evarg.videoInfo); ctx.RegisterInstance <odm.ui.activities.AnalyticsView.AnalyticType>(odm.ui.activities.AnalyticsView.AnalyticType.ALL); //evarg.controlToken string token = null; if (evarg.control != null) { token = evarg.control.engineConfigToken; } UIdisp = AnalyticsActivity .Run(ctx, token) //evarg.profileToken) .Subscribe(x => { //TODO: handle return from activity }, err => { dbg.Error(err); }); }
IEnumerable <FSharpAsync <Unit> > LoadStreamInfoNVA(NVALinkEventArgs args, StreamInfoHelper parent) { StreamInfoArgs strInfoArgs = new StreamInfoArgs(args.session); //strInfoArgs.encoderResolution = new Size(args.profile.VideoEncoderConfiguration.Resolution.Width, args.profile.VideoEncoderConfiguration.Resolution.Height); StreamSetup strsetup = new StreamSetup() { stream = StreamType.rtpUnicast, transport = new Transport() { protocol = AppDefaults.visualSettings.Transport_Type }, }; strInfoArgs.streamSetup = strsetup; yield return(args.session.GetAnalyticsDeviceStreamUri(strsetup, args.control.token).Select(muri => { strInfoArgs.streamUri = muri; parent.args = strInfoArgs; return (Unit)null; })); var inputtoken = ""; try { inputtoken = args.control.inputToken.First(); } catch (Exception err) { dbg.Error(err); } yield return(args.session.GetAnalyticsEngineInput(inputtoken).Select(inp => { strInfoArgs.encoderResolution = new Size(inp.videoInput.resolution.width, inp.videoInput.resolution.height); strInfoArgs.sourceResolution = new Size(inp.videoInput.resolution.width, inp.videoInput.resolution.height); return (Unit)null; })); }
void NVAMetadataClick(NVALinkEventArgs evarg) { ReleaseViewModels(RegionNames.reg_property); ContentColumn column = new ContentColumn(); ShowView(column, "MetadataClick", RegionNames.reg_property); column.CreateBinding(ContentColumn.TitleProperty, LinkButtonsStrings.instance, x => x.nvaMetadata); var ctx = CreateActivityContext(RegionNames.reg_property, evarg.session, column); StreamInfoHelper strinfo = new StreamInfoHelper(); strinfo.streamInfo = () => { return(Apm.Iterate(LoadStreamInfoNVA(evarg, strinfo))); }; ctx.RegisterInstance <IStreamInfoHelper>(strinfo); Ctxdisp = ctx; StreamSetup ssetup = new StreamSetup() { transport = new Transport() { protocol = AppDefaults.visualSettings.Transport_Type } }; //EngineControlsView.Start(new EngineControlsView.Model(null, null), container, column); UIdisp = NvaMetadataSettingsActivity .Run(ctx, evarg.control.token, evarg.control.engineConfigToken, ssetup) .ObserveOnCurrentDispatcher() .Subscribe(x => { }, err => { dbg.Error(err); }); }
IEnumerable <FSharpAsync <Unit> > LoadStreamInfoNVT(ChannelLinkEventArgs args, StreamInfoHelper parent) { StreamInfoArgs strInfoArgs = new StreamInfoArgs(args.session); strInfoArgs.encoderResolution = new Size(args.profile.videoEncoderConfiguration.resolution.width, args.profile.videoEncoderConfiguration.resolution.height); var strsetup = new StreamSetup() { stream = StreamType.rtpUnicast, transport = new Transport() { protocol = AppDefaults.visualSettings.Transport_Type } }; strInfoArgs.streamSetup = strsetup; yield return(args.session.GetStreamUri(strsetup, args.profile.token).Select(muri => { strInfoArgs.streamUri = muri.uri; parent.args = strInfoArgs; return (Unit)null; })); yield return(args.session.GetVideoSourceConfiguration(args.profile.videoSourceConfiguration.token).Select(conf => { if (conf != null && conf.bounds != null) { strInfoArgs.sourceResolution = new Size(conf.bounds.width, conf.bounds.height); } else { strInfoArgs.sourceResolution = new Size(720, 576); } return (Unit)null; })); }