@@ -123,15 +123,17 @@ enumerateSerialDevices()
123123 return serialDevices;
124124}
125125
126- QComboBox *cbox_memory = nullptr ;
127- QComboBox *cbox_memory_2 = nullptr ;
126+ QComboBox *cbox_memory = nullptr ;
127+ QComboBox *cbox_memory_2 = nullptr ;
128128
129- QComboBox *cbox_bios = nullptr ;
129+ QComboBox *cbox_bios = nullptr ;
130+ QComboBox *cbox_in530_bootlogo = nullptr ;
130131
131- const _device_config_ *cfg_memory = nullptr ;
132- const _device_config_ *cfg_memory_2 = nullptr ;
132+ const _device_config_ *cfg_memory = nullptr ;
133+ const _device_config_ *cfg_memory_2 = nullptr ;
133134
134- const _device_config_ *cfg_bios = nullptr ;
135+ const _device_config_ *cfg_bios = nullptr ;
136+ const _device_config_ *cfg_in530_bootlogo = nullptr ;
135137
136138int bios_rows = 0 ;
137139
@@ -270,6 +272,11 @@ DeviceConfig::ProcessConfig(void *dc, const void *c, const bool is_dep)
270272 cbox_memory_2 = cbox;
271273 cfg_memory_2 = config;
272274 }
275+ if (!strcmp (config->name , " boot_logo" ) &&
276+ (cfg_dev != nullptr ) && !strcmp (cfg_dev->internal_name , " in530" )) {
277+ cbox_in530_bootlogo = cbox;
278+ cfg_in530_bootlogo = config;
279+ }
273280 break ;
274281 }
275282 case CONFIG_BIOS :
@@ -441,7 +448,9 @@ DeviceConfig::ProcessConfig(void *dc, const void *c, const bool is_dep)
441448 ++config;
442449 }
443450
444- if ((cfg_memory != nullptr ) && (cfg_bios != nullptr ) && (bios != -1 ))
451+ if ((cbox_bios != nullptr ) && (cfg_bios != nullptr ) && (bios != -1 ) &&
452+ (((cfg_memory != nullptr ) && (cbox_memory != nullptr )) ||
453+ ((cfg_in530_bootlogo != nullptr ) && (cbox_in530_bootlogo != nullptr ))))
445454 connect (cbox_bios, QOverload<int >::of (&QComboBox::currentIndexChanged), this , &DeviceConfig::on_comboIndexChanged);
446455
447456 on_comboIndexChanged (bios);
@@ -456,15 +465,17 @@ DeviceConfig::ConfigureDevice(const _device_ *device, int instance, Settings *se
456465
457466 cfg_dev = (device_t *) device;
458467
459- cbox_memory = nullptr ;
460- cbox_memory_2 = nullptr ;
468+ cbox_memory = nullptr ;
469+ cbox_memory_2 = nullptr ;
461470
462- cbox_bios = nullptr ;
471+ cbox_bios = nullptr ;
472+ cbox_in530_bootlogo = nullptr ;
463473
464- cfg_memory = nullptr ;
465- cfg_memory_2 = nullptr ;
474+ cfg_memory = nullptr ;
475+ cfg_memory_2 = nullptr ;
466476
467- cfg_bios = nullptr ;
477+ cfg_bios = nullptr ;
478+ cfg_in530_bootlogo = nullptr ;
468479
469480 bios_rows = 0 ;
470481
@@ -770,4 +781,41 @@ DeviceConfig::on_comboIndexChanged(int index)
770781 else
771782 cbox_memory_2->setEnabled (false );
772783 }
784+
785+ if ((cbox_in530_bootlogo != nullptr ) && (cbox_bios != nullptr ) &&
786+ (cfg_in530_bootlogo != nullptr ) && (cfg_bios != nullptr ) &&
787+ (cfg_dev != nullptr ) && !strcmp (cfg_dev->internal_name , " in530" ) &&
788+ (cbox_bios->currentIndex () >= 0 )) {
789+ const int bios_idx = cbox_bios->currentData ().toInt ();
790+ const char *bios_name = cfg_bios->bios [bios_idx].internal_name ;
791+ const int selector = (cbox_in530_bootlogo->currentIndex () >= 0 )
792+ ? cbox_in530_bootlogo->currentData ().toInt ()
793+ : cfg_in530_bootlogo->default_int ;
794+
795+ cbox_in530_bootlogo->clear ();
796+
797+ auto add_logo = [this ](const char *description, int value) {
798+ Models::AddEntry (cbox_in530_bootlogo->model (), tr (description), value);
799+ };
800+
801+ add_logo (" Disabled" , 4 );
802+
803+ if (!strcmp (bios_name, " in530_pb_111j" )) {
804+ add_logo (" Packard Bell" , 1 );
805+ add_logo (" NEC" , 2 );
806+ add_logo (" PowerMate" , 3 );
807+ } else if (!strcmp (bios_name, " in530_pb_129" )) {
808+ add_logo (" Packard Bell" , 1 );
809+ add_logo (" Japaq" , 2 );
810+ add_logo (" PowerMate" , 3 );
811+ } else {
812+ /* Only one logo */
813+ add_logo (" Enabled" , 1 );
814+ }
815+
816+ int current_index = cbox_in530_bootlogo->findData (selector);
817+ if (current_index < 0 )
818+ current_index = cbox_in530_bootlogo->findData (cfg_in530_bootlogo->default_int );
819+ cbox_in530_bootlogo->setCurrentIndex (current_index);
820+ }
773821}
0 commit comments