Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions audio1/audio.go
Original file line number Diff line number Diff line change
Expand Up @@ -845,16 +845,6 @@ func (a *Audio) init() error {
go a.handleStateChanged()
logger.Debug("init done")

firstRun, err := a.audioDConfig.GetValueBool(dsgKeyFirstRun)
if err != nil {
logger.Warning(err)
}
if firstRun {
logger.Info("first run, Will remove old audio config")
removeConfig()
a.audioDConfig.SetValue(dsgKeyFirstRun, false)
}

if a.defaultSink != nil && !a.needAutoSwitchOutputPort() {
a.resumeSinkConfig(a.defaultSink)
a.setMono(a.Mono)
Expand Down
43 changes: 1 addition & 42 deletions audio1/audio_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ package audio

import (
"fmt"
"os"
"time"

dbus "github.com/godbus/dbus/v5"
Expand Down Expand Up @@ -35,52 +34,12 @@ func (a *Audio) saveConfig() {
}

func (a *Audio) doSaveConfig() {
var info = config{
Profiles: make(map[string]string),
}

ctx := a.context()
if ctx == nil {
logger.Warning("failed to save config, ctx is nil")
return
}

for _, card := range ctx.GetCardList() {
info.Profiles[card.Name] = card.ActiveProfile.Name
}

for _, sinkInfo := range ctx.GetSinkList() {
if a.getDefaultSinkName() != sinkInfo.Name {
continue
}

info.Sink = sinkInfo.Name
info.SinkPort = sinkInfo.ActivePort.Name
info.SinkVolume = sinkInfo.Volume.Avg()
break
}

for _, sourceInfo := range ctx.GetSourceList() {
if a.getDefaultSourceName() != sourceInfo.Name {
continue
}

info.Source = sourceInfo.Name
info.SourcePort = sourceInfo.ActivePort.Name
info.SourceVolume = sourceInfo.Volume.Avg()
break
}
_, err := readConfig()
if err != nil && !os.IsNotExist(err) {
logger.Warning(err)
}
if len(info.SourcePort) != 0 {
err = saveConfig(&info)
if err != nil {
logger.Warning("save config file failed:", info.string(), err)
}
}
err = a.saveAudioState()
err := a.saveAudioState()
if err != nil {
logger.Warning(err)
}
Expand Down
3 changes: 2 additions & 1 deletion audio1/bluez_audio.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ const (
)

const (
PriorityHandset = 20000
PriorityA2dp = 20000
PriorityHandset = 10000
PriorityHandfree = 10000
)

Expand Down
30 changes: 25 additions & 5 deletions audio1/card.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"fmt"
"math"
"sort"
"strings"

"github.com/linuxdeepin/go-lib/pulse"
"github.com/linuxdeepin/go-lib/strv"
Expand Down Expand Up @@ -113,11 +114,13 @@ func (c *Card) update(card *pulse.Card) {
logger.Debugf("filter bluez input port %s", port.Name)
port.Available = pulse.AvailableTypeNo
}
switch port.Name {
case "headset-output":
port.Priority += PriorityHandset
case "headset-hf-output":
port.Priority += PriorityHandfree
switch portBluezMode(&port) {
case bluezModeA2dp:
port.Priority = PriorityA2dp
case bluezModeHeadset:
port.Priority = PriorityHandset
case bluezModeHandsfree:
port.Priority = PriorityHandfree
}
}
}
Expand All @@ -128,6 +131,23 @@ func (c *Card) update(card *pulse.Card) {
c.sortPortsByPriority(card)
}

func portBluezMode(port *pulse.CardPortInfo) string {
for _, profile := range port.Profiles {
logger.Warningf("port<%s> profile<%s> %v", port.Name, profile.Name, profile.Available)

if strings.Contains(strings.ToLower(profile.Name), bluezModeA2dp) {
return bluezModeA2dp
}
if strings.Contains(strings.ToLower(profile.Name), bluezModeHeadset) {
return bluezModeHeadset
}
if strings.Contains(strings.ToLower(profile.Name), bluezModeHandsfree) {
return bluezModeHeadset
}
}
return ""
}

// sortPortsByPriority 根据端口的 Priority 属性排序,Priority 值小的在前(由低到高)
func (c *Card) sortPortsByPriority(card *pulse.Card) {
sort.SliceStable(c.Ports, func(i, j int) bool {
Expand Down
135 changes: 0 additions & 135 deletions audio1/config.go

This file was deleted.

20 changes: 0 additions & 20 deletions audio1/config_test.go

This file was deleted.

7 changes: 1 addition & 6 deletions audio1/sink.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,12 +128,7 @@ func (s *Sink) SetMono(enable bool) error {
var err error
a := s.audio
// 当存在单声道时,都给移除掉
for _, sink := range a.sinks {
if sink.Name == "remap-sink-mono" {
a.unsetMono()
break
}
}
a.unsetMono()
if enable {
// sink_master并非标准接口,而是识别物理设备对应的sink
a.context().LoadModule("module-remap-sink", fmt.Sprintf("sink_name=remap-sink-mono channels=1 channel_map=mono sink_master=%s", s.Name))
Expand Down
11 changes: 0 additions & 11 deletions misc/dsg-configs/org.deepin.dde.daemon.audio.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,17 +109,6 @@
"permissions": "readwrite",
"visibility": "private"
},
"firstRun": {
"value": true,
"serial": 0,
"flags": [],
"name": "firstRun",
"name[zh_CN]": "是否已初始化",
"description": "If no initialized, do it, otherwise nothing to do.",
"description[zh_CN]": "如果未初始化则执行初始化,否则不执行任何操作",
"permissions": "readwrite",
"visibility": "private"
},
"inputVolume": {
"value": 50,
"serial": 0,
Expand Down
Loading