Petter Bellander / Mbed 2 deprecated Saab-BT

Dependencies:   mbed

Committer:
petter
Date:
Thu Jan 14 22:20:38 2016 +0000
Revision:
7:2df2c6e8c0df
Parent:
6:c454f88524d6
Child:
8:beb6c399490a
Improved handling of RN52 track metadata

Who changed what in which revision?

UserRevisionLine numberNew contents of line
petter 0:6cf6e566c0da 1 #ifndef RN52_H
petter 0:6cf6e566c0da 2 #define RN52_H
petter 0:6cf6e566c0da 3
petter 0:6cf6e566c0da 4 typedef enum
petter 0:6cf6e566c0da 5 {
petter 0:6cf6e566c0da 6 RN52_REBOOT,
petter 0:6cf6e566c0da 7 RN52_GETSTATUS,
petter 0:6cf6e566c0da 8 RN52_ASSISTANT,
petter 0:6cf6e566c0da 9 RN52_CALLER_ID,
petter 0:6cf6e566c0da 10 RN52_TRACK_METADATA,
petter 0:6cf6e566c0da 11
petter 0:6cf6e566c0da 12 RN52_COMMAND_LAST
petter 0:6cf6e566c0da 13
petter 0:6cf6e566c0da 14 } RN52_COMMAND;
petter 0:6cf6e566c0da 15
petter 0:6cf6e566c0da 16
petter 0:6cf6e566c0da 17 typedef enum
petter 0:6cf6e566c0da 18 {
petter 0:6cf6e566c0da 19 RN52_LIMBO,
petter 0:6cf6e566c0da 20 RN52_CONNECTABLE,
petter 0:6cf6e566c0da 21 RN52_CONNECTABLE_DISCOVERABLE,
petter 0:6cf6e566c0da 22 RN52_CONNECTED,
petter 0:6cf6e566c0da 23 RN52_OUTGOING_CALL,
petter 0:6cf6e566c0da 24 RN52_INCOMING_CALL,
petter 0:6cf6e566c0da 25 RN52_ACTIVE_CALL,
petter 0:6cf6e566c0da 26 RN52_TEST_MODE,
petter 0:6cf6e566c0da 27 RN52_THREE_WAY_CALL_WAITING,
petter 0:6cf6e566c0da 28 RN52_THREE_WAY_CALL_ON_HOLD,
petter 0:6cf6e566c0da 29 RN52_THREE_WAY_CALL_MULTI_CALL,
petter 2:10c60edc8573 30 RN52_INCOMING_CALL_ON_HOLD,
petter 0:6cf6e566c0da 31 RN52_ACTIVE_CALL2,
petter 0:6cf6e566c0da 32 RN52_AUDIO_STREAMING,
petter 0:6cf6e566c0da 33 RN52_LOW_BATTERY,
petter 0:6cf6e566c0da 34
petter 0:6cf6e566c0da 35 RN52_CONNECTION_LAST
petter 0:6cf6e566c0da 36
petter 0:6cf6e566c0da 37 } RN52_CONNECTION;
petter 0:6cf6e566c0da 38
petter 0:6cf6e566c0da 39
petter 0:6cf6e566c0da 40 typedef enum
petter 0:6cf6e566c0da 41 {
petter 0:6cf6e566c0da 42 RN52_NO_EVENT,
petter 0:6cf6e566c0da 43 RN52_CALLER_ID_EVENT,
petter 0:6cf6e566c0da 44 RN52_TRACK_CHANGE_EVENT,
petter 7:2df2c6e8c0df 45 RN52_OTHER_EVENT,
petter 0:6cf6e566c0da 46
petter 0:6cf6e566c0da 47 RN52_EVENT_LAST
petter 0:6cf6e566c0da 48
petter 0:6cf6e566c0da 49 } RN52_EVENT;
petter 0:6cf6e566c0da 50
petter 0:6cf6e566c0da 51 typedef struct
petter 0:6cf6e566c0da 52 {
petter 0:6cf6e566c0da 53 RN52_EVENT event;
petter 0:6cf6e566c0da 54 bool media_connected;
petter 0:6cf6e566c0da 55 bool phone_connected;
petter 0:6cf6e566c0da 56 RN52_CONNECTION connection;
petter 7:2df2c6e8c0df 57 char title[255];
petter 7:2df2c6e8c0df 58 char artist[255];
petter 7:2df2c6e8c0df 59 char album[255];
petter 7:2df2c6e8c0df 60 char genre[255];
petter 6:c454f88524d6 61 int duration;
petter 6:c454f88524d6 62 int track_number;
petter 6:c454f88524d6 63 int track_count;
petter 7:2df2c6e8c0df 64 char response[255];
petter 0:6cf6e566c0da 65
petter 0:6cf6e566c0da 66 } RN52_RESULT;
petter 0:6cf6e566c0da 67
petter 0:6cf6e566c0da 68
petter 0:6cf6e566c0da 69
petter 0:6cf6e566c0da 70
petter 0:6cf6e566c0da 71 //----------------------------------------------------------------------------
petter 0:6cf6e566c0da 72 // CLASS
petter 0:6cf6e566c0da 73 //----------------------------------------------------------------------------
petter 0:6cf6e566c0da 74
petter 0:6cf6e566c0da 75 class RN52
petter 0:6cf6e566c0da 76 {
petter 0:6cf6e566c0da 77 public:
petter 0:6cf6e566c0da 78 void init();
petter 4:3041a571b7a7 79 bool check_event(RN52_RESULT * rn52_result);
petter 5:8e468fef2754 80 bool connect();
petter 5:8e468fef2754 81 bool disconnect();
petter 5:8e468fef2754 82 bool next_track();
petter 5:8e468fef2754 83 bool prev_track();
petter 5:8e468fef2754 84 bool toggle_play();
petter 5:8e468fef2754 85 bool maxvolume();
petter 0:6cf6e566c0da 86 bool get(RN52_COMMAND cmd, RN52_RESULT * rn52_result);
petter 5:8e468fef2754 87 bool capture_response(char * str);
petter 6:c454f88524d6 88 void clear_serial();
petter 7:2df2c6e8c0df 89 void copy_response(char * source, char * destination, char offset);
petter 7:2df2c6e8c0df 90 void clear_result(RN52_RESULT * result);
petter 0:6cf6e566c0da 91 };
petter 0:6cf6e566c0da 92
petter 0:6cf6e566c0da 93 #endif