public RecordingFormatsPanel() { InitializeComponent(); _sampleRecording = Utility.CreateSampleRecording(); WinFormsUtility.ResizeDataGridViewColumnsForCurrentDpi(_formatsDataGridView); _changedFormatIds.Add(Guid.Empty); }
public override void RecordingEnded(Recording recording) { Log.Debug("EventListener: recording ended: {0}", recording.Title); PluginMain.ActiveRecordingsChanged = true; OnRecordingEnded(recording); UpdateRecordings(); }
private void OnPlayRecordingBackEnded(MediaPortal.Player.g_Player.MediaType type, string filename) { if (g_Player.currentFileName == _playingRecordingFileName) { g_Player.Stop(); _playingRecordingFileName = null; _playingRecording = null; Proxies.ControlService.SetRecordingLastWatchedPosition(filename, 0); } }
public static string BuildRecordingBaseFilePath(string format, string sourceDirectory, Recording recording) { string result = Path.Combine(sourceDirectory, BuildRecordingBaseFilePath(format, recording.ChannelDisplayName, recording.ScheduleName, recording.Title, recording.CreateProgramTitle(), recording.SubTitle, recording.EpisodeNumberDisplay, recording.EpisodeNumber, recording.SeriesNumber, recording.ProgramStartTime, recording.Category)); if (result.Length > _maxPath - 1) { result = result.Substring(0, _maxPath - 1); } return result; }
private void OnPlayRecordingBackStopped(MediaPortal.Player.g_Player.MediaType type, int stoptime, string filename) { if (g_Player.currentFileName == _playingRecordingFileName) { _playingRecordingFileName = null; _playingRecording = null; if (stoptime >= g_Player.Duration) { // Temporary workaround before end of stream gets properly implemented. stoptime = 0; } Proxies.ControlService.SetRecordingLastWatchedPosition(filename, stoptime); } }
public static Recording CreateSampleRecording() { Recording sampleRecording = new Recording(); sampleRecording.Title = "The Flintstones"; sampleRecording.SubTitle = "Son of Rockzilla"; sampleRecording.SeriesNumber = 4; sampleRecording.EpisodeNumber = 24; sampleRecording.EpisodeNumberDisplay = "24"; sampleRecording.ProgramStartTime = DateTime.Today.AddHours(16); sampleRecording.ProgramStopTime = sampleRecording.ProgramStartTime.AddMinutes(30); sampleRecording.RecordingStartTime = sampleRecording.ProgramStartTime.AddMinutes(-2); sampleRecording.RecordingStopTime = sampleRecording.ProgramStopTime.AddMinutes(5); sampleRecording.ChannelDisplayName = "BBC1"; sampleRecording.ScheduleName = "Flintstones (Any Time)"; sampleRecording.Category = "Animation"; sampleRecording.Flags |= GuideProgramFlags.StandardAspectRatio; return sampleRecording; }
public override void RecordingStarted(Recording recording) { Log.Debug("EventListener: recording started: {0}", recording.Title); PluginMain.ActiveRecordingsChanged = true; OnrecordingStarted(recording); }
public override void RecordingStarted(Recording recording) { if (_statusForm != null) { _statusForm.OnRecordingStarted(recording); } }
private void _recordingsTreeView_SelectionChanged(object sender, EventArgs e) { List<RecordingSummary> recordings = GetSelectedRecordings(); try { _selectedRecording = (recordings.Count == 1) ? Proxies.ControlService.GetRecordingById(recordings[0].RecordingId).Result : null; } catch (Exception ex) { _selectedRecording = null; MessageBox.Show(this, ex.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error); } if (_selectedRecording != null) { _scheduleNameTextBox.Text = _selectedRecording.ScheduleName; _recStartTextBox.Text = FormatDateWithTime(_selectedRecording.RecordingStartTime, true); _recStopTextBox.Text = _selectedRecording.RecordingStopTime.HasValue ? FormatDateWithTime(_selectedRecording.RecordingStopTime.Value, true) : "Recording..."; _isPartialCheckBox.Checked = _selectedRecording.IsPartialRecording; _descriptionTextBox.Text = _selectedRecording.CreateCombinedDescription(false); _lastWatchedTextBox.Text = _selectedRecording.LastWatchedTime.HasValue ? FormatDateWithTime(_selectedRecording.LastWatchedTime.Value, true) : "Never"; _keepUntilControl.SetKeepUntil(_selectedRecording.KeepUntilMode, _selectedRecording.KeepUntilValue); _keepUntilControl.Enabled = true; _applyKeepButton.Enabled = false; UpdateKeepUntilLabel(_selectedRecording, recordings[0].IsFileOnDisk); } else { ClearDetails(); } }
private void OnRecordingStarted(Recording recording) { PluginMain.ActiveRecordingsChanged = true; GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_NOTIFY_REC, 0, 0, 0, 0, 0, null); msg.Param1 = 1;//started msg.Object = recording; GUIGraphicsContext.SendMessage(msg); msg = null; }
private void BroadcastRecording(AddressList addressList, string title, Recording recording, bool showDescription) { StringBuilder message = new StringBuilder(title); message.Append(" "); message.Append(recording.ProgramStartTime.ToShortTimeString()); message.Append("-"); message.Append(recording.ProgramStopTime.ToShortTimeString()); message.Append(" ("); message.Append(recording.ChannelDisplayName); message.Append(") "); message.Append(recording.CreateProgramTitle()); if (showDescription) { string description = recording.CreateCombinedDescription(false); if (!String.IsNullOrEmpty(description)) { message.Append(Environment.NewLine).Append(Environment.NewLine); message.Append(description); } } if (message.Length >= _maxMessageLength) { message.Length = _maxMessageLength - 4; message.Append("..."); } BroadcastMessageToAddressList(addressList, message.ToString()); }
public void OnRecordingEnded(Recording recording) { RefreshStatusNow(); ShowRecordingBalloon("Recording Ended", recording, false); }
public FoundRecording(Recording recording, bool importRecording) { _recording = recording; _importRecording = importRecording; }
private void EventsListenerService_OnRecordingStarted(Recording recording) { lock (_notificationsLock) { EnsureNotificationContactFilter(); } BroadcastRecording(_notificationContactFilter, "Recording started", recording, true); RefreshBotPersonalMessage(); }
public MoveRecording(string previousRecordingFileName, Recording recording) { _previousRecordingFileName = previousRecordingFileName; _recording = recording; }
public void AddFoundRecording(Recording recording, bool importRecording) { if (importRecording) { foreach (RecordingSummary missingRecording in _missingRecordings) { if (recording.RecordingId == missingRecording.RecordingId) { _missingRecordings.Remove(missingRecording); _moveRecordings.Add(new MoveRecording(missingRecording.RecordingFileName, recording)); return; } } } _foundRecordings.Add(recording); if (importRecording) { _importRecordings.Add(recording); } }
private void ClearDetails() { _selectedRecording = null; _scheduleNameTextBox.Text = String.Empty; _recStartTextBox.Text = String.Empty; _recStopTextBox.Text = String.Empty; _isPartialCheckBox.Checked = false; _descriptionTextBox.Text = String.Empty; _lastWatchedTextBox.Text = String.Empty; _keepUntilTextBox.Text = String.Empty; _applyKeepButton.Enabled = false; _keepUntilControl.ClearKeepUntil(); _keepUntilControl.Enabled = (GetSelectedRecordings().Count > 0); }
private void UpdateKeepUntilLabel(Recording recording, bool isFileOnDisk) { if (isFileOnDisk) { if (recording.KeepUntilMode == KeepUntilMode.NumberOfDays && recording.KeepUntilValue.HasValue) { DateTime keepUntilTime = recording.RecordingStartTime.AddDays(recording.KeepUntilValue.Value); _keepUntilTextBox.Text = FormatDateWithTime(keepUntilTime, true); } else { _keepUntilTextBox.Text = String.Empty; } } else { _keepUntilTextBox.Text = "Recorded file not found ..."; } }
public static void WriteRecordingMetadataFile(string destinationFileName, Recording recording) { try { using (Stream stream = new FileStream(Path.Combine(Path.GetDirectoryName(destinationFileName), Path.GetFileNameWithoutExtension(destinationFileName) + _metaDataExtension), FileMode.Create, FileAccess.ReadWrite, FileShare.Read)) { _recordingSerializer.Serialize(stream, recording); stream.Close(); } } catch { } }
public SettingsPanel() { InitializeComponent(); _sampleRecording = Utility.CreateSampleRecording(); }
private static Recording GetRecordingMetadataFromStream(FileStream stream) { Recording recording = null; bool setUtcTimes = false; if (stream != null) { try { recording = (Recording)RecordingSerializer.Deserialize(stream); setUtcTimes = recording.ProgramStartTimeUtc.Year <= 1900; } catch { try { stream.Position = 0; TvRecording tvRecording = (TvRecording)TvRecordingSerializer.Deserialize(stream); recording = new Recording() { Actors = tvRecording.Actors, Category = tvRecording.Category, ChannelDisplayName = tvRecording.TvChannelDisplayName, ChannelId = tvRecording.TvChannelId, ChannelType = tvRecording.ChannelType, Description = tvRecording.Description, Director = tvRecording.Director, EpisodeNumber = tvRecording.EpisodeNumber, EpisodeNumberDisplay = tvRecording.EpisodeNumberDisplay, EpisodeNumberTotal = tvRecording.EpisodeNumberTotal, EpisodePart = tvRecording.EpisodePart, EpisodePartTotal = tvRecording.EpisodePartTotal, IsPartialRecording = tvRecording.IsPartialRecording, IsPartOfSeries = tvRecording.IsPartOfSeries, IsPremiere = tvRecording.IsPremiere, IsRepeat = tvRecording.IsRepeat, KeepUntilMode = tvRecording.KeepUntilMode, KeepUntilValue = tvRecording.KeepUntilValue, LastWatchedPosition = tvRecording.LastWatchedPosition, LastWatchedTime = tvRecording.LastWatchedTime, ProgramStartTime = tvRecording.ProgramStartTime, ProgramStopTime = tvRecording.ProgramStopTime, Rating = tvRecording.Rating, RecordingId = tvRecording.TvRecordingId, RecordingStartTime = tvRecording.RecordingStartTime, RecordingStopTime = tvRecording.RecordingStopTime, ScheduleId = tvRecording.TvScheduleId, ScheduleName = tvRecording.TvScheduleName, SchedulePriority = tvRecording.SchedulePriority, SeriesNumber = tvRecording.SeriesNumber, StarRating = tvRecording.StarRating, SubTitle = tvRecording.SubTitle, Title = tvRecording.Title }; setUtcTimes = true; } catch { recording = null; } } finally { stream.Close(); stream.Dispose(); } if (setUtcTimes) { recording.ProgramStartTimeUtc = recording.ProgramStartTime.ToUniversalTime(); recording.ProgramStopTimeUtc = recording.ProgramStopTime.ToUniversalTime(); recording.RecordingStartTimeUtc = recording.RecordingStartTime.ToUniversalTime(); if (recording.RecordingStopTime.HasValue) { recording.RecordingStopTimeUtc = recording.RecordingStopTime.Value.ToUniversalTime(); } } } return recording; }
private void ShowRecordingBalloon(string title, Recording recording, bool showDescription) { if (Config.Current.ShowRecordingBalloons) { StringBuilder tipText = new StringBuilder(); tipText.Append(recording.ProgramStartTime.ToShortTimeString()); tipText.Append("-"); tipText.Append(recording.ProgramStopTime.ToShortTimeString()); tipText.Append(" "); tipText.Append(recording.CreateProgramTitle()); if (showDescription) { string description = recording.CreateCombinedDescription(false); if (!String.IsNullOrEmpty(description)) { tipText.Append(Environment.NewLine).Append(Environment.NewLine); tipText.Append(description); } } if (tipText.Length >= _maxTipTextLength) { tipText.Length = _maxTipTextLength - 4; tipText.Append("..."); } _notifyIcon.ShowBalloonTip(Config.Current.BalloonTimeoutSeconds * 1000, title, tipText.ToString(), ToolTipIcon.Info); } }
public override void RecordingStarted(Recording recording) { if (OnRecordingStarted != null) { OnRecordingStarted(recording); } }
public static string BuildRecordingBaseFilePath(string format, Recording recording) { return BuildRecordingBaseFilePath(format, String.Empty, recording); }
private void OnRecordingEnded(Recording recording) { lock (_notificationsLock) { EnsureNotificationContactFilter(); } BroadcastRecording(_notificationContactFilter, "Recording ended", recording, false); RefreshBotPersonalMessage(); }
/// <summary> /// Gets the title and year from a recording title /// Title should be in the form 'title (year)' or 'title [year]' /// </summary> private void GetTitleAndYear(Recording info, out string title, out string year) { Match regMatch = Regex.Match(info.Title, @"^(?<title>.+?)(?:\s*[\(\[](?<year>\d{4})[\]\)])?$"); title = regMatch.Groups["title"].Value; year = regMatch.Groups["year"].Value; }
private void OnRecordingEnded(Recording recording) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_NOTIFY_REC, 0, 0, 0, 0, 0, null); msg.Param1 = 0;//ended msg.Object = recording; GUIGraphicsContext.SendMessage(msg); msg = null; }
public MovedRecording(Recording recording) { _recording = recording; }
public void OnRecordingStarted(Recording recording) { SetStatusIcon(ServerStatus.Recording); ShowRecordingBalloon("Recording Started", recording, true); }
/// <summary> /// Import a new recording into the system. A new RecordingId will be auto-generated, /// so this can be left Guid.Empty. If ScheduleId and ChannelId are not known, you may /// generate your own (new unique) Guid and pass that in. /// </summary> /// <param name="recording">The recording to import.</param> /// <returns>True if the recording was imported succesfully, false if the recording filename was already imported.</returns> public async Task<bool> ImportRecording(Recording recording) { var request = NewRequest(HttpMethod.Post, "ImportNewRecording"); request.AddBody(recording); var result = await ExecuteAsync<BooleanResult>(request).ConfigureAwait(false); return result.Result; }
public void OnRecordingEnded(Recording recording) { ShowRecordingBalloon("Recording Ended", recording, false); OnActiveRecordingsChanged(); }
public virtual void RecordingStarted(Recording recording) { }