--- linuxdvb_ca.c.org 2015-11-08 19:11:48.927942552 +0100 +++ linuxdvb_ca.c.danne 2015-11-08 19:11:01.499728423 +0100 @@ -591,15 +591,23 @@ { linuxdvb_ca_t * lca = arg; - tvhlog(LOG_NOTICE, "en50221", "MMI menu from CAM in the slot %u:", slot_id); - tvhlog(LOG_NOTICE, "en50221", " title: %.*s", title->text_length, title->text); - tvhlog(LOG_NOTICE, "en50221", " subtitle: %.*s", sub_title->text_length, sub_title->text); + tvhlog(LOG_NOTICE, "en50221", "MMI1 list from CAM in the slot %u:", slot_id); + tvhlog(LOG_NOTICE, "en50221", " title: '%.*s'", title->text_length, title->text); + tvhlog(LOG_NOTICE, "en50221", " subtitle: '%.*s'", sub_title->text_length, sub_title->text); uint32_t i; for(i=0; i< item_count; i++) { - tvhlog(LOG_NOTICE, "en50221", " item %i: %.*s", i+1, items[i].text_length, items[i].text); + tvhlog(LOG_NOTICE, "en50221", " item %i: '%.*s'", i+1, items[i].text_length, items[i].text); } - tvhlog(LOG_NOTICE, "en50221", " bottom: %.*s", bottom->text_length, bottom->text); + tvhlog(LOG_NOTICE, "en50221", " bottom: '%.*s'", bottom->text_length, bottom->text); + + if (item_count > 1 && + items[0].text_length == 27 && strncmp((const char *)items[0].text, "Your host is not fully CI+ ", 27) == 0 && + items[1].text_length == 9 && strncmp((const char *)items[1].text, "compliant", 9) == 0) { + en50221_app_mmi_keypress(lca->lca_mmi_resource, session_num, 0x0d); + tvhlog(LOG_NOTICE, "en50221", "Sent Enter keypress"); + } + /* cancel menu */ en50221_app_mmi_close(lca->lca_mmi_resource, session_num, @@ -617,15 +625,22 @@ { linuxdvb_ca_t * lca = arg; - tvhlog(LOG_NOTICE, "en50221", "MMI list from CAM in the slot %u:", slot_id); - tvhlog(LOG_NOTICE, "en50221", " title: %.*s", title->text_length, title->text); - tvhlog(LOG_NOTICE, "en50221", " subtitle: %.*s", sub_title->text_length, sub_title->text); + tvhlog(LOG_NOTICE, "en50221", "MMI2 list from CAM in the slot %u:", slot_id); + tvhlog(LOG_NOTICE, "en50221", " title: '%.*s'", title->text_length, title->text); + tvhlog(LOG_NOTICE, "en50221", " subtitle: '%.*s'", sub_title->text_length, sub_title->text); uint32_t i; for(i=0; i< item_count; i++) { - tvhlog(LOG_NOTICE, "en50221", " item %i: %.*s", i+1, items[i].text_length, items[i].text); + tvhlog(LOG_NOTICE, "en50221", " item %i: '%.*s'", i+1, items[i].text_length, items[i].text); + } + tvhlog(LOG_NOTICE, "en50221", " bottom: '%.*s'", bottom->text_length, bottom->text); + + if (item_count > 1 && + items[0].text_length == 27 && strncmp((const char *)items[0].text, "Your host is not fully CI+ ", 27) == 0 && + items[1].text_length == 9 && strncmp((const char *)items[1].text, "compliant", 9) == 0) { + en50221_app_mmi_keypress(lca->lca_mmi_resource, session_num, 0x0d); + tvhlog(LOG_NOTICE, "en50221", "Sent Enter keypress"); } - tvhlog(LOG_NOTICE, "en50221", " bottom: %.*s", bottom->text_length, bottom->text); /* cancel menu */ en50221_app_mmi_close(lca->lca_mmi_resource, session_num,