private readonly DllImports.GetSeekPreviewStoryboardDelegate _getSeekPreviewStoryboardDelegate = GetSeekPreviewStoryboardDataDelegate; // so it's not GC-ed while used in native code public DllImports.GetTilePreviewStoryboardDelegate AddTile(int tileId) { if (ResourceLoader.GetInstance().ContentList[tileId].TilePreviewPath != null) { _tilePreviewPath.Add(tileId, ResourceLoader.GetInstance().ContentList[tileId].TilePreviewPath); } return(_getTilePreviewStoryboardDelegate); }
getStoryboardDataDelegate = GetStoryboardData; // so it's not GC-ed while used in native code public DllImports.GetStoryboardDataDelegate AddTile(int tileId) { if (ResourceLoader.GetInstance().ContentList[tileId].TilePreviewPath != null) { storyboardReaders.Add(tileId, new StoryboardReader(ResourceLoader.GetInstance().ContentList[tileId].TilePreviewPath, StoryboardReader.PreloadingStrategy.PreloadOnlyRemoteSources)); } return(getStoryboardDataDelegate); }
private void InitMenu() { SetLoaderLogo(Path.Combine(Current.DirectoryInfo.SharedResource, "JuvoPlayerOpenGLNativeTizenTV.png")); _resourceLoader = ResourceLoader.GetInstance(); _resourceLoader.LoadResources( Path.GetDirectoryName(Path.GetDirectoryName(Current.ApplicationInfo.ExecutablePath)), HandleLoadingFinished); _metricsHandler = new MetricsHandler(); SetMetrics(); SetMenuFooter(); SetupOptionsMenu(); SetDefaultMenuState(); }
private DllImports.StoryboardData GetStoryboardDataImpl(long position, int tileId) { const float tilePreviewTimeScale = 10.0f / 3.0f; if (tileId != _tilePreviewReaderId) { _tilePreviewReaderId = tileId; _tilePreviewReader?.Dispose(); if (_tilePreviewPath.ContainsKey(tileId)) { _tilePreviewReader = new StoryboardReader( ResourceLoader.GetInstance().ContentList[tileId].TilePreviewPath, StoryboardReader.PreloadingStrategy.PreloadOnlyRemoteSources); } else { _tilePreviewReader = null; return(GetStoryboardData()); } } if (!_tilePreviewReader.LoadTask.IsCompletedSuccessfully) { return(GetStoryboardData(1)); } var subSkBitmap = _tilePreviewReader.GetFrame(TimeSpan.FromMilliseconds(position) * tilePreviewTimeScale); if (subSkBitmap == null) { return(GetStoryboardData(1, 1, 0, new DllImports.SubBitmap(), (long)(_tilePreviewReader.Duration().TotalMilliseconds / tilePreviewTimeScale))); } return(GetStoryboardData(1, 1, 1, GetFrame(subSkBitmap), (long)(_tilePreviewReader.Duration().TotalMilliseconds / tilePreviewTimeScale))); }