| 371 | QString programId = QString(""); |
| 372 | QString seriesId = QString(""); |
| 373 | QString rating = QString(""); |
| 374 | QString rating_system = QString(""); |
| 375 | QString advisory = QString(""); |
| 376 | float stars = 0.0; |
| 377 | |
| 378 | if (EITFixUp::kFixDish & fix) |
| 379 | { |
| 380 | const unsigned char *mpaa_data = |
| 381 | MPEGDescriptor::Find(list, DescriptorID::dish_event_mpaa); |
| 382 | if (mpaa_data) |
| 383 | { |
| 384 | DishEventMPAADescriptor mpaa(mpaa_data); |
| 385 | stars = mpaa.stars(); |
| 386 | |
| 387 | if (stars) // Only movies for now |
| 388 | { |
| 389 | rating = mpaa.rating(); |
| 390 | rating_system = "MPAA"; |
| 391 | advisory = mpaa.advisory(); |
| 392 | } |
| 393 | } |
| 394 | |
| 395 | if (!stars) // Not MPAA rated, check VCHIP |
| 396 | { |
| 397 | const unsigned char *vchip_data = |
| 398 | MPEGDescriptor::Find(list, DescriptorID::dish_event_vchip); |
| 399 | if (vchip_data) |
| 400 | { |
| 401 | DishEventVCHIPDescriptor vchip(vchip_data); |
| 402 | rating = vchip.rating(); |
| 403 | rating_system = "VCHIP"; |
| 404 | advisory = vchip.advisory(); |
| 405 | } |
| 406 | } |
| 407 | |
| 408 | if (!advisory.isEmpty() && !rating.isEmpty()) |
| 409 | rating += ", " + advisory; |
| 410 | else if (!advisory.isEmpty()) |
| 411 | { |
| 412 | rating = advisory; |
| 413 | rating_system = "advisory"; |
| 414 | } |
| 415 | |
| 416 | const unsigned char *tags_data = |
| 417 | MPEGDescriptor::Find(list, DescriptorID::dish_event_tags); |
| 418 | if (tags_data) |
| 419 | { |
| 420 | DishEventTagsDescriptor tags(tags_data); |
| 421 | seriesId = tags.seriesid(); |
| 422 | programId = tags.programid(); |
| 423 | } |
| 424 | |
| 425 | const unsigned char *properties_data = |
| 426 | MPEGDescriptor::Find(list, DescriptorID::dish_event_properties); |
| 427 | if (properties_data) |
| 428 | { |
| 429 | DishEventPropertiesDescriptor properties(properties_data); |
| 430 | subtitle_type |= properties.SubtitleProperties(descCompression); |
| 431 | audio_props |= properties.AudioProperties(descCompression); |
| 432 | } |
| 433 | } |
| 434 | |
375 | | ContentDescriptor content(content_data); |
376 | | category = content.GetDescription(0); |
377 | | category_type = content.GetMythCategory(0); |
| 439 | if ((EITFixUp::kFixDish & fix) || (EITFixUp::kFixBell & fix)) |
| 440 | { |
| 441 | DishContentDescriptor content(content_data); |
| 442 | category_type = content.GetTheme(); |
| 443 | if (EITFixUp::kFixDish & fix) |
| 444 | category = content.GetCategory(); |
| 445 | } |
| 446 | else |
| 447 | { |
| 448 | ContentDescriptor content(content_data); |
| 449 | category = content.GetDescription(0); |
| 450 | category_type = content.GetMythCategory(0); |
| 451 | } |