Mercurial > repos > blastem
comparison mediaplayer.c @ 2375:02c04196c2da
Fix mediaplayer play/pause handling
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 17 Nov 2023 00:30:46 -0800 |
parents | 97f164d1f0f6 |
children | 1c09f5be285b |
comparison
equal
deleted
inserted
replaced
2374:97f164d1f0f6 | 2375:02c04196c2da |
---|---|
680 } | 680 } |
681 } | 681 } |
682 | 682 |
683 static void gamepad_down(system_header *system, uint8_t pad, uint8_t button) | 683 static void gamepad_down(system_header *system, uint8_t pad, uint8_t button) |
684 { | 684 { |
685 if (button >= BUTTON_A && button <= BUTTON_C) { | 685 if (pad != 1) { |
686 media_player *player = (media_player *)system; | 686 return; |
687 } | |
688 media_player *player = (media_player *)system; | |
689 if (player->button_state[button]) { | |
690 //already pressed | |
691 return; | |
692 } | |
693 player->button_state[button] = 1; | |
694 if (button == BUTTON_A || button == BUTTON_C || button == BUTTON_START) { | |
687 if (player->state == STATE_PAUSED) { | 695 if (player->state == STATE_PAUSED) { |
688 player->state = STATE_PLAY; | 696 player->state = STATE_PLAY; |
689 puts("Now playing"); | 697 puts("Now playing"); |
690 } else { | 698 } else { |
691 player->state = STATE_PAUSED; | 699 player->state = STATE_PAUSED; |
694 } | 702 } |
695 } | 703 } |
696 | 704 |
697 static void gamepad_up(system_header *system, uint8_t pad, uint8_t button) | 705 static void gamepad_up(system_header *system, uint8_t pad, uint8_t button) |
698 { | 706 { |
707 if (pad != 1) { | |
708 return; | |
709 } | |
710 media_player *player = (media_player *)system; | |
711 player->button_state[button] = 0; | |
699 } | 712 } |
700 | 713 |
701 static void start_player(system_header *system, char *statefile) | 714 static void start_player(system_header *system, char *statefile) |
702 { | 715 { |
703 resume_player(system); | 716 resume_player(system); |
774 player->header.start_context = start_player; | 787 player->header.start_context = start_player; |
775 player->header.resume_context = resume_player; | 788 player->header.resume_context = resume_player; |
776 player->header.request_exit = request_exit; | 789 player->header.request_exit = request_exit; |
777 player->header.free_context = free_player; | 790 player->header.free_context = free_player; |
778 player->header.gamepad_down = gamepad_down; | 791 player->header.gamepad_down = gamepad_down; |
779 player->header.gamepad_up = gamepad_down; | 792 player->header.gamepad_up = gamepad_up; |
780 player->header.toggle_debug_view = toggle_debug_view; | 793 player->header.toggle_debug_view = toggle_debug_view; |
781 player->header.type = SYSTEM_MEDIA_PLAYER; | 794 player->header.type = SYSTEM_MEDIA_PLAYER; |
782 player->header.info.name = strdup(media->name); | 795 player->header.info.name = strdup(media->name); |
783 | 796 |
784 player->media = media; | 797 player->media = media; |