* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+/** @file server/server-queue.c
+ * @brief Server-specific track queue support
+ */
#include "disorder-server.h"
/* the head of the queue is played next, so normally we add to the tail */
if(q->uptopause == -1) /* Don't know how far thru. */
sofar = -1;
else if(q->lastresumed) /* Has been paused and resumed. */
- sofar = q->uptopause + time(0) - q->lastresumed;
+ sofar = q->uptopause + xtime(0) - q->lastresumed;
else /* Currently paused. */
sofar = q->uptopause;
} else /* Never been paused. */
- sofar = time(0) - q->played;
+ sofar = xtime(0) - q->played;
q->sofar = sofar;
}
}
char *buffer;
FILE *fp;
struct queue_entry *q;
- int version = 0;
+ int ver = 0;
if(!(fp = fopen(path, "r"))) {
if(errno == ENOENT)
while(!inputline(path, fp, &buffer, '\n')) {
if(buffer[0] == '#') {
/* Version indicator */
- version = atoi(buffer + 1);
+ ver = atoi(buffer + 1);
continue;
}
q = xmalloc(sizeof *q);
queue_unmarshall(q, buffer, queue_read_error, (void *)path);
- if(version < 1) {
+ if(ver < 1) {
/* Fix up origin field as best we can; will be wrong in some cases but
* hopefully not too horribly so. */
q->origin = q->submitter ? origin_picked : origin_random;
- if(q->state == playing_isscratch)
+ /* Eliminated obsolete states, since they are assumed elsewhere not to be
+ * set. */
+ switch(q->state) {
+ case playing_isscratch:
q->origin = origin_scratch;
+ q->state = playing_unplayed;
+ break;
+ case playing_random:
+ q->state = playing_unplayed;
+ break;
+ default:
+ break;
+ }
}
if(head == &qhead
&& (!q->track