Previous 199869 Revisions Next

r31120 Thursday 26th June, 2014 at 11:42:06 UTC by Fabio Priuli
k054539: converted to use inline configs and delegates. nw.

with this, I'm done for the moment with konami chips.
[src/emu/sound]k054539.c k054539.h
[src/mame/drivers]djmain.c gijoe.c konamigq.c konamigx.c lethal.c moo.c mystwarr.c plygonet.c qdrmfgp.c rungun.c tmnt.c ultrsprt.c xexex.c xmen.c zr107.c
[src/mame/includes]xexex.h

trunk/src/mame/includes/xexex.h
r31119r31120
9696   void parse_control2(  );
9797   K056832_CB_MEMBER(tile_callback);
9898   K053246_CB_MEMBER(sprite_callback);
99   K054539_CB_MEMBER(ym_set_mixing);
99100};
trunk/src/mame/drivers/gijoe.c
r31119r31120
289289   PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW1:4" )    /* Listed as "Unused" */
290290INPUT_PORTS_END
291291
292static const k054539_interface k054539_config =
293{
294   NULL,
295   NULL,
296};
297
298292void gijoe_state::machine_start()
299293{
300294   m_dmadelay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gijoe_state::dmaend_callback),this));
r31119r31120
352346   /* sound hardware */
353347   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
354348
355   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
349   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
356350   MCFG_K054539_TIMER_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
357351   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
358352   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
trunk/src/mame/drivers/konamigq.c
r31119r31120
228228   m_sound_intck = state;
229229}
230230
231static const k054539_interface k054539_config =
232{
233   "shared"
234};
235
236231/* SCSI */
237232
238233void konamigq_state::scsi_dma_read( UINT32 *p_n_psxram, UINT32 n_address, INT32 n_size )
r31119r31120
331326   MCFG_K056800_ADD("k056800", XTAL_18_432MHz)
332327   MCFG_K056800_INT_HANDLER(INPUTLINE("soundcpu", M68K_IRQ_1))
333328
334   MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config)
329   MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz)
330   MCFG_K054539_REGION_OVERRRIDE("shared")
335331   MCFG_K054539_TIMER_HANDLER(WRITELINE(konamigq_state, k054539_irq_gen))
336332   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
337333   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
338334
339   MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config)
335   MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz)
336   MCFG_K054539_REGION_OVERRRIDE("shared")
340337   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
341338   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
342339MACHINE_CONFIG_END
trunk/src/mame/drivers/lethal.c
r31119r31120
463463INPUT_PORTS_END
464464
465465
466/* sound */
467
468static const k054539_interface k054539_config =
469{
470   NULL,
471   NULL,
472};
473
474466void lethal_state::machine_start()
475467{
476468   membank("bank1")->configure_entries(0, 0x20, memregion("maincpu")->base(), 0x2000);
r31119r31120
542534   /* sound hardware */
543535   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
544536
545   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
537   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
546538   MCFG_K054539_TIMER_HANDLER(INPUTLINE("soundcpu", INPUT_LINE_NMI))
547539   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
548540   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
trunk/src/mame/drivers/tmnt.c
r31119r31120
23842384MACHINE_CONFIG_END
23852385
23862386
2387static const k054539_interface k054539_config =
2388{
2389   NULL,
2390   NULL,
2391};
2392
23932387MACHINE_START_MEMBER(tmnt_state,prmrsocr)
23942388{
23952389   MACHINE_START_CALL_MEMBER(common);
r31119r31120
24492443   /* sound hardware */
24502444   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
24512445
2452   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
2446   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
24532447   MCFG_K054539_TIMER_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI))
24542448   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
24552449   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
trunk/src/mame/drivers/xexex.c
r31119r31120
292292   membank("z80bank")->set_entry(data & 0x07);
293293}
294294
295static void ym_set_mixing(device_t *device, double left, double right)
295K054539_CB_MEMBER(xexex_state::ym_set_mixing)
296296{
297   xexex_state *state = device->machine().driver_data<xexex_state>();
298   state->m_filter1l->flt_volume_set_volume((71.0 * left) / 55.0);
299   state->m_filter1r->flt_volume_set_volume((71.0 * right) / 55.0);
300   state->m_filter2l->flt_volume_set_volume((71.0 * left) / 55.0);
301   state->m_filter2r->flt_volume_set_volume((71.0 * right) / 55.0);
297   m_filter1l->flt_volume_set_volume((71.0 * left) / 55.0);
298   m_filter1r->flt_volume_set_volume((71.0 * right) / 55.0);
299   m_filter2l->flt_volume_set_volume((71.0 * left) / 55.0);
300   m_filter2r->flt_volume_set_volume((71.0 * right) / 55.0);
302301}
303302
304303TIMER_CALLBACK_MEMBER(xexex_state::dmaend_callback)
r31119r31120
448447
449448
450449
451static const k054539_interface k054539_config =
452{
453   NULL,
454   ym_set_mixing
455};
456
457450void xexex_state::xexex_postload()
458451{
459452   parse_control2();
r31119r31120
557550   MCFG_SOUND_ROUTE(1, "filter2l", 0.50)
558551   MCFG_SOUND_ROUTE(1, "filter2r", 0.50)
559552
560   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
553   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
554   MCFG_K054539_APAN_CB(xexex_state, ym_set_mixing)
561555   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
562556   MCFG_SOUND_ROUTE(0, "rspeaker", 1.0)
563557   MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
trunk/src/mame/drivers/ultrsprt.c
r31119r31120
208208
209209/*****************************************************************************/
210210
211static k054539_interface k054539_config;
212
213
214211static MACHINE_CONFIG_START( ultrsprt, ultrsprt_state )
215212   /* basic machine hardware */
216213   MCFG_CPU_ADD("maincpu", PPC403GA, 25000000)
r31119r31120
239236
240237   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
241238
242   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
239   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
243240   MCFG_K054539_TIMER_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_5))
244241   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
245242   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
trunk/src/mame/drivers/moo.c
r31119r31120
514514   m_sprite_colorbase = 0;
515515}
516516
517static k054539_interface k054539_config;
518
519517static MACHINE_CONFIG_START( moo, moo_state )
520518
521519   /* basic machine hardware */
r31119r31120
575573   MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
576574   MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
577575
578   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
576   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
579577   MCFG_SOUND_ROUTE(0, "lspeaker", 0.75)
580578   MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
581579MACHINE_CONFIG_END
trunk/src/mame/drivers/xmen.c
r31119r31120
320320
321321}
322322
323static k054539_interface k054539_config;
324
325323static MACHINE_CONFIG_START( xmen, xmen_state )
326324
327325   /* basic machine hardware */
r31119r31120
368366   MCFG_SOUND_ROUTE(0, "lspeaker", 0.20)
369367   MCFG_SOUND_ROUTE(1, "rspeaker", 0.20)
370368
371   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
369   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
372370   MCFG_SOUND_ROUTE(0, "lspeaker", 1.00)
373371   MCFG_SOUND_ROUTE(1, "rspeaker", 1.00)
374372MACHINE_CONFIG_END
r31119r31120
432430   MCFG_SOUND_ROUTE(0, "lspeaker", 0.20)
433431   MCFG_SOUND_ROUTE(1, "rspeaker", 0.20)
434432
435   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
433   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
436434   MCFG_SOUND_ROUTE(0, "lspeaker", 1.00)
437435   MCFG_SOUND_ROUTE(1, "rspeaker", 1.00)
438436MACHINE_CONFIG_END
trunk/src/mame/drivers/zr107.c
r31119r31120
535535   AM_RANGE(0x580000, 0x580001) AM_WRITENOP // 'NRES' - D2: K056602 /RESET
536536ADDRESS_MAP_END
537537
538static const k054539_interface k054539_config =
539{
540   "shared"
541};
542
543538/*****************************************************************************/
544539
545540
r31119r31120
807802
808803   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
809804
810   MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config)
805   MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz)
806   MCFG_K054539_REGION_OVERRRIDE("shared")
811807   MCFG_K054539_TIMER_HANDLER(WRITELINE(zr107_state, k054539_irq_gen))
812808   MCFG_SOUND_ROUTE(0, "lspeaker", 0.75)
813809   MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
814810
815   MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config)
811   MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz)
812   MCFG_K054539_REGION_OVERRRIDE("shared")
816813   MCFG_SOUND_ROUTE(0, "lspeaker", 0.75)
817814   MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
818815
r31119r31120
887884
888885   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
889886
890   MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config)
887   MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz)
888   MCFG_K054539_REGION_OVERRRIDE("shared")
891889   MCFG_K054539_TIMER_HANDLER(WRITELINE(zr107_state, k054539_irq_gen))
892890   MCFG_SOUND_ROUTE(0, "lspeaker", 0.75)
893891   MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
894892
895   MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config)
896   MCFG_SOUND_CONFIG(k054539_config)
893   MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz)
894   MCFG_K054539_REGION_OVERRRIDE("shared")
897895   MCFG_SOUND_ROUTE(0, "lspeaker", 0.75)
898896   MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
899897
trunk/src/mame/drivers/djmain.c
r31119r31120
13351335
13361336/*************************************
13371337 *
1338 *  Sound interfaces
1339 *
1340 *************************************/
1341
1342static const k054539_interface k054539_config =
1343{
1344   "shared"
1345};
1346
1347
1348
1349/*************************************
1350 *
13511338 *  Machine-specific init
13521339 *
13531340 *************************************/
r31119r31120
14241411   /* sound hardware */
14251412   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
14261413
1427   MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config)
1428   MCFG_SOUND_CONFIG(k054539_config)
1414   MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz)
1415   MCFG_K054539_REGION_OVERRRIDE("shared")
14291416   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
14301417   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
14311418
1432   MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config)
1433   MCFG_SOUND_CONFIG(k054539_config)
1419   MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz)
1420   MCFG_K054539_REGION_OVERRRIDE("shared")
14341421   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
14351422   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
14361423MACHINE_CONFIG_END
trunk/src/mame/drivers/plygonet.c
r31119r31120
574574ADDRESS_MAP_END
575575
576576
577static const k054539_interface k054539_config =
578{
579   "shared",
580   NULL,
581};
582
583577/**********************************************************************************/
584578static const gfx_layout bglayout =
585579{
r31119r31120
678672   /* sound hardware */
679673   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
680674
681   MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config)
675   MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz)
676   MCFG_K054539_REGION_OVERRRIDE("shared")
682677   MCFG_K054539_TIMER_HANDLER(WRITELINE(polygonet_state, k054539_nmi_gen))
683678   MCFG_SOUND_ROUTE(0, "lspeaker", 0.75)
684679   MCFG_SOUND_ROUTE(1, "rspeaker", 0.75)
trunk/src/mame/drivers/rungun.c
r31119r31120
323323GFXDECODE_END
324324
325325
326
327static const k054539_interface k054539_config =
328{
329   "shared"
330};
331
332
333326void rungun_state::machine_start()
334327{
335328   UINT8 *ROM = memregion("soundcpu")->base();
r31119r31120
399392   /* sound hardware */
400393   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
401394
402   MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config)
395   MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz)
396   MCFG_K054539_REGION_OVERRRIDE("shared")
403397   MCFG_K054539_TIMER_HANDLER(WRITELINE(rungun_state, k054539_nmi_gen))
404398   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
405399   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
406400
407   MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config)
401   MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz)
402   MCFG_K054539_REGION_OVERRRIDE("shared")
408403   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
409404   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
410405MACHINE_CONFIG_END
trunk/src/mame/drivers/mystwarr.c
r31119r31120
643643   m_sound_nmi_clk = state;
644644}
645645
646static const k054539_interface k054539_config =
647{
648   "shared"
649};
650
651646/**********************************************************************************/
652647
653648static INPUT_PORTS_START( mystwarr )
r31119r31120
10311026   /* sound hardware */
10321027   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
10331028
1034   MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config)
1029   MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz)
1030   MCFG_K054539_REGION_OVERRRIDE("shared")
10351031   MCFG_K054539_TIMER_HANDLER(WRITELINE(mystwarr_state, k054539_nmi_gen))
10361032   MCFG_SOUND_ROUTE(0, "rspeaker", 1.0)    /* stereo channels are inverted */
10371033   MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
10381034
1039   MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config)
1035   MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz)
1036   MCFG_K054539_REGION_OVERRRIDE("shared")
10401037   MCFG_SOUND_ROUTE(0, "rspeaker", 1.0)    /* stereo channels are inverted */
10411038   MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
10421039MACHINE_CONFIG_END
trunk/src/mame/drivers/konamigx.c
r31119r31120
11241124   AM_RANGE(0x00000, 0x3ffff) AM_RAM
11251125ADDRESS_MAP_END
11261126
1127static const k054539_interface k054539_config =
1128{
1129   "shared"
1130};
11311127
1132
11331128WRITE_LINE_MEMBER(konamigx_state::k054539_irq_gen)
11341129{
11351130   if (m_sound_ctrl & 1)
r31119r31120
16661661   MCFG_K056800_ADD("k056800", XTAL_18_432MHz)
16671662   MCFG_K056800_INT_HANDLER(INPUTLINE("soundcpu", M68K_IRQ_1))
16681663
1669   MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config)
1664   MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz)
1665   MCFG_K054539_REGION_OVERRRIDE("shared")
16701666   MCFG_K054539_TIMER_HANDLER(WRITELINE(konamigx_state, k054539_irq_gen))
16711667   MCFG_SOUND_ROUTE_EX(0, "dasp", 0.5, 0)
16721668   MCFG_SOUND_ROUTE_EX(1, "dasp", 0.5, 1)
16731669   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
16741670   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
16751671
1676   MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config)
1672   MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz)
1673   MCFG_K054539_REGION_OVERRRIDE("shared")
16771674   MCFG_SOUND_ROUTE_EX(0, "dasp", 0.5, 2)
16781675   MCFG_SOUND_ROUTE_EX(1, "dasp", 0.5, 3)
16791676   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
trunk/src/mame/drivers/qdrmfgp.c
r31119r31120
534534   m_sound_intck = state;
535535}
536536
537static const k054539_interface k054539_config =
538{
539   NULL,
540   NULL,
541};
542
543
544537/*************************************
545538 *
546539 *  Machine-specific init
r31119r31120
617610   /* sound hardware */
618611   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
619612
620   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
613   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
621614   MCFG_K054539_TIMER_HANDLER(WRITELINE(qdrmfgp_state, k054539_irq1_gen))
622615   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
623616   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
r31119r31120
664657   /* sound hardware */
665658   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
666659
667   MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config)
660   MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz)
668661   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
669662   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
670663MACHINE_CONFIG_END
trunk/src/emu/sound/k054539.c
r31119r31120
1818k054539_device::k054539_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1919   : device_t(mconfig, K054539, "K054539 ADPCM", tag, owner, clock, "k054539", __FILE__),
2020      device_sound_interface(mconfig, *this),
21      m_timer_handler(*this)
21      m_timer_handler(*this),
22      m_rgnoverride(NULL)
2223{
2324}
2425
2526
26//-------------------------------------------------
27//  static_set_interface - configuration helper
28//  to set the interface
29//-------------------------------------------------
30
31void k054539_device::static_set_interface(device_t &device, const k054539_interface &interface)
32{
33   k054539_device &k = downcast<k054539_device &>(device);
34   static_cast<k054539_interface &>(k) = interface;
35}
36
3727/* Registers:
3828   00..ff: 20 bytes/channel, 8 channels
3929     00..02: pitch (lsb, mid, msb)
r31119r31120
318308   cur_ptr = 0;
319309   memset(ram, 0, 0x4000);
320310
321   memory_region *reg = (rgnoverride != NULL) ? machine().root_device().memregion(rgnoverride) : region();
311   memory_region *reg = (m_rgnoverride != NULL) ? machine().root_device().memregion(m_rgnoverride) : region();
322312   rom = *reg;
323313   rom_size = reg->bytes();
324314   rom_mask = 0xffffffffU;
r31119r31120
376366      switch(offset) {
377367      case 0x13f: {
378368         int pan = data >= 0x11 && data <= 0x1f ? data - 0x11 : 0x18 - 0x11;
379         if(apan)
380            apan(this, pantab[pan], pantab[0xe - pan]);
369         if (!m_apan_cb.isnull())
370            m_apan_cb(pantab[pan], pantab[0xe - pan]);
381371         break;
382372      }
383373
r31119r31120
501491void k054539_device::device_start()
502492{
503493   m_timer = timer_alloc(0);
504
494   
495   // resolve / bind callbacks
505496   m_timer_handler.resolve_safe();
506
497   m_apan_cb.bind_relative_to(*owner());
498   
507499   for (int i = 0; i < 8; i++)
508500      gain[i] = 1.0;
509501
trunk/src/emu/sound/k054539.h
r31119r31120
99#ifndef __K054539_H__
1010#define __K054539_H__
1111
12#define MCFG_K054539_ADD(_tag, _clock, _interface) \
13   MCFG_DEVICE_ADD(_tag, K054539, _clock) \
14   k054539_device::static_set_interface(*device, _interface);
12typedef device_delegate<void (double left, double right)> k054539_cb_delegate;
13#define K054539_CB_MEMBER(_name)   void _name(double left, double right)
1514
15#define MCFG_K054539_APAN_CB(_class, _method) \
16   k054539_device::set_analog_callback(*device, k054539_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
17
18#define MCFG_K054539_REGION_OVERRRIDE(_region) \
19   k054539_device::set_override(*device, _region);
20
1621#define MCFG_K054539_TIMER_HANDLER(_devcb) \
1722   devcb = &k054539_device::set_timer_handler(*device, DEVCB_##_devcb);
1823
19struct k054539_interface
20{
21   const char *rgnoverride;
22   void (*apan)(device_t *, double, double);   /* Callback for analog output mixing levels (0..1 for each channel) */
23};
2424
25
2625//* control flags, may be set at DRIVER_INIT().
2726#define K054539_RESET_FLAGS     0
2827#define K054539_REVERSE_STEREO  1
2928#define K054539_DISABLE_REVERB  2
3029#define K054539_UPDATE_AT_KEYON 4
3130
32void k054539_init_flags(device_t *device, int flags);
33
34void k054539_set_gain(device_t *device, int channel, double gain);
35
3631class k054539_device : public device_t,
37                  public device_sound_interface,
38                  public k054539_interface
32                  public device_sound_interface
3933{
4034public:
4135   enum {
r31119r31120
4943   k054539_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
5044
5145   // static configuration helpers
52   static void static_set_interface(device_t &device, const k054539_interface &interface);
46   static void set_analog_callback(device_t &device, k054539_cb_delegate callback) { downcast<k054539_device &>(device).m_apan_cb = callback; }
47   static void set_override(device_t &device, const char *rgnoverride) { downcast<k054539_device &>(device).m_rgnoverride = rgnoverride; }
5348   template<class _Object> static devcb_base &set_timer_handler(device_t &device, _Object object) { return downcast<k054539_device &>(device).m_timer_handler.set_callback(object); }
5449
5550
r31119r31120
110105   channel channels[8];
111106   sound_stream *stream;
112107
113   emu_timer           *m_timer;
114   UINT32              m_timer_state;
108   emu_timer          *m_timer;
109   UINT32             m_timer_state;
115110   devcb_write_line   m_timer_handler;
111   const char         *m_rgnoverride;
112   k054539_cb_delegate m_apan_cb;
116113
117114   bool regupdate();
118115   void keyon(int channel);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team