/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_sfx_footstep.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: rbousset +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/24 17:17:54 by rbousset #+# #+# */ /* Updated: 2020/02/24 17:17:56 by rbousset ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include #include #include void *ft_sfx_footstep_thread(void *vargp) { t_sfx *sfx; static uint8_t ref = 0; if (FT_OS == 1) pthread_setcancelstate(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); else pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); sfx = (t_sfx *)vargp; pthread_mutex_lock(&sfx->footstep_mutex); while (1) { ref = (ref > 201) ? (0) : (ref + 1); pthread_mutex_lock(&sfx->footstep_mutex); if (ref % 2) system(sfx->footstep_one); else system(sfx->footstep_two); } return (NULL); } void ft_sfx_footstep(t_cub *cl) { pthread_mutex_unlock(&cl->sfx.footstep_mutex); }