/** {@inheritDoc} */ @MethodLog public StorageData startOrScheduleRecording( StorageData storageData, RecordingProperties recordingProperties) throws StorageException { if ((storageManager.getRecordingState() == RecordingState.ON || storageManager.getRecordingState() == RecordingState.SCHEDULED) && !storageData.equals(storageManager.getRecordingStorage())) { throw new StorageException( "Recording is already active/scheduled with different storage. Only one storage at time can be chosen as recording destination."); } else if (storageManager.getRecordingState() == RecordingState.ON || storageManager.getRecordingState() == RecordingState.SCHEDULED) { throw new StorageException("Recording is already active/scheduled with selected storage."); } else { try { storageManager.startOrScheduleRecording(storageData, recordingProperties); return storageManager.getRecordingStorage(); } catch (IOException | SerializationException e) { throw new StorageException( "Exception occurred trying to start recording on storage " + storageData + ".", e); } } }
/** {@inheritDoc} */ @MethodLog @Override public RecordingData getRecordingData() { if (storageManager.getRecordingState() == RecordingState.ON || storageManager.getRecordingState() == RecordingState.SCHEDULED) { RecordingData recordingData = new RecordingData(); RecordingProperties recordingProperties = storageManager.getRecordingProperties(); if (null != recordingProperties) { recordingData.setRecordStartDate(recordingProperties.getRecordStartDate()); recordingData.setRecordEndDate(recordingProperties.getRecordEndDate()); } recordingData.setRecordingStorage(storageManager.getRecordingStorage()); recordingData.setRecordingWritingStatus(storageManager.getRecordingStatus()); return recordingData; } else { return null; } }