Implémentation du shuffle de la queue de lecture
Ajout de la fonctionnalité de shuffle pour mélanger l'ordre des morceaux dans la queue de lecture.
- Implémentation de la méthode shuffle_queue() dans MusicRenderer
- Ajout de l'endpoint REST /api/control/renderers/{renderer_id}/queue/shuffle
- Intégration du bouton shuffle dans l'interface Vue.js
- Centralisation des émissions d'événements SSE dans le MusicRenderer
- Mise à jour de la documentation OpenAPI
Cette fonctionnalité permet de randomiser l'ordre des morceaux dans la queue et de redémarrer la lecture depuis le premier morceau, tout en améliorant l'architecture en centralisant les émissions d'événements.
This commit is contained in:
@@ -3,6 +3,7 @@ import { computed } from "vue";
|
||||
import { Server, Music2 } from "lucide-vue-next";
|
||||
import StatusBadge from "@/components/pmocontrol/StatusBadge.vue";
|
||||
import TimerControl from "@/components/pmocontrol/TimerControl.vue";
|
||||
import ShuffleControl from "@/components/pmocontrol/ShuffleControl.vue";
|
||||
import type {
|
||||
RendererSummary,
|
||||
RendererState,
|
||||
@@ -113,8 +114,9 @@ function handleRendererDrawerClick() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sleep Timer (si un renderer est actif) -->
|
||||
<div v-if="activeRenderer" class="timer-section">
|
||||
<!-- Shuffle et Sleep Timer (si un renderer est actif) -->
|
||||
<div v-if="activeRenderer" class="controls-section">
|
||||
<ShuffleControl :renderer-id="activeRenderer.id" />
|
||||
<TimerControl :renderer-id="activeRenderer.id" />
|
||||
</div>
|
||||
|
||||
@@ -342,6 +344,14 @@ function handleRendererDrawerClick() {
|
||||
border: 1px solid rgba(239, 68, 68, 0.3);
|
||||
}
|
||||
|
||||
/* Controls section (shuffle + timer) */
|
||||
.controls-section {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* Mobile responsive */
|
||||
@media (max-width: 768px) {
|
||||
.bottom-bar {
|
||||
|
||||
Reference in New Issue
Block a user