scanner: add scanoptions struct

This commit is contained in:
sentriz
2020-05-01 02:12:17 +01:00
parent 08e775c9dd
commit 24212af42e
5 changed files with 24 additions and 32 deletions

View File

@@ -74,11 +74,8 @@ type Scanner struct {
func New(musicPath string, db *db.DB) *Scanner {
return &Scanner{
db: db,
musicPath: musicPath,
seenTracks: map[int]struct{}{},
seenFolders: map[int]struct{}{},
curFolders: &stack.Stack{},
db: db,
musicPath: musicPath,
}
}
@@ -129,22 +126,25 @@ func (s *Scanner) cleanArtists() (int, error) {
// ## begin entries
// ## begin entries
func (s *Scanner) Start(isFull bool) error {
type ScanOptions struct {
IsFull bool
Path string // TODO
}
func (s *Scanner) Start(opts ScanOptions) error {
if IsScanning() {
return errors.New("already scanning")
}
unSet := SetScanning()
defer unSet()
// reset tracking variables when finished
defer func() {
s.seenTracks = map[int]struct{}{}
s.seenFolders = map[int]struct{}{}
s.curFolders = &stack.Stack{}
s.seenTracksNew = 0
s.seenTracksErr = 0
}()
// reset state vars for the new scan
s.isFull = opts.IsFull
s.seenTracks = map[int]struct{}{}
s.seenFolders = map[int]struct{}{}
s.curFolders = &stack.Stack{}
s.seenTracksNew = 0
s.seenTracksErr = 0
// ** begin being walking
s.isFull = isFull
start := time.Now()
err := godirwalk.Walk(s.musicPath, &godirwalk.Options{
Callback: s.callbackItem,
@@ -182,14 +182,6 @@ func (s *Scanner) Start(isFull bool) error {
return nil
}
func (s *Scanner) StartInc() error {
return s.Start(false)
}
func (s *Scanner) StartFull() error {
return s.Start(true)
}
// items are passed to the handle*() functions
type item struct {
fullPath string