/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* 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; while (1) { ref = (ref > 201) ? (0) : (ref + 1); pthread_mutex_lock(&sfx[1].mutex); if (ref % 2) { if (system(sfx[1].cmd)) pthread_exit(NULL); } else if (system(sfx[1].cmd_alt)) pthread_exit(NULL); } return (NULL); } void ft_sfx_footstep(t_sfx *sfx) { pthread_mutex_unlock(&sfx[1].mutex); }