view-mate: болванка + концепт + эскизы + сценарии (единый коммит, история очищена от hprof/build)

This commit is contained in:
Hermes Agent
2026-08-11 11:34:50 +03:00
commit 5268a12d20
25 changed files with 1234 additions and 0 deletions
@@ -0,0 +1,62 @@
package pw.binom.viewmate.core
import kotlinx.serialization.Serializable
/**
* Режимы очков. Переключаются с телефона (и жестом на очках).
* Каталог контента — НЕ режим: он живёт на телефоне (и в будущем —
* у голосового ассистента), а очки только показывают выбранное.
*/
@Serializable
enum class GlassesMode {
/** Кино: видео на очках (ExoPlayer), звук на телефоне. */
MOVIE,
/** Общение с ассистентом (Hermes): выбор сессии + разговор. */
CHAT,
}
/**
* Состояния режима кино. BROWSING здесь нет — выбор контента
* происходит на телефоне (каталог Jellyfin), очки получают готовое.
*/
@Serializable
enum class MovieState {
PLAYING,
PAUSED,
}
/**
* Состояния режима общения.
*/
@Serializable
enum class ChatState {
/** Выбор сессии (список сессий Hermes). */
SESSION_SELECT,
/** Разговор в активной сессии. */
TALKING,
}
/** Команды управления медиа — единые для очков и телефона. */
@Serializable
enum class MediaCommand {
PLAY,
PAUSE,
TOGGLE,
SEEK_FORWARD,
SEEK_BACKWARD,
NEXT_AUDIO,
PREV_AUDIO,
CLOSE,
}
/** Состояние воспроизведения (синхронизация очки ↔ телефон). */
@Serializable
data class PlaybackState(
val itemId: String? = null,
val positionMs: Long = 0,
val durationMs: Long = 0,
val audioIndex: Int = 0,
val playing: Boolean = false,
)