/* CSettingsStorage.cpp */
/* Copyright (C) 2011 Lucio Carreras
*
* This file is part of sayonara player
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "HelperStructs/Helper.h"
#include "HelperStructs/PlaylistMode.h"
#include "HelperStructs/CSettingsStorage.h"
//#include "DatabaseAccess/CDatabaseConnector.h"
#include <QFile>
#include <QDir>
#include <QDebug>
SettingsThread::SettingsThread(QWidget* parent){
_settings = CSettingsStorage::getInstance();
_goon = true;
_parent = parent;
}
SettingsThread::~SettingsThread(){}
void SettingsThread::run(){
while(_goon){
usleep(5000000);
/*QPoint p = _parent->pos();
qDebug() << p;*/
// qDebug() << _settings->getPlayerPos();
/*QPoint p2 = QPoint(100, 100);//_settings->getPlayerPos();
if(p.x() != p2.x() || p.y() != p2.y()){
qDebug() << p;
}*/
if(_settings->get_sth_changed()){
_settings->set_sth_changed(false);
_settings->save_all();
}
}
qDebug() << "thread finished";
}
void SettingsThread::stop(){
_goon = false;
}
CSettingsStorage * CSettingsStorage::getInstance() {
static CSettingsStorage inst;
return &inst;
}
bool CSettingsStorage::isRunFirstTime () {
bool ret = false;
QDir dir = QDir::homePath();
if (dir.cd(this -> m_sayonaraPath)) {
qDebug() << dir.path() + "/" + m_dbFile;
QFile f (dir.path() + "/" + m_dbFile);
ret = f.exists();
}
return ret;
}
CSettingsStorage::~CSettingsStorage () {
//is called
}
void CSettingsStorage::init() {
m_dbFile = "player.db";
m_dbSource = "empty.db";
m_sayonaraPath = ".Sayonara";
}
QString CSettingsStorage::getDBFileName () {
return Helper::getSayonaraPath() + QDir::separator() + m_dbFile;
}
void CSettingsStorage::set_sth_changed(bool b){
_sth_changed = b;
}
bool CSettingsStorage::get_sth_changed(){
return _sth_changed;
}
void CSettingsStorage::save_all(){
emit sig_save_all();
}
QString CSettingsStorage::getVersion(){
return _version;
}
void CSettingsStorage::setVersion(QString version){
_version = version;
_sth_changed = true;
}
bool CSettingsStorage::getLastFMActive(){ return m_lfm_active; }
void CSettingsStorage::setLastFMActive(bool b){
m_lfm_active = b;
_sth_changed = true;
}
QPair<QString, QString> CSettingsStorage::getLastFMNameAndPW () { return this -> m_lastFm; }
void CSettingsStorage::getLastFMNameAndPW (QString & name, QString & pw) {
name= this -> m_lastFm.first;
pw= this -> m_lastFm.second;
_sth_changed = true;
}
void CSettingsStorage::setLastFMNameAndPW (const QString & name,const QString & pw) {
this -> m_lastFm.first = name;
this -> m_lastFm.second = pw;
_sth_changed = true;
}
void CSettingsStorage::setLastFMCorrections(bool b){
m_lfm_corrections = b;
_sth_changed = true;
}
bool CSettingsStorage::getLastFMCorrections(){return m_lfm_corrections;}
bool CSettingsStorage::getLastFMShowErrors(){ return m_lfm_show_errors; }
void CSettingsStorage::setLastFMShowErrors(bool b){
m_lfm_show_errors = b;
_sth_changed = true;
}
#if 0
EQ_Setting CSettingsStorage::getCustomEqualizer(){
if(m_vec_eqSettings.size() == 0) {
EQ_Setting setting;
return setting;
}
return this->m_vec_eqSettings[m_vec_eqSettings.size()-1]; }
void CSettingsStorage::getEqualizerSettings(vector<EQ_Setting>& vec){vec = this->m_vec_eqSettings;}
void CSettingsStorage::setEqualizerSettings(const vector<EQ_Setting>& vec){
m_vec_eqSettings.clear();
for(uint i=0; i<vec.size(); i++){
m_vec_eqSettings.push_back(vec[i]);
}
_sth_changed = true;
}
#endif
int CSettingsStorage::getVolume(){ return m_volume; }
void CSettingsStorage::setVolume(int vol){
if(vol < 0 || vol > 100) return;
m_volume = vol;
_sth_changed = true;
}
void CSettingsStorage::setLastEqualizer(int eq_idx){
m_last_eq = eq_idx;
_sth_changed = true;
}
int CSettingsStorage::getLastEqualizer(){ return m_last_eq;}
QString CSettingsStorage::getLibraryPath(){return m_library_path;}
void CSettingsStorage::setLibraryPath(QString path){
m_library_path = path;
_sth_changed = true;
}
QSize CSettingsStorage::getPlayerSize(){ return m_player_size; }
void CSettingsStorage::setPlayerSize(QSize size){
m_player_size = size;
_sth_changed = true;
}
QPoint CSettingsStorage::getPlayerPos(){
return m_player_pos;
}
void CSettingsStorage::setPlayerPos(QPoint p){
m_player_pos = p;
_sth_changed = true;
}
bool CSettingsStorage::getPlayerFullscreen(){ return m_player_fullscreen;}
void CSettingsStorage::setPlayerFullscreen(bool b){
m_player_fullscreen = b;
_sth_changed = true;
}
QStringList CSettingsStorage::getPlaylist(){
return m_playlist;
}
void CSettingsStorage::setPlaylist(QStringList playlist){
m_playlist = playlist;
_sth_changed = true;
}
bool CSettingsStorage::getLoadLastTrack(){ return m_loadLastTrack; }
void CSettingsStorage::setLoadLastTrack(bool b){
m_loadLastTrack = b;
_sth_changed = true;
}
bool CSettingsStorage::getLoadPlaylist(){ return m_loadPlaylist; }
void CSettingsStorage::setLoadPlaylist(bool b){ m_loadPlaylist = b; _sth_changed = true;}
LastTrack* CSettingsStorage::getLastTrack(){ return &m_lastTrack; }
void CSettingsStorage::setLastTrack(LastTrack& t){ m_lastTrack = t; _sth_changed = true;}
void CSettingsStorage::updateLastTrack(){
QString str = m_lastTrack.toString();
_sth_changed = true;
}
bool CSettingsStorage::getRememberTime(){ return m_rememerTime; }
void CSettingsStorage::setRememberTime(bool b){ m_rememerTime = b; _sth_changed = true;}
bool CSettingsStorage::getStartPlaying(){ return m_startPlaying; }
void CSettingsStorage::setStartPlaying(bool b){ m_startPlaying = b; _sth_changed = true;}
void CSettingsStorage::setPlaylistMode(const Playlist_Mode& plmode){
m_playlistmode = plmode;
_sth_changed = true;
}
Playlist_Mode CSettingsStorage::getPlaylistMode(){
return m_playlistmode;
}
void CSettingsStorage::setPlayerStyle(int style){
m_style = style;
_sth_changed = true;
}
int CSettingsStorage::getPlayerStyle(){
return m_style;
}
void CSettingsStorage::setShowNotifications(bool active){
m_show_notifications = active;
_sth_changed = true;
}
void CSettingsStorage::setNotificationTimout(int timeout){
m_notification_timeout = timeout;
_sth_changed = true;
}
int CSettingsStorage::getNotificationTimeout(){
return m_notification_timeout;
}
void CSettingsStorage::setNotification(QString n){
m_notification_name = n;
_sth_changed = true;
}
QString CSettingsStorage::getNotification(){
return m_notification_name;
}
bool CSettingsStorage::getShowNotification(){
return m_show_notifications;
}
int CSettingsStorage::getNotificationScale(){
return m_notification_scale;
}
void CSettingsStorage::setNotificationScale(int scale){
m_notification_scale = scale;
_sth_changed = true;
}
void CSettingsStorage::setLastFMSessionKey(QString key){
m_lfm_sessionKey = key;
_sth_changed = true;
}
QString CSettingsStorage::getLastFMSessionKey(){
return m_lfm_sessionKey;
}
void CSettingsStorage::setShowLibrary(bool b){
m_show_library = b;
_sth_changed = true;
}
bool CSettingsStorage::getShowLibrary(){
return m_show_library;
}
void CSettingsStorage::setShownPlugin(QString plugin){
m_shown_plugin = plugin;
_sth_changed = true;
}
QString CSettingsStorage::getShownPlugin(){
return m_shown_plugin;
}
void CSettingsStorage::setMinimizeToTray(bool b){
m_minimize_to_tray = b;
_sth_changed = true;
}
bool CSettingsStorage::getMinimizeToTray(){
return m_minimize_to_tray;
}
bool CSettingsStorage::getShowSmallPlaylist(){
return m_show_small_playlist;
}
void CSettingsStorage::setShowSmallPlaylist(bool b){
m_show_small_playlist = b;
_sth_changed = true;
}
QString CSettingsStorage::getSoundEngine(){
return m_sound_engine;
}
void CSettingsStorage::setSoundEngine(QString engine){
m_sound_engine = engine;
_sth_changed = true;
}
bool CSettingsStorage::getStreamRipper(){
return m_streamripper;
}
void CSettingsStorage::setStreamRipper(bool b){
m_streamripper = b;
_sth_changed = true;
}
bool CSettingsStorage::getStreamRipperWarning(){
return m_streamripper_warning;
}
void CSettingsStorage::setStreamRipperWarning(bool b){
m_streamripper_warning = b;
_sth_changed = true;
}
QString CSettingsStorage::getStreamRipperPath(){
return m_streamripper_path;
}
void CSettingsStorage::setStreamRipperPath(QString path){
m_streamripper_path = path;
_sth_changed = true;
}
bool CSettingsStorage::getStreamRipperCompleteTracks(){
return m_streamripper_complete_tracks;
}
void CSettingsStorage::setStreamRipperCompleteTracks(bool b){
m_streamripper_complete_tracks = b;
_sth_changed = true;
}
bool CSettingsStorage::getStreamRipperSessionPath(){
return m_streamripper_session_path;
}
void CSettingsStorage::setStreamRipperSessionPath(bool b){
m_streamripper_session_path = b;
_sth_changed = true;
}
bool CSettingsStorage::getSocketActivated(){
return m_socket_activated;
}
void CSettingsStorage::setSocketActivated(bool b){
m_socket_activated = b;
_sth_changed = true;
}
int CSettingsStorage::getSocketFrom(){
return m_socket_from;
}
void CSettingsStorage::setSocketFrom(int val){
m_socket_from = val;
_sth_changed = true;
}
int CSettingsStorage::getSocketTo(){
return m_socket_to;
}
void CSettingsStorage::setSocketTo(int val){
m_socket_to = val;
_sth_changed = true;
}
bool CSettingsStorage::getPlaylistNumbers(){
return m_show_playlist_numbers;
}
void CSettingsStorage::setPlaylistNumbers(bool b){
m_show_playlist_numbers = b;
_sth_changed = true;
}
bool CSettingsStorage::getAllowOnlyOneInstance(){
return m_allow_only_one_instance;
}
void CSettingsStorage::setAllowOnlyOneInstance(bool b){
m_allow_only_one_instance = b;
_sth_changed = true;
}
void CSettingsStorage::setLibShownColsTitle(QStringList lst){
m_lib_shown_cols_title = lst;
_sth_changed = true;
}
QStringList CSettingsStorage::getLibShownColsTitle(){
return m_lib_shown_cols_title;
}
void CSettingsStorage::setLibShownColsAlbum(QStringList lst){
m_lib_shown_cols_album = lst;
_sth_changed = true;
}
QStringList CSettingsStorage::getLibShownColsAlbum(){
return m_lib_shown_cols_album;
}
void CSettingsStorage::setLibShownColsArtist(QStringList lst){
m_lib_shown_cols_artist = lst;
_sth_changed = true;
}
QStringList CSettingsStorage::getLibShownColsArtist(){
return m_lib_shown_cols_artist;
}
void CSettingsStorage::setLibSorting(QList<int> lst){
m_lib_sortings = lst;
_sth_changed = true;
}
QList<int> CSettingsStorage::getLibSorting(){
return m_lib_sortings;
}
void CSettingsStorage::setLibShowOnlyTracks(bool only_tracks){
m_show_only_tracks = only_tracks;
_sth_changed = true;
}
bool CSettingsStorage::getLibShowOnlyTracks(){
return m_show_only_tracks;
}
void CSettingsStorage::setLibLiveSearch(bool b){
m_lib_live_search = b;
_sth_changed = true;
}
bool CSettingsStorage::getLibLiveSheach(){
return m_lib_live_search;
}
QString CSettingsStorage::getLanguage(){
return m_language;
}
void CSettingsStorage::setLanguage(QString lang){
m_language = lang;
_sth_changed = true;
}
bool CSettingsStorage::getNotifyNewVersion(){ return m_notify_new_version; }
void CSettingsStorage::setNotifyNewVersion(bool b){
m_notify_new_version = b;
_sth_changed = true;
}