f

Dependencies:   mbed

Revision:
0:68ea82aa1b8b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Dec 05 11:00:27 2016 +0000
@@ -0,0 +1,233 @@
+#include <stdlib.h>
+
+char buffer[2][200];
+char count[5];
+char index = 0;
+char temp;
+struct Cluster{
+    char _like[5];
+    char _dislike[5];
+    char _isSkip[5];
+    char _songName[200];
+    char _album[50];
+
+    //emotion 0: Sad
+    //emotion 1: Stress
+    //emotion 2: Angry
+    //emotion 3: Happy
+};
+typedef struct Cluster cluster;
+cluster dataCollection[25];
+cluster *cp;
+
+void init_Cluster(){
+
+    cp = &dataCollection[0];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"Gravity.mp3");
+    sprintf(cp->_album,"Sad");
+
+    cp = &dataCollection[1];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"TaTerMaiRuseuk.mp3");
+    sprintf(cp->_album,"Sad");
+
+    cp = &dataCollection[2];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"NumTaTeHai.mp3");
+    sprintf(cp->_album,"Sad");
+
+    cp = &dataCollection[3];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"MaTanWeLaPord.mp3");
+    sprintf(cp->_album,"Sad");
+
+    cp = &dataCollection[4];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"YaSaeJaiKonDrew.mp3");
+    sprintf(cp->_album,"Sad");
+
+    cp = &dataCollection[5];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"PerJer.mp3");
+    sprintf(cp->_album,"Stress");
+
+    cp = &dataCollection[6];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"YenDTMaiRuJak.mp3");
+    sprintf(cp->_album,"Stress");
+
+    cp = &dataCollection[7];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"Y_Rai.mp3");
+    sprintf(cp->_album,"Stress");
+
+    cp = &dataCollection[8];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"LorLey.mp3");
+    sprintf(cp->_album,"Stress");
+
+    cp = &dataCollection[9];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"NuaGenPaiRuePow.mp3");
+    sprintf(cp->_album,"Stress");
+
+    cp = &dataCollection[10];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"9_Nariga.mp3");
+    sprintf(cp->_album,"Angry");
+
+    cp = &dataCollection[11];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"GluptuaGlupJai.mp3");
+    sprintf(cp->_album,"Angry");
+
+    cp = &dataCollection[12];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"MaiTumMaDa.mp3");
+    sprintf(cp->_album,"Angry");
+
+    cp = &dataCollection[13];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"LaugPee4G.mp3");
+    sprintf(cp->_album,"Angry");
+
+    cp = &dataCollection[14];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"CeakWeeSert.mp3");
+    sprintf(cp->_album,"Angry");
+
+    cp = &dataCollection[15];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"PerJer.mp3");
+    sprintf(cp->_album,"Happy");
+
+    cp = &dataCollection[16];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"Jeep.mp3");
+    sprintf(cp->_album,"Happy");
+
+    cp = &dataCollection[17];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"PoodTumMai.mp3");
+    sprintf(cp->_album,"Happy");
+
+    cp = &dataCollection[18];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"RumSeTow.mp3");
+    sprintf(cp->_album,"Happy");
+
+    cp = &dataCollection[19];
+    cp->_like[0] = 0; cp->_like[1] = 0; cp->_like[2] = 0; cp->_like[3] = 0;
+    cp->_dislike[0] = 0; cp->_dislike[1] = 0; cp->_dislike[2] = 0; cp->_dislike[3] = 0;
+    cp->_isSkip[0] = 0; cp->_isSkip[1] = 0; cp->_isSkip[2] = 0; cp->_isSkip[3] = 0;
+    sprintf(cp->_songName,"AO.mp3");
+    sprintf(cp->_album,"Happy");
+}
+
+char currentSong = -1;
+char currentEmotion = 0;
+char songList[100];
+char ch;
+
+char flag = 0;
+char protocalSlot = 2;
+
+int main(){
+    init_Cluster();
+    while (1){
+        //get data from serial communicate with nucleo_master (mp3 shield).
+        //protocol @songIndex|Data|$
+        if (kbhit())        //change with bluetooth command [maybe: .readable()]
+        {
+            ch = getc();   //change with bluetooth command
+            if (ch == '@'){
+                index = 0;
+                flag = 1;
+                count[index] = 0;
+            }
+            else if (ch == '|' && flag){
+                buffer[index][count[index]++] = '\0';
+                index++;
+                count[index] = 0;
+            }
+            else if (ch == '$' && flag && (index == protocalSlot)){
+                flag = 0;
+                temp = atoi(buffer[1]);
+
+                switch(temp){
+                    case 0: //get new song
+                        songList[++currentSong] = atoi(buffer[0]);
+                        break;
+
+                    case 1: //like
+                        cp = &dataCollection[songList[currentSong]];
+                        cp->_like[currentEmotion] = 1;
+                        break;
+
+                    case 2: //dislike
+                        cp = &dataCollection[songList[currentSong]];
+                        cp->_dislike[currentEmotion] = 1;
+                        break;
+
+                    case 3:
+                        if(currentSong !=-1){
+                            cp = &dataCollection[songList[currentSong]];
+                            cp->_isSkip[currentEmotion] = 1;
+                        }
+                        break;
+
+                    case 4: //emotion 0: Sad
+                    case 5: //emotion 1: Stress
+                    case 6: //emotion 2: Angry
+                    case 7: //emotion 3: Happy
+                        currentEmotion = temp - 4;
+                        break;
+                }
+            }
+            else if(flag){
+                if((ch<='9')&&(ch >= '0')) buffer[index][count[index]++] = ch;
+                else flag = 0;
+            }
+        }
+    }
+
+}