X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=audiod_command.c;h=5bd511df7693a1c6713b2c95917791a1a72d2d39;hp=3467dbe1a1990c566b353c7450a828828996bdbc;hb=ff3b3cccbb2d8900270fddadcdb3bbc2f1d85f98;hpb=2607a94854dbc9d9415887cb9fa954e9227c1c65 diff --git a/audiod_command.c b/audiod_command.c index 3467dbe1..5bd511df 100644 --- a/audiod_command.c +++ b/audiod_command.c @@ -166,59 +166,61 @@ int com_kill(int fd, int argc, char **argv) return ret; } -int com_stat(int fd, __a_unused int argc, __a_unused char **argv) +int com_stat(int fd, int argc, char **argv) { int i, ret; char *buf = NULL; - long unsigned mask = ~0LU; + uint64_t mask = 0; + const uint64_t one = 1; if (argc > 1) { - mask = 0; for (i = 1; i < argc; i++) { ret = stat_item_valid(argv[i]); if (ret < 0) return ret; - mask |= (1 << ret); + mask |= (one << ret); } - } - PARA_INFO_LOG("mask: 0x%lx\n", mask); - if (mask & (1 << SI_PLAY_TIME)) { + } else + mask--; /* set all bits */ + PARA_INFO_LOG("mask: 0x%llx\n", (long long unsigned)mask); + if (mask & (one << SI_PLAY_TIME)) { int slot_num = get_play_time_slot_num(); char *ts = get_time_string(slot_num); if (ts) { + PARA_ERROR_LOG("play time: %s\n", ts); ret = client_write(fd, ts); + free(ts); if (ret < 0) goto out; - free(ts); } } - if (mask & (1 << SI_AUDIOD_UPTIME)) { + if (mask & (one << SI_AUDIOD_UPTIME)) { char *tmp, *us = uptime_str(); tmp = make_message("%s: %s\n", status_item_list[SI_AUDIOD_UPTIME], us); free(us); ret = client_write(fd, tmp); + free(tmp); if (ret < 0) goto out; - free(tmp); } - if (mask & (1 << SI_AUDIOD_STATUS)) { + if (mask & (one << SI_AUDIOD_STATUS)) { char *s = audiod_status_string(); ret = client_write(fd, s); + free(s); if (ret < 0) goto out; - free(s); } - if (mask & (1 << SI_DECODER_FLAGS)) { + if (mask & (one << SI_DECODER_FLAGS)) { char *df = decoder_flags(); ret = client_write(fd, df); + free(df); if (ret < 0) goto out; - free(df); } FOR_EACH_STATUS_ITEM(i) { char *tmp, *v; - if (!((1 << i) & mask)) + if (!((one << i) & mask)) continue; v = stat_item_values[i]; tmp = make_message("%s%s%s", buf? buf: "",