@@ -132,6 +132,38 @@ static const struct engine_s engine_match[] = {
132132 { NULL , -1 }
133133};
134134
135+ #ifdef HAVE_USBSID
136+ int us_setparam (const char * param , void * extra_param )
137+ {
138+ printf ("KUT: %s %s %s\n" , param , (char * )& extra_param , (char * )extra_param );
139+ if ((!strcmp (((char * )extra_param ), "rw" )) && (strlen (param ) >= 1 )) {
140+ int r = atoi (param );
141+ printf ("R: %d\n" , r );
142+ resources_set_int ("SidUSBSIDReadMode" , r );
143+ usbsid_set_readmode (r );
144+ }
145+ if ((!strcmp (((char * )extra_param ), "audio" )) && (strlen (param ) >= 1 )) {
146+ int a = atoi (param );
147+ printf ("A: %d\n" , a );
148+ resources_set_int ("SidUSBSIDAudioMode" , a );
149+ usbsid_set_audiomode (a );
150+ }
151+ if ((!strcmp (((char * )extra_param ), "diff" )) && (strlen (param ) >= 1 )) {
152+ int d = atoi (param );
153+ printf ("D: %d\n" , d );
154+ resources_set_int ("SidUSBSIDDiffSize" , d );
155+ usbsid_set_diffsize (d );
156+ }
157+ if ((!strcmp (((char * )extra_param ), "buff" )) && (strlen (param ) >= 1 )) {
158+ int b = atoi (param );
159+ printf ("B: %d\n" , b );
160+ resources_set_int ("SidUSBSIDBufferSize" , b );
161+ usbsid_set_buffsize (b );
162+ }
163+ return 0 ;
164+ }
165+ #endif
166+
135167int sid_common_set_engine_model (const char * param , void * extra_param )
136168{
137169 int engine ;
@@ -240,12 +272,32 @@ static const cmdline_option_t hardsid_cmdline_options[] =
240272#ifdef HAVE_USBSID
241273static const cmdline_option_t usbsid_cmdline_options [] =
242274{
275+
243276 { "-usreadmode" , SET_RESOURCE , CMDLINE_ATTRIB_NEED_ARGS ,
244277 NULL , NULL , "SidUSBSIDReadMode" , NULL ,
245278 "<1 or 0>" , "Enable USBSID read mode (disables cycled writing & digiplay)" },
246279 { "-usaudiomode" , SET_RESOURCE , CMDLINE_ATTRIB_NEED_ARGS ,
247280 NULL , NULL , "SidUSBSIDAudioMode" , NULL ,
248281 "<1 or 0>" , "Set audio to Stereo(1) or Mono(0) (Default)" },
282+ { "-usdiffsize" , SET_RESOURCE , CMDLINE_ATTRIB_NEED_ARGS ,
283+ NULL , NULL , "SidUSBSIDDiffSize" , NULL ,
284+ "<n divisable by 8>" , "Write buffer head -> tail diff size (default: 64)" },
285+ { "-usbuffsize" , SET_RESOURCE , CMDLINE_ATTRIB_NEED_ARGS ,
286+ NULL , NULL , "SidUSBSIDBufferSize" , NULL ,
287+ "<n divisable by 8>" , "Write buffer size (default: 8192)" },
288+
289+ // { "-usreadmode", CALL_FUNCTION, CMDLINE_ATTRIB_NEED_ARGS,
290+ // us_setparam, "rw", "SidUSBSIDReadMode", NULL,
291+ // "<1 or 0>", "Enable USBSID read mode (disables cycled writing & digiplay)" },
292+ // { "-usaudiomode", CALL_FUNCTION, CMDLINE_ATTRIB_NEED_ARGS,
293+ // us_setparam, "audio", "SidUSBSIDAudioMode", NULL,
294+ // "<1 or 0>", "Set audio to Stereo(1) or Mono(0) (Default)" },
295+ // { "-usbuffsize", CALL_FUNCTION, CMDLINE_ATTRIB_NEED_ARGS,
296+ // us_setparam, "buff", "SidUSBSIDBufferSize", NULL,
297+ // "<n divisable by 8>", "Write buffer size (default: 8192)" },
298+ // { "-usdiffsize", CALL_FUNCTION, CMDLINE_ATTRIB_NEED_ARGS,
299+ // us_setparam, "diff", "SidUSBSIDDiffSize", NULL,
300+ // "<n divisable by 8>", "Write buffer head -> tail diff size (default: 64)" },
249301 CMDLINE_LIST_END
250302};
251303#endif
@@ -493,7 +545,7 @@ static char *build_sid_engine_cmdline_option(int sid_type)
493545#endif
494546
495547#ifdef HAVE_USBSID
496- /* add hardsid options if available */
548+ /* add usbsid options if available */
497549 if (usbsid_available ()) {
498550 new = util_concat (old , ", 5: USBSID" , NULL );
499551 lib_free (old );
0 commit comments