feat: unified audio buffer + fragment reassembly fix
This commit is contained in:
@@ -2,6 +2,8 @@ package ts3client
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
"go-ts/pkg/protocol"
|
||||
)
|
||||
@@ -29,6 +31,34 @@ func (c *Client) GetChannel(id uint64) *Channel {
|
||||
return c.channels[id]
|
||||
}
|
||||
|
||||
// GetChannelByName returns the first channel matching the given name (case-insensitive substring match)
|
||||
func (c *Client) GetChannelByName(name string) *Channel {
|
||||
c.channelsMu.RLock()
|
||||
defer c.channelsMu.RUnlock()
|
||||
|
||||
// Debug: log all available channels
|
||||
log.Printf("[GetChannelByName] Searching for: %q, Available channels (%d):", name, len(c.channels))
|
||||
for id, ch := range c.channels {
|
||||
log.Printf("[GetChannelByName] - [%d] %q", id, ch.Name)
|
||||
}
|
||||
|
||||
// First try exact match
|
||||
for _, ch := range c.channels {
|
||||
if ch.Name == name {
|
||||
return ch
|
||||
}
|
||||
}
|
||||
|
||||
// Then try case-insensitive contains
|
||||
nameLower := strings.ToLower(name)
|
||||
for _, ch := range c.channels {
|
||||
if strings.Contains(strings.ToLower(ch.Name), nameLower) {
|
||||
return ch
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetCurrentChannel returns the client's current channel
|
||||
func (c *Client) GetCurrentChannel() *Channel {
|
||||
if c.selfInfo == nil {
|
||||
|
||||
Reference in New Issue
Block a user