diff --git a/src/diskreader.cxx b/src/diskreader.cxx index 37ad497..274a2c7 100644 --- a/src/diskreader.cxx +++ b/src/diskreader.cxx @@ -71,12 +71,14 @@ int DiskReader::loadPreferences() } - cJSON* resample = cJSON_GetObjectItem( preferencesJson, "defaultControllers" ); + cJSON* resample = cJSON_GetObjectItem( preferencesJson, "resampleQuality" ); if ( resample ) { resampleQuality = resample->valueint; if ( resampleQuality == 0 ) + { LUPPP_NOTE("Using Linear resampling, may reduce quality. Check .config/openAV/luppp/luppp.prfs"); + } } cJSON* ctlrs = cJSON_GetObjectItem( preferencesJson, "defaultControllers" ); if ( ctlrs ) @@ -110,7 +112,11 @@ int DiskReader::loadPreferences() { // empty file / file no exists: LUPPP_WARN("Preferences, file doesn't exist: ~/.config/openAV/luppp/luppp.prefs"); - return LUPPP_RETURN_ERROR; + + // so write default file + gui->getDiskWriter()->writeDefaultConfigToUserHome(); + + return LUPPP_RETURN_OK; } return LUPPP_RETURN_OK; diff --git a/src/diskwriter.cxx b/src/diskwriter.cxx index 318ede8..78fa79c 100644 --- a/src/diskwriter.cxx +++ b/src/diskwriter.cxx @@ -487,3 +487,42 @@ int DiskWriter::writeSession() return LUPPP_RETURN_OK; } + + +void DiskWriter::writeDefaultConfigToUserHome() +{ + LUPPP_NOTE("Writing default preferences file."); + + cJSON* prfs = cJSON_CreateObject(); + + // "__COMMENT__" : "users home + " + // "saveDirectory" : "luppp" + cJSON_AddItemToObject ( prfs, "__COMMENT__", + cJSON_CreateString("users home + ") ); + cJSON_AddItemToObject ( prfs, "saveDirectory", cJSON_CreateString( "luppp" )); + + + // "__COMMENT__" : "0 = LINEAR, 1 = SINC_FASTEST, 2 = SINC_BEST", + // "resampleQuality" : 2 + cJSON_AddItemToObject ( prfs, "__COMMENT__", + cJSON_CreateString("0 = LINEAR, 1 = SINC_FASTEST, 2 = SINC_BEST") ); + cJSON_AddNumberToObject( prfs, "resampleQuality", 1 ); + + // "defaultControllers" : [], + cJSON* defCtrls = cJSON_CreateArray(); + cJSON_AddItemToObject( prfs, "defaultControllers", defCtrls ); + + + // test output on console + // cout << endl << cJSON_Print( prfs ) << endl << endl; + + + // write JSON to .config/openAV/luppp/luppp.prfs + stringstream f; + f << getenv("HOME") << "/.config/openAV/luppp/luppp.prfs"; + + ofstream outFile; + outFile.open ( f.str().c_str() ); + outFile << cJSON_Print( prfs ); + outFile.close(); +} diff --git a/src/diskwriter.hxx b/src/diskwriter.hxx index 75b80dc..3cc23e7 100644 --- a/src/diskwriter.hxx +++ b/src/diskwriter.hxx @@ -73,6 +73,8 @@ class DiskWriter /// writes a controller definition .ctlr JSON file from a GenericMIDI instance int writeControllerFile( Controller* c ); + /// writes default config file to users home if it doesn't exist + void writeDefaultConfigToUserHome(); #ifdef BUILD_TESTS int runTests();