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;