Merge pull request #168 from UniversityRadioYork/michaelg-channeltimers

Total Channel Duration
This commit is contained in:
Matthew Stratford 2020-10-26 22:10:08 +00:00 committed by GitHub
commit 801d5ae072
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 1 deletions

View file

@ -47,6 +47,16 @@ export function secToHHMM(sec: number = 0) {
return d.toLocaleString("en-GB").split(" ")[1]; return d.toLocaleString("en-GB").split(" ")[1];
} }
export function HHMMTosec(timeString: string = "00:00:00") {
var s: number = parseInt(timeString[7]);
s += 10 * parseInt(timeString[6]);
s += 60 * parseInt(timeString[4]);
s += 600 * parseInt(timeString[3]);
s += 3600 * parseInt(timeString[1]);
s += 36000 * parseInt(timeString[0]);
return s;
}
export function timestampToHHMM(sec: number = 0) { export function timestampToHHMM(sec: number = 0) {
return format(fromUnixTime(sec), "HH:mm:ss"); return format(fromUnixTime(sec), "HH:mm:ss");
} }

View file

@ -13,7 +13,7 @@ import { omit } from "lodash";
import { RootState } from "../rootReducer"; import { RootState } from "../rootReducer";
import * as MixerState from "../mixer/state"; import * as MixerState from "../mixer/state";
import * as ShowPlanState from "../showplanner/state"; import * as ShowPlanState from "../showplanner/state";
import { secToHHMM, timestampToHHMM } from "../lib/utils"; import { HHMMTosec, secToHHMM, timestampToHHMM } from "../lib/utils";
import ProModeButtons from "./ProModeButtons"; import ProModeButtons from "./ProModeButtons";
import { VUMeter } from "../optionsMenu/helpers/VUMeter"; import { VUMeter } from "../optionsMenu/helpers/VUMeter";
import * as api from "../api"; import * as api from "../api";
@ -221,6 +221,15 @@ export function Player({ id }: { id: number }) {
throw new Error("Unknown Player VUMeter source: " + id); throw new Error("Unknown Player VUMeter source: " + id);
} }
}; };
var duration: number = 0;
const plan = useSelector((state: RootState) => state.showplan.plan);
plan?.forEach((pItem) => {
if (pItem.channel === id) {
duration += HHMMTosec(pItem.length);
}
});
return ( return (
<div <div
className={ className={
@ -269,6 +278,7 @@ export function Player({ id }: { id: number }) {
<FaRedo /> <FaRedo />
&nbsp; Repeat {playerState.repeat} &nbsp; Repeat {playerState.repeat}
</button> </button>
<div>Total Time: {secToHHMM(duration)}</div>
</div> </div>
{proMode && <ProModeButtons channel={id} />} {proMode && <ProModeButtons channel={id} />}
<div className="card-body p-0"> <div className="card-body p-0">