2
player.cpp@7:fc66dbd1ce99, 2018-12-16 (annotated)
- Committer:
- Marknaja
- Date:
- Sun Dec 16 01:58:19 2018 +0000
- Revision:
- 7:fc66dbd1ce99
- Parent:
- 6:a26a42923924
555;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Marknaja | 7:fc66dbd1ce99 | 1 | //#include "player.h" |
Marknaja | 7:fc66dbd1ce99 | 2 | //#include"SDFileSystem.h" |
Marknaja | 7:fc66dbd1ce99 | 3 | //#include "vs10xx.h" |
Marknaja | 7:fc66dbd1ce99 | 4 | // |
Marknaja | 7:fc66dbd1ce99 | 5 | //SDFileSystem sd(D11, D12, D13, D9, "sd"); // the pinout on the mbed Cool |
Marknaja | 7:fc66dbd1ce99 | 6 | //vs10xx vs1053(D11, D12, D13, D6, D7, D2, D8);//mosi,miso,sclk,xcs,xdcs,dreq,xreset 3spi+chip select |
Marknaja | 7:fc66dbd1ce99 | 7 | //Serial aa(USBTX, USBRX); |
Marknaja | 7:fc66dbd1ce99 | 8 | //Serial pc(D1, D0); |
Marknaja | 7:fc66dbd1ce99 | 9 | //playerStatetype playerState; |
Marknaja | 7:fc66dbd1ce99 | 10 | //static unsigned char fileBuf[48000]; |
Marknaja | 7:fc66dbd1ce99 | 11 | //unsigned char *bufptr; |
Marknaja | 7:fc66dbd1ce99 | 12 | //char green; |
Marknaja | 7:fc66dbd1ce99 | 13 | //uint8_t vol; |
Marknaja | 7:fc66dbd1ce99 | 14 | //bool startplaysong; |
Marknaja | 7:fc66dbd1ce99 | 15 | //bool playsong; |
Marknaja | 7:fc66dbd1ce99 | 16 | //char datainput; |
Marknaja | 7:fc66dbd1ce99 | 17 | // |
Marknaja | 7:fc66dbd1ce99 | 18 | //char list[20][50]; //song list |
Marknaja | 7:fc66dbd1ce99 | 19 | // |
Marknaja | 7:fc66dbd1ce99 | 20 | //char data ; |
Marknaja | 7:fc66dbd1ce99 | 21 | //DigitalIn sw_in(USER_BUTTON); |
Marknaja | 7:fc66dbd1ce99 | 22 | // |
Marknaja | 7:fc66dbd1ce99 | 23 | //void Player::begin(void) |
Marknaja | 7:fc66dbd1ce99 | 24 | //{ |
Marknaja | 7:fc66dbd1ce99 | 25 | // DirHandle *dir; |
Marknaja | 7:fc66dbd1ce99 | 26 | // struct dirent *ptr; |
Marknaja | 7:fc66dbd1ce99 | 27 | // FileHandle *fp; |
Marknaja | 7:fc66dbd1ce99 | 28 | // |
Marknaja | 7:fc66dbd1ce99 | 29 | // vs1053.reset(); |
Marknaja | 7:fc66dbd1ce99 | 30 | // dir = opendir("/sd"); |
Marknaja | 7:fc66dbd1ce99 | 31 | // //printf("\r\n**********playing list**********\r\n"); |
Marknaja | 7:fc66dbd1ce99 | 32 | // unsigned char i = 0,j=0; |
Marknaja | 7:fc66dbd1ce99 | 33 | // while(((ptr = dir->readdir()) != NULL)&&(i <20)) |
Marknaja | 7:fc66dbd1ce99 | 34 | // { |
Marknaja | 7:fc66dbd1ce99 | 35 | // if(strstr(ptr->d_name,".mp3")||strstr(ptr->d_name,".MP3")) |
Marknaja | 7:fc66dbd1ce99 | 36 | // { |
Marknaja | 7:fc66dbd1ce99 | 37 | // fp =sd.open(ptr->d_name, O_RDONLY); |
Marknaja | 7:fc66dbd1ce99 | 38 | // if(fp != NULL) |
Marknaja | 7:fc66dbd1ce99 | 39 | // { |
Marknaja | 7:fc66dbd1ce99 | 40 | // char *byte = ptr->d_name; |
Marknaja | 7:fc66dbd1ce99 | 41 | // j=0; |
Marknaja | 7:fc66dbd1ce99 | 42 | // while(*byte){ |
Marknaja | 7:fc66dbd1ce99 | 43 | // list[i][j++] = *byte++; |
Marknaja | 7:fc66dbd1ce99 | 44 | // green=i; |
Marknaja | 7:fc66dbd1ce99 | 45 | // } |
Marknaja | 7:fc66dbd1ce99 | 46 | // aa.printf("%2d . %s\r\n", i,list[i++]); |
Marknaja | 7:fc66dbd1ce99 | 47 | // //fp->close(); |
Marknaja | 7:fc66dbd1ce99 | 48 | // } |
Marknaja | 7:fc66dbd1ce99 | 49 | // } |
Marknaja | 7:fc66dbd1ce99 | 50 | // } |
Marknaja | 7:fc66dbd1ce99 | 51 | // dir->closedir(); |
Marknaja | 7:fc66dbd1ce99 | 52 | //} |
Marknaja | 7:fc66dbd1ce99 | 53 | // |
Marknaja | 7:fc66dbd1ce99 | 54 | // |
Marknaja | 7:fc66dbd1ce99 | 55 | // |
Marknaja | 7:fc66dbd1ce99 | 56 | // |
Marknaja | 7:fc66dbd1ce99 | 57 | // |
Marknaja | 7:fc66dbd1ce99 | 58 | ///* select file by num. */ |
Marknaja | 7:fc66dbd1ce99 | 59 | //void Player::selectfile(char n){ |
Marknaja | 7:fc66dbd1ce99 | 60 | // |
Marknaja | 7:fc66dbd1ce99 | 61 | // startplaysong=false; |
Marknaja | 7:fc66dbd1ce99 | 62 | // playerState =PS_STOP; |
Marknaja | 7:fc66dbd1ce99 | 63 | // playsong=false; |
Marknaja | 7:fc66dbd1ce99 | 64 | // green = n; |
Marknaja | 7:fc66dbd1ce99 | 65 | // } |
Marknaja | 7:fc66dbd1ce99 | 66 | // |
Marknaja | 7:fc66dbd1ce99 | 67 | // |
Marknaja | 7:fc66dbd1ce99 | 68 | // |
Marknaja | 7:fc66dbd1ce99 | 69 | ///* This function stop an audio file. */ |
Marknaja | 7:fc66dbd1ce99 | 70 | //void Player::stop(void){ |
Marknaja | 7:fc66dbd1ce99 | 71 | // startplaysong=true; |
Marknaja | 7:fc66dbd1ce99 | 72 | // playerState =PS_STOP; |
Marknaja | 7:fc66dbd1ce99 | 73 | // } |
Marknaja | 7:fc66dbd1ce99 | 74 | // |
Marknaja | 7:fc66dbd1ce99 | 75 | // |
Marknaja | 7:fc66dbd1ce99 | 76 | //void Player::run(){ |
Marknaja | 7:fc66dbd1ce99 | 77 | //// vs1053.setVolume(t); |
Marknaja | 7:fc66dbd1ce99 | 78 | // if(datainput=='0'){ |
Marknaja | 7:fc66dbd1ce99 | 79 | // selectfile(0); |
Marknaja | 7:fc66dbd1ce99 | 80 | // playFile(list[green]); |
Marknaja | 7:fc66dbd1ce99 | 81 | // //stop(); |
Marknaja | 7:fc66dbd1ce99 | 82 | // } |
Marknaja | 7:fc66dbd1ce99 | 83 | // if(datainput=='1'){ |
Marknaja | 7:fc66dbd1ce99 | 84 | // selectfile(1); |
Marknaja | 7:fc66dbd1ce99 | 85 | // playFile(list[green]); |
Marknaja | 7:fc66dbd1ce99 | 86 | // //stop(); |
Marknaja | 7:fc66dbd1ce99 | 87 | // |
Marknaja | 7:fc66dbd1ce99 | 88 | // } |
Marknaja | 7:fc66dbd1ce99 | 89 | // if(datainput=='2'){ |
Marknaja | 7:fc66dbd1ce99 | 90 | // selectfile(2); |
Marknaja | 7:fc66dbd1ce99 | 91 | // playFile(list[green]); |
Marknaja | 7:fc66dbd1ce99 | 92 | // //stop(); |
Marknaja | 7:fc66dbd1ce99 | 93 | // } |
Marknaja | 7:fc66dbd1ce99 | 94 | // if(datainput=='3'){ |
Marknaja | 7:fc66dbd1ce99 | 95 | // selectfile(3); |
Marknaja | 7:fc66dbd1ce99 | 96 | // playFile(list[green]); |
Marknaja | 7:fc66dbd1ce99 | 97 | // //stop(); |
Marknaja | 7:fc66dbd1ce99 | 98 | // } |
Marknaja | 7:fc66dbd1ce99 | 99 | // if(datainput=='4'){ |
Marknaja | 7:fc66dbd1ce99 | 100 | // selectfile(4); |
Marknaja | 7:fc66dbd1ce99 | 101 | // playFile(list[green]); |
Marknaja | 7:fc66dbd1ce99 | 102 | // //stop(); |
Marknaja | 7:fc66dbd1ce99 | 103 | // } |
Marknaja | 7:fc66dbd1ce99 | 104 | // if(datainput=='5'){ |
Marknaja | 7:fc66dbd1ce99 | 105 | // selectfile(5); |
Marknaja | 7:fc66dbd1ce99 | 106 | // playFile(list[green]); |
Marknaja | 7:fc66dbd1ce99 | 107 | // //stop(); |
Marknaja | 7:fc66dbd1ce99 | 108 | // } |
Marknaja | 7:fc66dbd1ce99 | 109 | // else{ |
Marknaja | 7:fc66dbd1ce99 | 110 | // stop(); |
Marknaja | 7:fc66dbd1ce99 | 111 | // } |
Marknaja | 7:fc66dbd1ce99 | 112 | //} |
Marknaja | 7:fc66dbd1ce99 | 113 | // |
Marknaja | 7:fc66dbd1ce99 | 114 | // |
Marknaja | 7:fc66dbd1ce99 | 115 | // |
Marknaja | 7:fc66dbd1ce99 | 116 | //void Player::read(void){ |
Marknaja | 7:fc66dbd1ce99 | 117 | // pc.readable(); |
Marknaja | 7:fc66dbd1ce99 | 118 | // datainput = pc.getc(); |
Marknaja | 7:fc66dbd1ce99 | 119 | // |
Marknaja | 7:fc66dbd1ce99 | 120 | // } |
Marknaja | 7:fc66dbd1ce99 | 121 | // |
Marknaja | 7:fc66dbd1ce99 | 122 | // |
Marknaja | 7:fc66dbd1ce99 | 123 | ///* This function plays audio file. */ |
Marknaja | 7:fc66dbd1ce99 | 124 | //void Player::playFile(char *file) { |
Marknaja | 7:fc66dbd1ce99 | 125 | // int bytes; // How many bytes in buffer left |
Marknaja | 7:fc66dbd1ce99 | 126 | // char n; |
Marknaja | 7:fc66dbd1ce99 | 127 | // |
Marknaja | 7:fc66dbd1ce99 | 128 | // playerState = PS_PLAY; |
Marknaja | 7:fc66dbd1ce99 | 129 | // |
Marknaja | 7:fc66dbd1ce99 | 130 | // vs1053.setFreq(24000000); //hight speed |
Marknaja | 7:fc66dbd1ce99 | 131 | // |
Marknaja | 7:fc66dbd1ce99 | 132 | // FileHandle *fp =sd.open(file, O_RDONLY); |
Marknaja | 7:fc66dbd1ce99 | 133 | // |
Marknaja | 7:fc66dbd1ce99 | 134 | // if(fp == NULL) { |
Marknaja | 7:fc66dbd1ce99 | 135 | // printf("Could not open %s\r\n",file); |
Marknaja | 7:fc66dbd1ce99 | 136 | // |
Marknaja | 7:fc66dbd1ce99 | 137 | // } |
Marknaja | 7:fc66dbd1ce99 | 138 | // else |
Marknaja | 7:fc66dbd1ce99 | 139 | // { |
Marknaja | 7:fc66dbd1ce99 | 140 | // printf("Playing %s ...\r\n",file); |
Marknaja | 7:fc66dbd1ce99 | 141 | // |
Marknaja | 7:fc66dbd1ce99 | 142 | // /* Main playback loop */ |
Marknaja | 7:fc66dbd1ce99 | 143 | // while((bytes = fp->read(fileBuf,48000)) > 0) { |
Marknaja | 7:fc66dbd1ce99 | 144 | // { |
Marknaja | 7:fc66dbd1ce99 | 145 | // //pc.printf("green\n"); |
Marknaja | 7:fc66dbd1ce99 | 146 | // if(pc.readable()){ |
Marknaja | 7:fc66dbd1ce99 | 147 | // break; |
Marknaja | 7:fc66dbd1ce99 | 148 | // //stop(); |
Marknaja | 7:fc66dbd1ce99 | 149 | // } |
Marknaja | 7:fc66dbd1ce99 | 150 | // vs1053.setFreq(24000000); |
Marknaja | 7:fc66dbd1ce99 | 151 | // bufptr = fileBuf; |
Marknaja | 7:fc66dbd1ce99 | 152 | // // actual audio data gets sent to VS10xx. |
Marknaja | 7:fc66dbd1ce99 | 153 | // while(bytes > 0) |
Marknaja | 7:fc66dbd1ce99 | 154 | // { |
Marknaja | 7:fc66dbd1ce99 | 155 | // n = (bytes < 32)?bytes:32; //defalt 32 |
Marknaja | 7:fc66dbd1ce99 | 156 | // vs1053.writeData(bufptr,n); |
Marknaja | 7:fc66dbd1ce99 | 157 | // bytes -= n; |
Marknaja | 7:fc66dbd1ce99 | 158 | // bufptr += n; |
Marknaja | 7:fc66dbd1ce99 | 159 | // if(pc.readable()){ |
Marknaja | 7:fc66dbd1ce99 | 160 | // break; |
Marknaja | 7:fc66dbd1ce99 | 161 | // //stop(); |
Marknaja | 7:fc66dbd1ce99 | 162 | // } |
Marknaja | 7:fc66dbd1ce99 | 163 | // |
Marknaja | 7:fc66dbd1ce99 | 164 | // } |
Marknaja | 7:fc66dbd1ce99 | 165 | // uint8_t vol = 0;//set vlume |
Marknaja | 7:fc66dbd1ce99 | 166 | // vs1053.setVolume(vol); //set vlume |
Marknaja | 7:fc66dbd1ce99 | 167 | // |
Marknaja | 7:fc66dbd1ce99 | 168 | // |
Marknaja | 7:fc66dbd1ce99 | 169 | // if(playerState != PS_PLAY) //stop |
Marknaja | 7:fc66dbd1ce99 | 170 | // { |
Marknaja | 7:fc66dbd1ce99 | 171 | // fp->close(); |
Marknaja | 7:fc66dbd1ce99 | 172 | // vs1053.softReset(); |
Marknaja | 7:fc66dbd1ce99 | 173 | // } |
Marknaja | 7:fc66dbd1ce99 | 174 | // |
Marknaja | 7:fc66dbd1ce99 | 175 | // } |
Marknaja | 7:fc66dbd1ce99 | 176 | // } |
Marknaja | 7:fc66dbd1ce99 | 177 | // } |
Marknaja | 7:fc66dbd1ce99 | 178 | // |
Marknaja | 7:fc66dbd1ce99 | 179 | //} |
Marknaja | 7:fc66dbd1ce99 | 180 | // |