Home | History | Annotate | Download | only in recorder

Lines Matching refs:schedule

148             public RecordingTask createRecordingTask(ScheduledRecording schedule, Channel channel,
151 return new RecordingTask(mContext, schedule, channel, mDvrManager, mSessionManager,
161 public void addSchedule(ScheduledRecording schedule) {
162 mHandler.sendMessage(mHandler.obtainMessage(MSG_ADD_SCHEDULED_RECORDING, schedule));
166 void handleAddSchedule(ScheduledRecording schedule) {
167 if (mPendingRecordings.get(schedule.getId()) != null
168 || mWaitingSchedules.containsKey(schedule.getId())) {
171 mWaitingSchedules.put(schedule.getId(), schedule);
179 public void removeSchedule(ScheduledRecording schedule) {
180 mHandler.sendMessage(mHandler.obtainMessage(MSG_REMOVE_SCHEDULED_RECORDING, schedule));
184 void handleRemoveSchedule(ScheduledRecording schedule) {
185 HandlerWrapper wrapper = mPendingRecordings.get(schedule.getId());
190 if (mWaitingSchedules.containsKey(schedule.getId())) {
191 mWaitingSchedules.remove(schedule.getId());
200 public void updateSchedule(ScheduledRecording schedule) {
201 mHandler.sendMessage(mHandler.obtainMessage(MSG_UPDATE_SCHEDULED_RECORDING, schedule));
205 void handleUpdateSchedule(ScheduledRecording schedule) {
206 HandlerWrapper wrapper = mPendingRecordings.get(schedule.getId());
208 if (schedule.getStartTimeMs() > mClock.currentTimeMillis()
209 && schedule.getStartTimeMs() > wrapper.mTask.getStartTimeMs()) {
214 mWaitingSchedules.put(schedule.getId(), schedule);
217 wrapper.sendMessage(wrapper.obtainMessage(RecordingTask.MSG_UDPATE_SCHEDULE, schedule));
220 if (mWaitingSchedules.containsKey(schedule.getId())) {
221 mWaitingSchedules.put(schedule.getId(), schedule);
262 ScheduledRecording schedule = iter.next();
263 if (schedule.getEndTimeMs() - currentTimeMs
264 <= MIN_REMAIN_DURATION_PERCENT * schedule.getDuration()) {
265 fail(schedule);
274 for (ScheduledRecording schedule : mWaitingSchedules.values()) {
275 if (schedule.getState() != ScheduledRecording.STATE_RECORDING_CANCELED
276 && schedule.getStartTimeMs() - RecordingTask.RECORDING_EARLY_START_OFFSET_MS
277 <= currentTimeMs && schedule.getEndTimeMs() > currentTimeMs) {
278 schedulesToStart.add(schedule);
282 // 1. The schedule which starts early. It can be replaced later when the schedule with the
284 // 2. The schedule with the higher priority. It can be replaced later when the schedule with
286 // 3. The schedule which was created recently.
292 for (ScheduledRecording schedule : schedulesToStart) {
293 if (hasTaskWhichFinishEarlier(schedule)) {
294 // If there is a schedule which finishes earlier than the new schedule, rebuild the
300 createRecordingTask(schedule).start();
301 mWaitingSchedules.remove(schedule.getId());
304 RecordingTask task = getReplacableTask(schedule);
317 for (ScheduledRecording schedule : mWaitingSchedules.values()) {
319 if (schedulesToStart.contains(schedule)) {
320 if (earliest > schedule.getEndTimeMs()) {
321 earliest = schedule.getEndTimeMs();
324 if (earliest > schedule.getStartTimeMs()
326 earliest = schedule.getStartTimeMs()
334 private RecordingTask createRecordingTask(ScheduledRecording schedule) {
335 Channel channel = mChannelDataManager.getChannel(schedule.getChannelId());
336 RecordingTask recordingTask = mRecordingTaskFactory.createRecordingTask(schedule, channel,
338 HandlerWrapper handlerWrapper = new HandlerWrapper(mLooper, schedule, recordingTask);
339 mPendingRecordings.put(schedule.getId(), handlerWrapper);
343 private boolean hasTaskWhichFinishEarlier(ScheduledRecording schedule) {
347 if (task.getEndTimeMs() <= schedule.getStartTimeMs()) {
354 private RecordingTask getReplacableTask(ScheduledRecording schedule) {
358 // 3. If 1) and 2) are the same, the early created schedule is returned.
363 if (schedule.getPriority() > task.getPriority()) {
372 private void fail(ScheduledRecording schedule) {
378 mDataManager.getScheduledRecording(schedule.getId());
380 // The schedule should be updated based on the object from DataManager in case