From c7f1ab629086c2d68b9e8c8f2483bf9acca25bd3 Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Mon, 23 Dec 2013 11:09:35 +0100 Subject: Add ringer support to L1CTL interface and layer1 --- src/target/firmware/apps/layer1/main.c | 2 ++ src/target/firmware/layer1/l23_api.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+) (limited to 'src/target') 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 11588032..230e382a 100644 --- a/src/target/firmware/layer1/l23_api.c +++ b/src/target/firmware/layer1/l23_api.c @@ -46,6 +46,7 @@ #include #include #include +#include #include @@ -615,6 +616,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 */ @@ -706,6 +718,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: -- cgit v1.2.3