import { bind } from "astal";
import { Gtk } from "astal/gtk4";
import AstalMpris from "gi://AstalMpris";
import Pango from "gi://Pango?version=1.0";
const ALIGN = Gtk.Align;
const mpris = AstalMpris.get_default();
mpris.connect("player-added", p => {
    print("Player added:", p);
});
const PlayerModule = () => {
    return (
        
            
            
            
                {bind(mpris, "players").as(players => {
                    return players.map(player => {
                        return ;
                    });
                })}
            
            
        
    );
};
// TODO: Update widths
const pbStatus = AstalMpris.PlaybackStatus;
const PlayerItem = ({ player }: { player: AstalMpris.Player }) => {
    return (
        
            
            
                
                
                 l > 0)}
                    value={bind(player, "position")}
                    min={0}
                    max={bind(player, "length")}
                    onChangeValue={v =>
                        player.set_position(v.get_value())
                    }
                >
                
                                secondsToFriendlyTime(v),
                            )}
                            hexpand
                            cssClasses={["position"]}
                        >
                    }
                    centerWidget={
                        
                            
                            
                            
                        
                    }
                    endWidget={
                        
                    }
                >
            
        
    );
};
const secondsToFriendlyTime = (time: number) => {
    const m = Math.floor(time / 60);
    const minutes = Math.floor(m % 60);
    const hours = Math.floor(m / 60 % 24);
    const seconds = Math.floor(time % 60);
    if (hours > 0) {
        return `${hours}:${expandTime(minutes)}:${expandTime(seconds)}`;
    } else {
        return `${minutes}:${expandTime(seconds)}`;
    }
};
const expandTime = (time: number): string => {
    return time < 10 ? `0${time}` : "" + time;
};
export default {
    PlayerModule,
};