change scenes to use name as primary identifier.

This commit is contained in:
2022-08-19 23:17:39 +02:00
parent 382111583d
commit ca5dc75a1c
4 changed files with 10 additions and 10 deletions
+2 -2
View File
@@ -38,8 +38,8 @@ func main() {
} }
bus.RunCommand(commands.ReplaceScene{ bus.RunCommand(commands.ReplaceScene{
Match: "lucifer:name:Hex*", Match: "lucifer:name:Hex*",
SceneID: 7, SceneName: "Evening",
}) })
bus.RunCommand(commands.AddAlias{ bus.RunCommand(commands.AddAlias{
+3 -3
View File
@@ -5,12 +5,12 @@ import (
) )
type ReplaceScene struct { type ReplaceScene struct {
Match string `json:"match"` Match string `json:"match"`
SceneID int64 `json:"sceneId"` SceneName string `json:"sceneName"`
} }
func (c ReplaceScene) CommandDescription() string { func (c ReplaceScene) CommandDescription() string {
return fmt.Sprintf("ReplaceScene(%v, %d)", c.Match, c.SceneID) return fmt.Sprintf("ReplaceScene(%v, %s)", c.Match, c.SceneName)
} }
type ClearScene struct { type ClearScene struct {
+1 -1
View File
@@ -5,5 +5,5 @@ type Resolver interface {
} }
type SceneMap interface { type SceneMap interface {
SceneID(id string) *int64 SceneID(id string) *string
} }
+4 -4
View File
@@ -11,7 +11,7 @@ import (
func NewSceneMap(resolver device.Resolver) *SceneMap { func NewSceneMap(resolver device.Resolver) *SceneMap {
return &SceneMap{ return &SceneMap{
resolver: resolver, resolver: resolver,
sceneMap: make(map[string]int64, 64), sceneMap: make(map[string]string, 64),
} }
} }
@@ -19,10 +19,10 @@ type SceneMap struct {
resolver device.Resolver resolver device.Resolver
mu sync.Mutex mu sync.Mutex
sceneMap map[string]int64 sceneMap map[string]string
} }
func (s *SceneMap) SceneID(id string) *int64 { func (s *SceneMap) SceneID(id string) *string {
s.mu.Lock() s.mu.Lock()
defer s.mu.Unlock() defer s.mu.Unlock()
@@ -48,7 +48,7 @@ func (s *SceneMap) HandleCommand(_ *lucifer3.EventBus, command lucifer3.Command)
if len(matched) > 0 { if len(matched) > 0 {
s.mu.Lock() s.mu.Lock()
for _, ptr := range matched { for _, ptr := range matched {
s.sceneMap[ptr.ID] = command.SceneID s.sceneMap[ptr.ID] = command.SceneName
} }
s.mu.Unlock() s.mu.Unlock()
} }