summaryrefslogtreecommitdiffstats
path: root/src/target
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-12-23 11:09:35 +0100
committerHarald Welte <laforge@gnumonks.org>2019-05-23 13:03:48 +0200
commitaf91956163e98078ee71f6c713cd969c0995c6b1 (patch)
tree143c8165ff6bc83b28165ca5e20df33e64168927 /src/target
parent510931a1d858e941a3347789272637a111f78c9f (diff)
Add ringer support to L1CTL interface and layer1
Diffstat (limited to 'src/target')
-rw-r--r--src/target/firmware/apps/layer1/main.c2
-rw-r--r--src/target/firmware/layer1/l23_api.c15
2 files changed, 17 insertions, 0 deletions
diff --git a/src/target/firmware/apps/layer1/main.c b/src/target/firmware/apps/layer1/main.c
index 59ffe972..f122de6b 100644
--- a/src/target/firmware/apps/layer1/main.c
+++ b/src/target/firmware/apps/layer1/main.c
@@ -102,6 +102,8 @@ int main(void)
/* initialize SIM */
calypso_sim_init();
+ buzzer_mode_pwt(1);
+
puts("Power up simcard:\n");
memset(atr,0,sizeof(atr));
atrLength = calypso_sim_powerup(atr);
diff --git a/src/target/firmware/layer1/l23_api.c b/src/target/firmware/layer1/l23_api.c
index 5c5e2c71..1c1f0f08 100644
--- a/src/target/firmware/layer1/l23_api.c
+++ b/src/target/firmware/layer1/l23_api.c
@@ -46,6 +46,7 @@
#include <rf/trf6151.h>
#include <calypso/sim.h>
#include <calypso/dsp.h>
+#include <calypso/buzzer.h>
#include <l1ctl_proto.h>
@@ -628,6 +629,17 @@ static void l1ctl_sim_req(struct msgb *msg)
sim_apdu(len, data);
}
+static void l1ctl_ringer_req(struct msgb *msg)
+{
+ struct l1ctl_hdr *l1h = (struct l1ctl_hdr *) msg->data;
+ struct l1ctl_ringer_req *ring_req =
+ (struct l1ctl_ringer_req *) l1h->data;
+
+ printf("Ringtone Request: %u\n", ring_req->volume);
+ buzzer_volume(ring_req->volume);
+ buzzer_note(NOTE(NOTE_C, OCTAVE_4));
+}
+
static struct llist_head l23_rx_queue = LLIST_HEAD_INIT(l23_rx_queue);
/* callback from SERCOMM when L2 sends a message to L1 */
@@ -719,6 +731,9 @@ void l1a_l23_handler(void)
case L1CTL_SIM_REQ:
l1ctl_sim_req(msg);
break;
+ case L1CTL_RINGER_REQ:
+ l1ctl_ringer_req(msg);
+ break;
}
exit_msgbfree: