@@ -390,7 +390,7 @@ class MetaDataID3V2 : public MetaDataID3Base {
390
390
const char * actual_tag;
391
391
ID3v2FrameString frame_header;
392
392
int use_bytes_of_next_write = 0 ;
393
- char result[ 256 ] ;
393
+ Vector< char > result{ 256 } ;
394
394
uint64_t total_len = 0 ;
395
395
uint64_t end_len = 0 ;
396
396
@@ -440,9 +440,9 @@ class MetaDataID3V2 : public MetaDataID3Base {
440
440
441
441
// get tag content
442
442
if (calcSize (frame_header.size ) <= len){
443
- int l = min (calcSize (frame_header.size )-1 , (uint32_t ) 256 );
444
- memset (result, 0 , 256 );
445
- strncpy ((char *)result, (char *) data+tag_pos+ID3FrameSize, l);
443
+ int l = min (calcSize (frame_header.size )-1 , (uint32_t ) result. size () );
444
+ memset (result. data (), 0 , result. size () );
445
+ strncpy ((char *)result. data () , (char *) data+tag_pos+ID3FrameSize, l);
446
446
int checkLen = min (l, 10 );
447
447
if (isAscii (checkLen)){
448
448
processnotifyAudioChange ();
@@ -461,7 +461,7 @@ class MetaDataID3V2 : public MetaDataID3Base {
461
461
int tag_pos = findTag (partial_tag, (const char *) data, len);
462
462
memmove (&frame_header, data+tag_pos, sizeof (ID3v2FrameString));
463
463
int size = min (len - tag_pos, (size_t ) calcSize (frame_header.size )-1 );
464
- strncpy ((char *)result, (char *)data+tag_pos+ID3FrameSize, size);
464
+ strncpy ((char *)result. data () , (char *)data+tag_pos+ID3FrameSize, size);
465
465
use_bytes_of_next_write = size;
466
466
status = PartialTagAtTail;
467
467
}
@@ -488,7 +488,7 @@ class MetaDataID3V2 : public MetaDataID3Base {
488
488
// / We have the beginning of the metadata and need to process the remainder
489
489
void processPartialTagAtTail (const uint8_t * data, size_t len) {
490
490
int remainder = calcSize (frame_header.size ) - use_bytes_of_next_write;
491
- memcpy (result+use_bytes_of_next_write, data, remainder);
491
+ memcpy (result. data () +use_bytes_of_next_write, data, remainder);
492
492
processnotifyAudioChange ();
493
493
494
494
status = TagNotFound;
@@ -511,27 +511,27 @@ class MetaDataID3V2 : public MetaDataID3Base {
511
511
if (callback!=nullptr && actual_tag!=nullptr && encodingIsSupported ()){
512
512
LOGI (" callback %s" ,actual_tag);
513
513
if (memcmp (actual_tag," TALB" ,4 )==0 )
514
- callback (Album, result, strnlength (result, 256 ));
514
+ callback (Album, result. data (), strnlength (result. data (), result. size () ));
515
515
else if (memcmp (actual_tag," TPE1" ,4 )==0 )
516
- callback (Artist, result,strnlength (result, 256 ));
516
+ callback (Artist, result. data () ,strnlength (result. data (), result. size () ));
517
517
else if (memcmp (actual_tag," TOPE" ,4 )==0 )
518
- callback (Artist, result,strnlength (result, 256 ));
518
+ callback (Artist, result. data () ,strnlength (result. data (), result. size () ));
519
519
else if (memcmp (actual_tag," TIT2" ,4 )==0 )
520
- callback (Title, result,strnlength (result, 256 ));
520
+ callback (Title, result. data () ,strnlength (result. data (), result. size () ));
521
521
else if (memcmp (actual_tag," TCON" ,4 )==0 ) {
522
522
if (result[0 ]==' (' ){
523
523
// convert genre id to string
524
- int end_pos = strpos ((char *)result, " )" );
524
+ int end_pos = strpos ((char *)result. data () , " )" );
525
525
if (end_pos>0 ){
526
526
// we just use the first entry
527
527
result[end_pos]=0 ;
528
- int idx = atoi (result+1 );
528
+ int idx = atoi (result. data () +1 );
529
529
if (idx>=0 && idx< (int )sizeof (genres)){
530
- strncpy ((char *)result, genres[idx],256 );
530
+ strncpy ((char *)result. data (), genres[idx], result. size () );
531
531
}
532
532
}
533
533
}
534
- callback (Genre, result,strnlength (result, 256 ));
534
+ callback (Genre, result. data () ,strnlength (result. data (), result. size () ));
535
535
}
536
536
}
537
537
}
0 commit comments