1 package org.rpi.plugin.alarmclock;
2
3 import org.apache.log4j.Logger;
4 import org.quartz.Job;
5 import org.quartz.JobDataMap;
6 import org.quartz.JobDetail;
7 import org.quartz.JobExecutionContext;
8 import org.quartz.JobExecutionException;
9 import org.rpi.player.PlayManager;
10
11 public class AlarmClockJob implements Job {
12
13 private static Logger log = Logger.getLogger(AlarmClockJob.class);
14
15 @Override
16 public void execute(JobExecutionContext context)
17 throws JobExecutionException {
18 String job_name = "DefaultJob";
19 String volume = "100";
20 String shuffle = "false";
21 JobDataMap map = context.getJobDetail().getJobDataMap();
22
23 if (map.containsKey("id")) {
24 try {
25 job_name = (String) map.get("id");
26 } catch (Exception e) {
27
28 }
29 }
30
31 if (map.containsKey("Volume")) {
32 volume = map.getString("Volume");
33 log.debug("Volume is: " + volume);
34
35 }
36
37 try {
38 PlayManager.getInstance().setVolume(Long.parseLong(volume));
39 } catch (Exception e) {
40
41 }
42
43 if (map.containsKey("Shuffle")) {
44 shuffle = map.getString("Shuffle");
45 }
46
47 String type = "PlayList";
48
49 if (map.containsKey("type")) {
50 type = map.getString("type");
51 }
52
53 if (type.equalsIgnoreCase("Radio")) {
54 log.info("ALARM# Playing Radio " + job_name);
55 String channel = map.getString("channel");
56 PlayManager.getInstance().setStandby(false);
57 PlayManager.getInstance().playRadio(channel);
58 } else if (type.equalsIgnoreCase("OFF")) {
59 log.info("ALARM# TURN OFF " + job_name);
60 PlayManager.getInstance().stop();
61 PlayManager.getInstance().setStandby(true);
62 } else {
63 log.info("ALARM# StartPlayList " + job_name);
64 if (shuffle.equalsIgnoreCase("TRUE")) {
65 PlayManager.getInstance().updateShuffle(true);
66 } else {
67 PlayManager.getInstance().updateShuffle(false);
68 }
69 PlayManager.getInstance().setStandby(false);
70 PlayManager.getInstance().playIndex(0);
71 }
72 }
73 }