chiark / gitweb /
more automation of test logic
[disorder] / server / play.h
CommitLineData
460b9539 1/*
2 * This file is part of DisOrder.
3 * Copyright (C) 2004, 2005, 2006 Richard Kettlewell
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18 * USA
19 */
20
21#ifndef PLAY_H
22#define PLAY_H
23
24extern struct queue_entry *playing; /* playing track or 0 */
25extern int paused; /* non-0 if paused */
26
27void play(ev_source *ev);
28/* try to play something, if playing is enabled and nothing is playing
29 * already */
30
31int playing_is_enabled(void);
32/* return true iff playing is enabled */
33
34void enable_playing(const char *who, ev_source *ev);
35/* enable playing */
36
37void disable_playing(const char *who);
38/* disable playing. */
39
40int random_is_enabled(void);
41/* return true iff random play is enabled */
42
43void enable_random(const char *who, ev_source *ev);
44/* enable random play */
45
46void disable_random(const char *who);
47/* disable random play */
48
49void scratch(const char *who, const char *id);
50/* scratch the playing track. @who@ identifies the scratcher. @id@ is
51 * the ID or a null pointer. */
52
53void quitting(ev_source *ev);
54/* called to terminate current track and shut down speaker process
55 * when quitting */
56
57void speaker_setup(ev_source *ev);
58/* set up the speaker subprocess */
59
60void speaker_reload(void);
61/* Tell the speaker process to reload its configuration. */
62
63int pause_playing(const char *who);
64/* Pause the current track. Return 0 on success, -1 on error. WHO
65 * can be 0. */
66
67void resume_playing(const char *who);
68/* Resume after a pause. WHO can be 0. */
69
70int prepare(ev_source *ev,
71 struct queue_entry *q);
72/* Prepare to play Q */
73
74void abandon(ev_source *ev,
75 struct queue_entry *q);
76/* Abandon a possibly-prepared track. */
77
78int add_random_track(void);
79/* If random play is enabled then try to add a track to the queue. On success
80 * (including deliberartely doing nothing) return 0. On error return -1. */
81
82#endif /* PLAY_H */
83
84/*
85Local Variables:
86c-basic-offset:2
87comment-column:40
88fill-column:79
89End:
90*/