summaryrefslogtreecommitdiff
path: root/src/helsinki.at/rhimport/rddb.go
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2015-12-14 01:57:21 (GMT)
committerChristian Pointner <equinox@spreadspace.org>2015-12-14 01:57:21 (GMT)
commit4583360e526e25e7886f6257b1ae5c2745af4b8f (patch)
treed75832d378e0c5ffb32f27a87857cb6de26191f6 /src/helsinki.at/rhimport/rddb.go
parent377fe22c006a992a2b547bf5bab894161afb7ab6 (diff)
fetch Music Pool import-params
Diffstat (limited to 'src/helsinki.at/rhimport/rddb.go')
-rw-r--r--src/helsinki.at/rhimport/rddb.go36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/helsinki.at/rhimport/rddb.go b/src/helsinki.at/rhimport/rddb.go
index 03553b9..87ac17a 100644
--- a/src/helsinki.at/rhimport/rddb.go
+++ b/src/helsinki.at/rhimport/rddb.go
@@ -84,6 +84,17 @@ type checkMusicGroupRequest struct {
response chan checkMusicGroupResult
}
+type getMusicInfoResult struct {
+ norm_lvl int
+ trim_lvl int
+ err error
+}
+
+type getMusicInfoRequest struct {
+ group string
+ response chan getMusicInfoResult
+}
+
type RdDb struct {
dbh *sql.DB
password_cache map[string]string
@@ -95,6 +106,8 @@ type RdDb struct {
getShowInfoStmt *sql.Stmt
checkMusicGroupChan chan checkMusicGroupRequest
checkMusicGroupStmt *sql.Stmt
+ getMusicInfoChan chan getMusicInfoRequest
+ getMusicInfoStmt *sql.Stmt
quit chan bool
done chan bool
}
@@ -128,6 +141,9 @@ func (self *RdDb) init(conf *Config) (err error) {
if self.checkMusicGroupStmt, err = self.dbh.Prepare("select count(*) from DROPBOXES where GROUP_NAME = ? and SET_USER_DEFINED like \"M;%\";"); err != nil {
return
}
+ if self.getMusicInfoStmt, err = self.dbh.Prepare("select NORMALIZATION_LEVEL,AUTOTRIM_LEVEL from DROPBOXES where DROPBOXES.GROUP_NAME = ?;"); err != nil {
+ return
+ }
return
}
@@ -220,7 +236,7 @@ func (self *RdDb) getShowInfo(showid int) (title string, carts []int, norm_lvl i
func (self *RdDb) checkMusicGroup(group string) (ismusic bool, err error) {
var cnt int
- err = self.checkMusicGroupStmt.QueryRow(group).Scan(&cnt)
+ err = self.getMusicInfoStmt.QueryRow(group).Scan(&cnt)
if err != nil {
if err == sql.ErrNoRows {
err = nil
@@ -232,6 +248,17 @@ func (self *RdDb) checkMusicGroup(group string) (ismusic bool, err error) {
return
}
+func (self *RdDb) getMusicInfo(group string) (norm_lvl, trim_lvl int, err error) {
+ err = self.checkMusicGroupStmt.QueryRow(group).Scan(&norm_lvl, &trim_lvl)
+ if err != nil {
+ if err == sql.ErrNoRows {
+ err = fmt.Errorf("music pool '%d' not found", group)
+ }
+ return
+ }
+ return
+}
+
func (self *RdDb) dispatchRequests() {
defer func() { self.done <- true }()
for {
@@ -250,6 +277,9 @@ func (self *RdDb) dispatchRequests() {
case req := <-self.checkMusicGroupChan:
ismusic, err := self.checkMusicGroup(req.group)
req.response <- checkMusicGroupResult{ismusic, err}
+ case req := <-self.getMusicInfoChan:
+ norm_lvl, trim_lvl, err := self.getMusicInfo(req.group)
+ req.response <- getMusicInfoResult{norm_lvl, trim_lvl, err}
}
}
}
@@ -275,6 +305,9 @@ func (self *RdDb) Cleanup() {
if self.checkMusicGroupStmt != nil {
self.checkMusicGroupStmt.Close()
}
+ if self.getMusicInfoStmt != nil {
+ self.getMusicInfoStmt.Close()
+ }
}
func NewRdDb(conf *Config) (db *RdDb, err error) {
@@ -287,6 +320,7 @@ func NewRdDb(conf *Config) (db *RdDb, err error) {
db.getGroupOfCartChan = make(chan getGroupOfCartRequest)
db.getShowInfoChan = make(chan getShowInfoRequest)
db.checkMusicGroupChan = make(chan checkMusicGroupRequest)
+ db.getMusicInfoChan = make(chan getMusicInfoRequest)
if err = db.init(conf); err != nil {
return