Ejemplo n.º 1
0
 public RecordingFormatsPanel()
 {
     InitializeComponent();
     _sampleRecording = Utility.CreateSampleRecording();
     WinFormsUtility.ResizeDataGridViewColumnsForCurrentDpi(_formatsDataGridView);
     _changedFormatIds.Add(Guid.Empty);
 }
Ejemplo n.º 2
0
 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);
            }
        }
Ejemplo n.º 4
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);
            }
        }
Ejemplo n.º 6
0
 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;
 }
Ejemplo n.º 7
0
 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);
     }
 }
Ejemplo n.º 9
0
        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();
            }
		}
Ejemplo n.º 10
0
 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;
 }
Ejemplo n.º 11
0
 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());
 }
Ejemplo n.º 12
0
 public void OnRecordingEnded(Recording recording)
 {
     RefreshStatusNow();
     ShowRecordingBalloon("Recording Ended", recording, false);
 }
Ejemplo n.º 13
0
 public FoundRecording(Recording recording, bool importRecording)
 {
     _recording = recording;
     _importRecording = importRecording;
 }
Ejemplo n.º 14
0
 private void EventsListenerService_OnRecordingStarted(Recording recording)
 {
     lock (_notificationsLock)
     {
         EnsureNotificationContactFilter();
     }
     BroadcastRecording(_notificationContactFilter, "Recording started", recording, true);
     RefreshBotPersonalMessage();
 }
Ejemplo n.º 15
0
 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);
     }
 }
Ejemplo n.º 17
0
		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);
        }
Ejemplo n.º 18
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 ...";
     }
 }
Ejemplo n.º 19
0
 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 { }
 }
Ejemplo n.º 20
0
 public SettingsPanel()
 {
     InitializeComponent();
     _sampleRecording = Utility.CreateSampleRecording();
 }
Ejemplo n.º 21
0
        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;
        }
Ejemplo n.º 22
0
 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);
     }
 }
Ejemplo n.º 24
0
 public static string BuildRecordingBaseFilePath(string format, Recording recording)
 {
     return BuildRecordingBaseFilePath(format, String.Empty, recording);
 }
Ejemplo n.º 25
0
 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;
 }
Ejemplo n.º 27
0
 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;
 }
Ejemplo n.º 28
0
 public MovedRecording(Recording recording)
 {
     _recording = recording;
 }
Ejemplo n.º 29
0
 public void OnRecordingStarted(Recording recording)
 {
     SetStatusIcon(ServerStatus.Recording);
     ShowRecordingBalloon("Recording Started", recording, true);
 }
Ejemplo n.º 30
0
 /// <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;
 }
Ejemplo n.º 31
0
 public void OnRecordingEnded(Recording recording)
 {
     ShowRecordingBalloon("Recording Ended", recording, false);
     OnActiveRecordingsChanged();
 }
 public virtual void RecordingStarted(Recording recording)
 {
 }