Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 5:8e468fef2754
- Parent:
- 4:3041a571b7a7
- Child:
- 6:c454f88524d6
--- a/main.cpp Tue Jan 05 22:10:16 2016 +0000 +++ b/main.cpp Mon Jan 11 20:49:59 2016 +0000 @@ -13,6 +13,100 @@ Serial pc(USBTX, USBRX); // tx, rx +void handle_pc_input() { + //Debug connection to PC + if(pc.readable()) { + switch (pc.getc()) { + case 'p': + if(rn52.toggle_play()) { + printf("play/pause\r\n"); + } + break; + case 'v': + printf("volume up\r\n"); + rn52.maxvolume(); + break; + case 'n': + printf("next track\r\n"); + rn52.next_track(); + break; + case 'q': + printf("getting status\r\n"); + rn52.get(RN52_GETSTATUS, &res); + printf("%s", res.response); + break; + case 't': + rn52.get(RN52_CALLER_ID, &res); + printf("%s", res.response); + break; + } + } +} + +void handle_cdc_input() { + switch (cdc.get_cmd()) { + case IBUS_OTHER_MESSAGE: + break; + case IBUS_DOORS_LOCKED: + //Goto sleep + break; + case IBUS_DOORS_UNLOCKED: + //wake up + break; + case IBUS_NEXT: + rn52.toggle_play(); + break; + case IBUS_CDC_ON: + rn52.connect(); + break; + case IBUS_CDC_OFF: + rn52.disconnect(); + break; + case IBUS_VOLUME_UP: + break; + case IBUS_VOLUME_DOWN: + break; + case IBUS_SKIP_FW: + rn52.next_track(); + break; + case IBUS_SKIP_BW: + rn52.prev_track(); + break; + case IBUS_SET: + rn52.connect(); + break; + case IBUS_CLEAR: + break; + } +} + +void handle_bt_input() { + if(rn52.check_event(&res)) { + switch (res.event) { + case RN52_CALLER_ID_EVENT: + break; + case RN52_TRACK_CHANGE_EVENT: + cdc.reset_elapsed_time(); + break; + case RN52_NO_EVENT: //no specific event occured, check connection status + switch(res.connection) { + case RN52_CONNECTED: + cdc.display("BT ANSLUTEN"); + rn52.maxvolume(); + break; + case RN52_AUDIO_STREAMING: + cdc.display("BT SPELAR"); + cdc.start_elapsed_time(); + break; + } + if(res.connection != RN52_AUDIO_STREAMING) { + cdc.stop_elapsed_time(); + cdc.reset_elapsed_time(); + } + } + } +} + int main() { printf("Petters BT CDC-emulator\r\n"); printf("Initializing\r\n"); @@ -20,95 +114,8 @@ rn52.init(); printf("Starting loop\r\n"); while(1) { - //Debug connection to PC - if(pc.readable()) { - switch (pc.getc()) { - case 'p': - if(rn52.set(RN52_PLAYPAUSE)) { - printf("play/pause\r\n"); - } - break; - case 'v': - printf("volume up\r\n"); - rn52.set(RN52_VOLUMEUP); - break; - case 'n': - printf("next track\r\n"); - rn52.set(RN52_NEXTTRACK); - break; - case 'q': - printf("getting status\r\n"); - rn52.get(RN52_GETSTATUS, &res); - printf("%s", res.response); - break; - case 't': - rn52.get(RN52_CALLER_ID, &res); - printf("%s", res.response); - break; - } - } - switch (cdc.get_cmd()) { - case IBUS_OTHER_MESSAGE: - break; - case IBUS_DOORS_LOCKED: - //Goto sleep - break; - case IBUS_DOORS_UNLOCKED: - //wake up - break; - case IBUS_NEXT: - cdc.display("NEXT"); - rn52.set(RN52_PLAYPAUSE); - break; - case IBUS_CDC_ON: - cdc.display("CDC ON"); - break; - case IBUS_CDC_OFF: - cdc.display("CDC OFF"); - break; - case IBUS_VOLUME_UP: - cdc.display("VOLUME UP"); - rn52.set(RN52_VOLUMEUP); - break; - case IBUS_VOLUME_DOWN: - cdc.display("VOLUME DOWN"); - break; - case IBUS_SKIP_FW: - cdc.display("SKIP FW"); - rn52.set(RN52_NEXTTRACK); - break; - case IBUS_SKIP_BW: - cdc.display("SKIP BW"); - rn52.set(RN52_PREVTRACK); - break; - case IBUS_SET: - cdc.display("SET"); - rn52.set(RN52_CONNECT); - break; - case IBUS_CLEAR: - cdc.display("CLEAR"); - rn52.set(RN52_DISCONNECT); - break; - } - if(rn52.check_event(&res)) { - switch (res.event) { - case RN52_CALLER_ID_EVENT: - break; - case RN52_TRACK_CHANGE_EVENT: - cdc.reset_elapsed_time(); - break; - case RN52_NO_EVENT: //no event occured, check connection status - if(res.connection == RN52_AUDIO_STREAMING) { - cdc.display("BT SPELAR"); - cdc.start_elapsed_time(); - } - else { - cdc.stop_elapsed_time(); - cdc.reset_elapsed_time(); - } - - } - - } + handle_pc_input(); + handle_cdc_input(); + handle_bt_input(); } } \ No newline at end of file