Beispiel #1
0
static OSStatus coreaudio_device_volume_change_listener(AudioObjectID inObjectID,
							UInt32 inNumberAddresses,
							const AudioObjectPropertyAddress inAddresses[],
							void *inClientData)
{
	notify_via_pipe(coreaudio_mixer_pipe_in);
	return noErr;
}
Beispiel #2
0
static struct track_info *cmus_get_next_from_other_thread(void)
{
	static pthread_mutex_t mutex = CMUS_MUTEX_INITIALIZER;
	cmus_mutex_lock(&mutex);

	/* only one thread may request a track at a time */

	notify_via_pipe(cmus_next_track_request_fd_priv);

	cmus_next_file_lock();
	while (!cmus_next_file_provided)
		pthread_cond_wait(&cmus_next_file_cond, &cmus_next_file_mutex);
	struct track_info *ti = cmus_next_file;
	cmus_next_file_provided = 0;
	cmus_next_file_unlock();

	cmus_mutex_unlock(&mutex);

	return ti;
}