Displays simple html web pages using the uVGA-II.

Dependents:   uVGAII_WebBrowser

Committer:
yaolu23
Date:
Wed Mar 06 18:17:39 2013 +0000
Revision:
3:5f688bcc92b9
Parent:
2:ff57d9a43c7d
BasicWeb

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yaolu23 0:7fac52628f4e 1 #include "BasicWeb.h"
yaolu23 0:7fac52628f4e 2
yaolu23 0:7fac52628f4e 3 // table used to convert keyboard scan codes to ASCII
yaolu23 0:7fac52628f4e 4 const unsigned char BasicWeb::table[] = {
yaolu23 0:7fac52628f4e 5 // 0 1 2 3 4 5 6 7 8 9 A B C D E F
yaolu23 0:7fac52628f4e 6 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,'~', 0, // 0
yaolu23 0:7fac52628f4e 7 0, 0, 0, 0, 0,'q','1', 0, 0, 0,'z','s','a','w','2', 0, // 1
yaolu23 0:7fac52628f4e 8 0,'c','x','d','e','4','3', 0, 0,' ','v','f','t','r','5', 0, // 2
yaolu23 0:7fac52628f4e 9 0,'n','b','h','g','y','6', 0, 0, 0,'m','j','u','7','8', 0, // 3
yaolu23 3:5f688bcc92b9 10 0, 0,'k','i','o','0','9', 0, 0,'.','/','l',':','p','_', 0, // 4
yaolu23 0:7fac52628f4e 11 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 5
yaolu23 0:7fac52628f4e 12 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6
yaolu23 3:5f688bcc92b9 13 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,'-', 0, 0, 0, 0, // 7
yaolu23 0:7fac52628f4e 14 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8
yaolu23 0:7fac52628f4e 15 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // 9
yaolu23 0:7fac52628f4e 16
yaolu23 0:7fac52628f4e 17 BasicWeb::BasicWeb(PinName tx, PinName rx, PinName reset)
yaolu23 0:7fac52628f4e 18 :vga(tx, rx, reset),
yaolu23 0:7fac52628f4e 19 urlStr("http://www.batw.net/htmllessons/example_page.html"),
yaolu23 3:5f688bcc92b9 20 urlIndex(49), str(NULL), bold(false), font(0), color(0x000000), index(0), title(false) {
yaolu23 0:7fac52628f4e 21
yaolu23 0:7fac52628f4e 22 // initialize uVGA
yaolu23 0:7fac52628f4e 23 vga.baudrate(115200);
yaolu23 0:7fac52628f4e 24 vga.display_control(0x0c, 0x01); // Set display to VGA 640x480
yaolu23 0:7fac52628f4e 25 }
yaolu23 0:7fac52628f4e 26
yaolu23 0:7fac52628f4e 27 void BasicWeb::browser(){
yaolu23 0:7fac52628f4e 28 // draw browser
yaolu23 0:7fac52628f4e 29 vga.background_color(WHITE);
yaolu23 0:7fac52628f4e 30 vga.rectangle(0, 0, 640, 38, 0xBBBBBB);
yaolu23 0:7fac52628f4e 31 vga.rectangle(30, 20, 636, 34, WHITE);
yaolu23 0:7fac52628f4e 32 displayUrl();
yaolu23 0:7fac52628f4e 33
yaolu23 0:7fac52628f4e 34 // connect to internet and display IP
yaolu23 0:7fac52628f4e 35 eth.init();
yaolu23 0:7fac52628f4e 36 eth.connect();
yaolu23 0:7fac52628f4e 37 vga.text_string("IP address is:", 50, 1, 1, 0x000000);
yaolu23 0:7fac52628f4e 38 vga.text_string(eth.getIPAddress(), 65, 1, 1, 0x000000);
yaolu23 0:7fac52628f4e 39 }
yaolu23 0:7fac52628f4e 40
yaolu23 0:7fac52628f4e 41 void BasicWeb::displayUrl(){
yaolu23 0:7fac52628f4e 42 vga.rectangle(30, 20, 636, 34, WHITE); // clear url
yaolu23 0:7fac52628f4e 43 vga.text_string(urlStr, 4, 3, 1, 0x000000);
yaolu23 0:7fac52628f4e 44 }
yaolu23 0:7fac52628f4e 45
yaolu23 0:7fac52628f4e 46 // process new key
yaolu23 0:7fac52628f4e 47 void BasicWeb::newKey(char scancode){
yaolu23 0:7fac52628f4e 48 char c = table[scancode];
yaolu23 0:7fac52628f4e 49 if(c != 0){ // if a alpha numeric
yaolu23 0:7fac52628f4e 50 urlStr[urlIndex] = c;
yaolu23 0:7fac52628f4e 51 char s[] = {c, 0};
yaolu23 0:7fac52628f4e 52 vga.text_string(s, 4 + urlIndex, 3, 1, 0x000000);
yaolu23 0:7fac52628f4e 53 urlIndex += 1;
yaolu23 0:7fac52628f4e 54 urlStr[urlIndex] = '\0';
yaolu23 0:7fac52628f4e 55 }else{
yaolu23 0:7fac52628f4e 56 if(scancode == 0x66){ // backspace
yaolu23 0:7fac52628f4e 57 if(urlIndex != 0){
yaolu23 0:7fac52628f4e 58 urlIndex -= 1;
yaolu23 0:7fac52628f4e 59 urlStr[urlIndex] = '\0';
yaolu23 0:7fac52628f4e 60 vga.rectangle(31 + urlIndex*8, 20, 39 + urlIndex*8, 34, WHITE);
yaolu23 0:7fac52628f4e 61 }
yaolu23 0:7fac52628f4e 62 }else if(scancode == 0x5A){ // enter
yaolu23 0:7fac52628f4e 63 int ret = http.get(urlStr, text, 10240);
yaolu23 0:7fac52628f4e 64 if(!ret){
yaolu23 0:7fac52628f4e 65 removeRL(text, 10240);
yaolu23 0:7fac52628f4e 66 index = 0;
yaolu23 0:7fac52628f4e 67 lineIndex = 40;
yaolu23 0:7fac52628f4e 68 vga.rectangle(0, 0, 640, 19, 0xBBBBBB); // clear title
yaolu23 0:7fac52628f4e 69 vga.rectangle(0, 39, 640, 480, 0xFFFFFF); // clear page
yaolu23 0:7fac52628f4e 70 displayPage();
yaolu23 0:7fac52628f4e 71 }else{
yaolu23 0:7fac52628f4e 72 vga.graphic_string("Could not fetch page", 21, 0, 1, color, 1, 1);
yaolu23 0:7fac52628f4e 73 }
yaolu23 0:7fac52628f4e 74 }
yaolu23 0:7fac52628f4e 75 }
yaolu23 0:7fac52628f4e 76 }
yaolu23 0:7fac52628f4e 77
yaolu23 0:7fac52628f4e 78 void BasicWeb::modKey(char scancode1, char scancode2){
yaolu23 0:7fac52628f4e 79 if(scancode1 == 0xE0){
yaolu23 0:7fac52628f4e 80 if(scancode2 == 0x72 || scancode2 == 0x74){ // up and right arrow
yaolu23 0:7fac52628f4e 81 vga.rectangle(0, 39, 640, 480, 0xFFFFFF); // clear page
yaolu23 0:7fac52628f4e 82 lineIndex = 40;
yaolu23 0:7fac52628f4e 83 displayPage();
yaolu23 0:7fac52628f4e 84 }
yaolu23 0:7fac52628f4e 85 }
yaolu23 0:7fac52628f4e 86 }
yaolu23 0:7fac52628f4e 87
yaolu23 0:7fac52628f4e 88 void BasicWeb::displayPage(){
yaolu23 0:7fac52628f4e 89 parseStr();
yaolu23 0:7fac52628f4e 90 while(printText(str)){
yaolu23 0:7fac52628f4e 91 parseStr();
yaolu23 0:7fac52628f4e 92 if(title){
yaolu23 0:7fac52628f4e 93 title = false;
yaolu23 0:7fac52628f4e 94 vga.rectangle(0, 0, 640, 19, 0xBBBBBB);
yaolu23 0:7fac52628f4e 95 vga.text_string(titleStr, 1, 1, 1, 0x000000);
yaolu23 0:7fac52628f4e 96 }
yaolu23 0:7fac52628f4e 97 }
yaolu23 0:7fac52628f4e 98 }
yaolu23 0:7fac52628f4e 99
yaolu23 0:7fac52628f4e 100 /* processes tags up until a string to display is found */
yaolu23 0:7fac52628f4e 101 void BasicWeb::parseStr(){
yaolu23 0:7fac52628f4e 102 bool cont = true;
yaolu23 0:7fac52628f4e 103 while(cont){
yaolu23 0:7fac52628f4e 104 while(text[index] == ' ') index++; // skip white space
yaolu23 0:7fac52628f4e 105 if(text[index] == '\0'){
yaolu23 0:7fac52628f4e 106 str = NULL;
yaolu23 0:7fac52628f4e 107 return;
yaolu23 0:7fac52628f4e 108 }
yaolu23 0:7fac52628f4e 109 if(text[index] == '<'){
yaolu23 0:7fac52628f4e 110 cont = applyTag();
yaolu23 0:7fac52628f4e 111 }else{
yaolu23 0:7fac52628f4e 112 cont = extractStr();
yaolu23 0:7fac52628f4e 113 }
yaolu23 0:7fac52628f4e 114 }
yaolu23 0:7fac52628f4e 115 }
yaolu23 0:7fac52628f4e 116
yaolu23 0:7fac52628f4e 117 /* processes the tag and increment index past it */
yaolu23 0:7fac52628f4e 118 bool BasicWeb::applyTag(){
yaolu23 0:7fac52628f4e 119 index++;
yaolu23 0:7fac52628f4e 120
yaolu23 0:7fac52628f4e 121 // skip comments
yaolu23 0:7fac52628f4e 122 bool comment = true;
yaolu23 0:7fac52628f4e 123 if(text[index] == '!'){
yaolu23 0:7fac52628f4e 124 if(text[index+1] == '-' && text[index+2] == '-'){
yaolu23 0:7fac52628f4e 125 index += 3;
yaolu23 0:7fac52628f4e 126 while(comment){ // while still in comment body
yaolu23 0:7fac52628f4e 127
yaolu23 0:7fac52628f4e 128 // check for ending sequence
yaolu23 0:7fac52628f4e 129 if(text[index] == '-'){
yaolu23 0:7fac52628f4e 130 index += 1;
yaolu23 0:7fac52628f4e 131 if(text[index] == '-'){
yaolu23 0:7fac52628f4e 132 index += 1;
yaolu23 0:7fac52628f4e 133 if(text[index] == '>'){
yaolu23 0:7fac52628f4e 134 comment = false; // break out of comment
yaolu23 0:7fac52628f4e 135 }
yaolu23 0:7fac52628f4e 136 }
yaolu23 0:7fac52628f4e 137 }else{
yaolu23 0:7fac52628f4e 138 index++;
yaolu23 0:7fac52628f4e 139 }
yaolu23 0:7fac52628f4e 140 }
yaolu23 0:7fac52628f4e 141 comment = true; // reset comment flag
yaolu23 0:7fac52628f4e 142 }
yaolu23 0:7fac52628f4e 143 while(text[index] != '>') index++;
yaolu23 0:7fac52628f4e 144 index++;
yaolu23 0:7fac52628f4e 145 return true;
yaolu23 0:7fac52628f4e 146 }
yaolu23 0:7fac52628f4e 147
yaolu23 0:7fac52628f4e 148 // process tag
yaolu23 0:7fac52628f4e 149 int i = 0;
yaolu23 0:7fac52628f4e 150 if(compareTag(text + index, "title")){
yaolu23 0:7fac52628f4e 151 index += 6;
yaolu23 0:7fac52628f4e 152 title = true;
yaolu23 0:7fac52628f4e 153 while(text[index+i] != '<' && text[index+i] != '\0'){
yaolu23 0:7fac52628f4e 154 i++;
yaolu23 0:7fac52628f4e 155 }
yaolu23 0:7fac52628f4e 156 if(i < 30){
yaolu23 0:7fac52628f4e 157 copyStr(text + index, titleStr, i);
yaolu23 0:7fac52628f4e 158 }else{
yaolu23 0:7fac52628f4e 159 copyStr(text + index, titleStr, 30);
yaolu23 0:7fac52628f4e 160 }
yaolu23 0:7fac52628f4e 161 index += i;
yaolu23 0:7fac52628f4e 162 }else if(compareTag(text + index, "script")){ // skip script
yaolu23 0:7fac52628f4e 163 index += 7;
yaolu23 0:7fac52628f4e 164 while(text[index] != '\0'){
yaolu23 0:7fac52628f4e 165 if(text[index] == '<'){
yaolu23 0:7fac52628f4e 166 index++;
yaolu23 0:7fac52628f4e 167 if(compareTag(text + index, "/script")){
yaolu23 0:7fac52628f4e 168 index += 8;
yaolu23 0:7fac52628f4e 169 break;
yaolu23 0:7fac52628f4e 170 }
yaolu23 0:7fac52628f4e 171 }
yaolu23 0:7fac52628f4e 172 index++;
yaolu23 0:7fac52628f4e 173 }
yaolu23 0:7fac52628f4e 174 }else if(compareTag(text + index, "style")){ // skip style
yaolu23 0:7fac52628f4e 175 index += 6;
yaolu23 0:7fac52628f4e 176 while(text[index] != '\0'){
yaolu23 0:7fac52628f4e 177 if(text[index] == '<'){
yaolu23 0:7fac52628f4e 178 index++;
yaolu23 0:7fac52628f4e 179 if(compareTag(text + index, "/style")){
yaolu23 0:7fac52628f4e 180 index += 7;
yaolu23 0:7fac52628f4e 181 break;
yaolu23 0:7fac52628f4e 182 }
yaolu23 0:7fac52628f4e 183 }
yaolu23 0:7fac52628f4e 184 index++;
yaolu23 0:7fac52628f4e 185 }
yaolu23 0:7fac52628f4e 186 }else if(compareTag(text + index, "br")){
yaolu23 0:7fac52628f4e 187 index += 3;
yaolu23 0:7fac52628f4e 188 lineIndex += 10;
yaolu23 0:7fac52628f4e 189 }else if(compareTag(text + index, "/br")){
yaolu23 0:7fac52628f4e 190 index += 3;
yaolu23 0:7fac52628f4e 191 lineIndex += 10;
yaolu23 0:7fac52628f4e 192 }else if(compareTag(text + index, "b")){
yaolu23 0:7fac52628f4e 193 index += 2;
yaolu23 0:7fac52628f4e 194 font += 1;
yaolu23 0:7fac52628f4e 195 }else if(compareTag(text + index, "/b")){
yaolu23 0:7fac52628f4e 196 index += 3;
yaolu23 0:7fac52628f4e 197 font -= 1;
yaolu23 0:7fac52628f4e 198 }else if(compareTag(text + index, "h1")){
yaolu23 0:7fac52628f4e 199 index += 3;
yaolu23 0:7fac52628f4e 200 font = 3;
yaolu23 0:7fac52628f4e 201 }else if(compareTag(text + index, "/h1")){
yaolu23 0:7fac52628f4e 202 index += 4;
yaolu23 0:7fac52628f4e 203 font = 0;
yaolu23 0:7fac52628f4e 204 }else if(compareTag(text + index, "h2")){
yaolu23 0:7fac52628f4e 205 index += 3;
yaolu23 0:7fac52628f4e 206 font = 2;
yaolu23 0:7fac52628f4e 207 }else if(compareTag(text + index, "/h2")){
yaolu23 0:7fac52628f4e 208 index += 4;
yaolu23 0:7fac52628f4e 209 font = 0;
yaolu23 0:7fac52628f4e 210 }else if(compareTag(text + index, "h3")){
yaolu23 0:7fac52628f4e 211 index += 3;
yaolu23 0:7fac52628f4e 212 font = 1;
yaolu23 0:7fac52628f4e 213 }else if(compareTag(text + index, "/h3")){
yaolu23 0:7fac52628f4e 214 index += 4;
yaolu23 0:7fac52628f4e 215 font = 0;
yaolu23 0:7fac52628f4e 216 }else{
yaolu23 0:7fac52628f4e 217 while(text[index+i] != '>') i++;
yaolu23 0:7fac52628f4e 218 index += i + 1;
yaolu23 0:7fac52628f4e 219 }
yaolu23 0:7fac52628f4e 220
yaolu23 0:7fac52628f4e 221 return true;
yaolu23 0:7fac52628f4e 222 }
yaolu23 0:7fac52628f4e 223
yaolu23 0:7fac52628f4e 224 /* checks string against given tag */
yaolu23 0:7fac52628f4e 225 bool BasicWeb::compareTag(char* s, char* tag){
yaolu23 0:7fac52628f4e 226 int i = 0;
yaolu23 0:7fac52628f4e 227 while(s[i] != '>' && s[i] != '\0'){
yaolu23 0:7fac52628f4e 228 if(s[i] != tag[i]) return false;
yaolu23 0:7fac52628f4e 229 i++;
yaolu23 0:7fac52628f4e 230 }
yaolu23 0:7fac52628f4e 231 if(tag[i] != '\0'){
yaolu23 0:7fac52628f4e 232 return false;
yaolu23 0:7fac52628f4e 233 }else{
yaolu23 0:7fac52628f4e 234 return true;
yaolu23 0:7fac52628f4e 235 }
yaolu23 0:7fac52628f4e 236 }
yaolu23 0:7fac52628f4e 237
yaolu23 0:7fac52628f4e 238 /* stores string up to the start of the next tag into str variable */
yaolu23 0:7fac52628f4e 239 bool BasicWeb::extractStr(){
yaolu23 3:5f688bcc92b9 240
yaolu23 3:5f688bcc92b9 241 // skip white space
yaolu23 0:7fac52628f4e 242 int i = 0;
yaolu23 3:5f688bcc92b9 243 while(text[index+i] == ' ') i++;
yaolu23 3:5f688bcc92b9 244 index += i;
yaolu23 3:5f688bcc92b9 245
yaolu23 3:5f688bcc92b9 246 if(text[index+1] == '<'){
yaolu23 3:5f688bcc92b9 247 index++;
yaolu23 3:5f688bcc92b9 248 return true;
yaolu23 3:5f688bcc92b9 249 }
yaolu23 3:5f688bcc92b9 250
yaolu23 3:5f688bcc92b9 251 i = 0;
yaolu23 0:7fac52628f4e 252 while(text[index+i] != '<' && text[index+i] != '\0'){
yaolu23 0:7fac52628f4e 253 i++;
yaolu23 0:7fac52628f4e 254 }
yaolu23 0:7fac52628f4e 255 delete[] str;
yaolu23 0:7fac52628f4e 256 str = new char[i + 1];
yaolu23 0:7fac52628f4e 257 copyStr(text + index, str, i);
yaolu23 0:7fac52628f4e 258 index += i;
yaolu23 0:7fac52628f4e 259 strSize = i;
yaolu23 0:7fac52628f4e 260 return false;
yaolu23 0:7fac52628f4e 261 }
yaolu23 0:7fac52628f4e 262
yaolu23 0:7fac52628f4e 263 /* copies s1 into s2 upto given size */
yaolu23 0:7fac52628f4e 264 void BasicWeb::copyStr(char* s1, char* s2, int size){
yaolu23 0:7fac52628f4e 265 int i;
yaolu23 0:7fac52628f4e 266 for(i = 0; i < size; i++){
yaolu23 0:7fac52628f4e 267 s2[i] = s1[i];
yaolu23 0:7fac52628f4e 268 if(s1[i] == '\0') return;
yaolu23 0:7fac52628f4e 269 }
yaolu23 0:7fac52628f4e 270 s2[i] = '\0';
yaolu23 0:7fac52628f4e 271 }
yaolu23 0:7fac52628f4e 272
yaolu23 0:7fac52628f4e 273 /* removes CR and LR because they causes problems for vga print function */
yaolu23 0:7fac52628f4e 274 void BasicWeb::removeRL(char* s, int size){
yaolu23 0:7fac52628f4e 275 for(int i = 0; i < size; i++){
yaolu23 0:7fac52628f4e 276 if(s[i] == '\r' || s[i] == '\n') s[i] = ' ';
yaolu23 0:7fac52628f4e 277 }
yaolu23 0:7fac52628f4e 278 }
yaolu23 0:7fac52628f4e 279
yaolu23 0:7fac52628f4e 280 /* prints text one line at a time, returning false if at end of screen */
yaolu23 0:7fac52628f4e 281 bool BasicWeb::printText(char* s){
yaolu23 0:7fac52628f4e 282
yaolu23 0:7fac52628f4e 283 if(s == NULL){
yaolu23 0:7fac52628f4e 284 index = 0;
yaolu23 0:7fac52628f4e 285 return false;
yaolu23 0:7fac52628f4e 286 }
yaolu23 0:7fac52628f4e 287
yaolu23 0:7fac52628f4e 288 int maxChar;
yaolu23 0:7fac52628f4e 289 switch(font){
yaolu23 0:7fac52628f4e 290 case 0:
yaolu23 0:7fac52628f4e 291 maxChar = 105;
yaolu23 0:7fac52628f4e 292 break;
yaolu23 0:7fac52628f4e 293 case 1:
yaolu23 0:7fac52628f4e 294 maxChar = 70;
yaolu23 0:7fac52628f4e 295 break;
yaolu23 0:7fac52628f4e 296 case 2:
yaolu23 0:7fac52628f4e 297 maxChar = 65;
yaolu23 0:7fac52628f4e 298 break;
yaolu23 0:7fac52628f4e 299 case 3:
yaolu23 0:7fac52628f4e 300 maxChar = 50;
yaolu23 0:7fac52628f4e 301 break;
yaolu23 0:7fac52628f4e 302 default:
yaolu23 0:7fac52628f4e 303 maxChar = 100;
yaolu23 0:7fac52628f4e 304 }
yaolu23 0:7fac52628f4e 305
yaolu23 0:7fac52628f4e 306 char* temp;
yaolu23 0:7fac52628f4e 307 int i = strSize;
yaolu23 0:7fac52628f4e 308 int lineNum = 0;
yaolu23 0:7fac52628f4e 309
yaolu23 0:7fac52628f4e 310 if(i < maxChar){
yaolu23 0:7fac52628f4e 311 vga.graphic_string(s, 0, lineIndex, font, color, 1, 1);
yaolu23 0:7fac52628f4e 312 if(font == 3){
yaolu23 0:7fac52628f4e 313 lineIndex += 20;
yaolu23 0:7fac52628f4e 314 }else{
yaolu23 0:7fac52628f4e 315 lineIndex += 10;
yaolu23 0:7fac52628f4e 316 }
yaolu23 0:7fac52628f4e 317 if(lineIndex < 480){
yaolu23 0:7fac52628f4e 318 return true;
yaolu23 0:7fac52628f4e 319 }else{
yaolu23 0:7fac52628f4e 320 return false;
yaolu23 0:7fac52628f4e 321 }
yaolu23 0:7fac52628f4e 322 }else{
yaolu23 0:7fac52628f4e 323 temp = new char[maxChar + 1];
yaolu23 0:7fac52628f4e 324 while(i > 0){
yaolu23 0:7fac52628f4e 325 if(i > maxChar){
yaolu23 0:7fac52628f4e 326 copyStr(s + lineNum * maxChar, temp, maxChar);
yaolu23 0:7fac52628f4e 327 i -= maxChar;
yaolu23 0:7fac52628f4e 328 }else{
yaolu23 0:7fac52628f4e 329 copyStr(s + lineNum * maxChar, temp, i);
yaolu23 0:7fac52628f4e 330 i = 0;
yaolu23 0:7fac52628f4e 331 }
yaolu23 0:7fac52628f4e 332 vga.graphic_string(temp, 0, lineIndex, font, color, 1, 1);
yaolu23 0:7fac52628f4e 333 lineNum++;
yaolu23 0:7fac52628f4e 334 if(font == 3){
yaolu23 0:7fac52628f4e 335 lineIndex += 20;
yaolu23 0:7fac52628f4e 336 }else{
yaolu23 0:7fac52628f4e 337 lineIndex += 10;
yaolu23 0:7fac52628f4e 338 }
yaolu23 0:7fac52628f4e 339 if(lineIndex >= 480){
yaolu23 0:7fac52628f4e 340 delete[] temp;
yaolu23 0:7fac52628f4e 341 return false;
yaolu23 0:7fac52628f4e 342 }
yaolu23 0:7fac52628f4e 343 }
yaolu23 0:7fac52628f4e 344 delete[] temp;
yaolu23 0:7fac52628f4e 345 }
yaolu23 0:7fac52628f4e 346 return true;
yaolu23 0:7fac52628f4e 347 }