File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -238,6 +238,9 @@ func (m *Manager) saveColorTempValueInCfg(value int32) {
238238func (m * Manager ) saveColorTempModeInCfg (mode int32 ) {
239239 m .modifySuitableUserMonitorModeConfig (func (cfg * UserMonitorModeConfig ) {
240240 cfg .ColorTemperatureMode = mode
241+ if cfg .ColorTemperatureMode != ColorTemperatureModeNone {
242+ cfg .ColorTemperatureModeOn = cfg .ColorTemperatureMode
243+ }
241244 })
242245 err := m .saveUserConfig ()
243246 if err != nil {
Original file line number Diff line number Diff line change @@ -100,6 +100,33 @@ func Start(service *dbusutil.Service) error {
100100 if err != nil {
101101 return err
102102 }
103+ so := service .GetServerObject (m )
104+ if so != nil {
105+ err = so .SetWriteCallback (m , "ColorTemperatureEnabled" , func (write * dbusutil.PropertyWrite ) * dbus.Error {
106+ value , ok := write .Value .(bool )
107+ if ! ok {
108+ err = errors .New ("Type is not bool" )
109+ logger .Warning (err )
110+ return dbusutil .ToError (err )
111+ }
112+ ok = m .setPropColorTemperatureEnabled (value )
113+ if ! ok {
114+ err = errors .New ("Set ColorTemperatureEnabled failed!" )
115+ logger .Warning (err )
116+ return dbusutil .ToError (err )
117+ }
118+ cfg := m .getSuitableUserMonitorModeConfig (m .DisplayMode )
119+ if cfg == nil {
120+ cfg = getDefaultUserMonitorModeConfig ()
121+ }
122+ mode := ColorTemperatureModeNone
123+ if value {
124+ mode = cfg .ColorTemperatureModeOn
125+ }
126+ err = m .setColorTempMode (mode )
127+ return dbusutil .ToError (err )
128+ })
129+ }
103130
104131 err = service .RequestName (dbusServiceName )
105132 if err != nil {
Original file line number Diff line number Diff line change @@ -72,6 +72,7 @@ const (
7272type UserMonitorModeConfig struct {
7373 ColorTemperatureMode int32
7474 ColorTemperatureManual int32
75+ ColorTemperatureModeOn int32 //记录用户开启色温时的模式
7576 // 以后如果有必要
7677 // Monitors UserMonitorConfigs
7778}
@@ -83,6 +84,9 @@ func (c *UserMonitorModeConfig) fix() {
8384 if ! isValidColorTempValue (c .ColorTemperatureManual ) {
8485 c .ColorTemperatureManual = defaultTemperatureManual
8586 }
87+ if c .ColorTemperatureMode != ColorTemperatureModeNone {
88+ c .ColorTemperatureModeOn = c .ColorTemperatureMode
89+ }
8690}
8791
8892func (c * UserMonitorModeConfig ) clone () * UserMonitorModeConfig {
@@ -97,6 +101,8 @@ func getDefaultUserMonitorModeConfig() *UserMonitorModeConfig {
97101 return & UserMonitorModeConfig {
98102 ColorTemperatureMode : defaultTemperatureMode ,
99103 ColorTemperatureManual : defaultTemperatureManual ,
104+ // TODO: 如果配置缺失,需要一个色温使能的模式
105+ ColorTemperatureModeOn : ColorTemperatureModeAuto ,
100106 }
101107}
102108
You can’t perform that action at this time.
0 commit comments