kcApp.h/cpp, kcMain.cpp Added use of preference file.

This commit is contained in:
kevin 2012-12-03 17:22:15 -08:00
parent 662d12cc62
commit 82fff39f11
3 changed files with 48 additions and 15 deletions

View File

@ -61,9 +61,9 @@
#define TIMER_PERIOD (1.0/20.0) // 50ms
kcApp::kcApp(cmCtx_t* ctx, cmTsMp1cH_t printqH, int w, int h, const cmChar_t* title, cmAiH_t aiH, int argc, char* argv[] )
kcApp::kcApp(cmCtx_t* ctx, cmPrH_t prH, cmTsMp1cH_t printqH, int w, int h, const cmChar_t* title, cmAiH_t aiH, int argc, char* argv[] )
: Fl_Double_Window(w, h,title),
_ctx(ctx),_aiH(aiH),
_ctx(ctx),_prH(prH),_aiH(aiH),
_menu(NULL),_splt(NULL),_con(NULL),_tabs(NULL),_mstr_grp(NULL),
_as_btn(NULL),_ai_btn(NULL),_ao_btn(NULL),_pgm_btn(NULL),
_ss_btn(NULL),_sr_btn(NULL),_ena_chk(NULL),
@ -142,6 +142,8 @@ void kcApp::resize(int x, int y, int w, int h)
{
Fl_Double_Window::resize(x, y, w, h);
_splt->resize(0, kMenuH, w, h-kStatusH);
cmPrefsPathSetInt(_prH,"appWndW",w);
cmPrefsPathSetInt(_prH,"appWndH",h);
}
void kcApp::tlCtlNewTimeLineFile( tlCtl* tlCtl, const cmChar_t* fn )

View File

@ -25,13 +25,8 @@ class Fl_Progress;
kMemFailKmRC,
kFileSysFailKmRC,
kQueueFailKmRC,
kTextSysFailKmRC,
kPrefsNotFoundKmRC,
kPrefWriteFailKmRC,
kPrefLoadFailKmRC,
kPrefFailKmRC,
kPrefSetFailKmRC,
kTextSysFailKmRC,
kPrefsFailKmRC,
kMlistLoadFailKmRC,
kJsonFailKmRC,
kDeserialFailKmRC,
@ -44,7 +39,7 @@ class kcApp : public Fl_Double_Window, public tlCtlRspdr
public:
typedef unsigned kcKmRC_t;
kcApp(cmCtx_t* ctx, cmTsMp1cH_t printQH, int w, int h, const cmChar_t* title, cmAiH_t aiH, int argc, char* argv[] );
kcApp(cmCtx_t* ctx, cmPrH_t prH, cmTsMp1cH_t printQH, int w, int h, const cmChar_t* title, cmAiH_t aiH, int argc, char* argv[] );
virtual ~kcApp();
void resize(int x, int y, int w, int h);
@ -278,6 +273,7 @@ private:
cmCtx_t* _ctx;
cmPrH_t _prH;
cmAiH_t _aiH;
Fl_Menu_Bar* _menu;

View File

@ -22,6 +22,7 @@
#include "cmThread.h"
#include "cmText.h"
#include "cmFileSys.h"
#include "cmPrefs.h"
#include "cmDspValue.h"
#include "cmMsgProtocol.h"
#include "cmAudDspIF.h"
@ -36,6 +37,12 @@
#include "tlCtl.h"
#include "kcApp.h"
enum
{
kAppWndW = 1600,
kAppWndH = 750
};
kcApp* kcAppPtr = NULL;
@ -57,20 +64,33 @@ cmRC_t handleStatusMsg( void* cbDataPtr, const cmAudioSysStatus_t* r, const doub
cmRC_t handleUiMsg( void* cbDataPtr, const cmDspUiHdr_t* r )
{ kcAppPtr->_handleUiMsg(r); return cmOkRC;}
cmPrRC_t kcInitPrefs( cmCtx_t* ctx, cmPrH_t* prH )
{
cmPrRC_t rc = kOkPrRC;
if((rc = cmPrefsInit(ctx, prH, NULL, NULL, NULL, NULL )) != kOkPrRC )
return rc;
unsigned flags = 0;
cmPrefsCreateInt(*prH, 1, "appWndW", flags, kAppWndW );
cmPrefsCreateInt(*prH, 2, "appWndH", flags, kAppWndH );
return cmPrefsRC(*prH);
}
int main( int argc, char* argv[] )
{
cmCtx_t ctx;
cmTsMp1cH_t printqH = cmTsMp1cNullHandle;
int appWndW = 1600;
int appWndH = 750;
const char* appPrefDir = "kc";
const char* appTitle = "KC Console";
bool memDebugFl = cmDEBUG_FL;
bool memDebugFl = false; //cmDEBUG_FL;
unsigned memPadByteCnt = memDebugFl ? 8 : 0;
unsigned memAlignByteCnt = 16;
unsigned memFlags = memDebugFl ? (kTrackMmFl | kDeferFreeMmFl | kFillUninitMmFl) : 0;
cmAdlH_t adlH = cmAdlNullHandle;
cmAiH_t aiH = cmAiNullHandle;
cmPrH_t prH = cmPrNullHandle;
cmAdIfDispatch_t r;
cmCtxSetup(&ctx,appTitle,print,print,NULL,memPadByteCnt,memAlignByteCnt,memFlags);
@ -90,6 +110,10 @@ int main( int argc, char* argv[] )
if( cmTsInitialize(&ctx) != kOkTxRC )
cmErrMsg(&ctx.err,kTextSysFailKmRC,"Text system initialization failed.");
// iniitalize the preferences
if( kcInitPrefs(&ctx,&prH) != kOkPrRC )
cmErrMsg(&ctx.err,kPrefsFailKmRC,"Preference initializatkion failed.");
// create the print queue
if( cmTsMp1cCreate( &printqH, 8192, print_queue_cb, NULL, NULL ) != kOkThRC )
cmErrMsg(&ctx.err,kQueueFailKmRC,"Print queue creation failed.");
@ -108,8 +132,10 @@ int main( int argc, char* argv[] )
if( cmErrLastRC(&ctx.err) == kOkKmRC )
{
kcAppPtr = new kcApp(&ctx, printqH, appWndW, appWndH, appTitle, aiH, argc, argv);
int appWndW = cmPrefsIntDef(prH,"appWndW", kAppWndW);
int appWndH = cmPrefsIntDef(prH,"appWndH", kAppWndH);
kcAppPtr = new kcApp(&ctx, prH, printqH, appWndW, appWndH, appTitle, aiH, argc, argv);
cmAudDspLocalSendSetup(adlH);
@ -139,6 +165,15 @@ int main( int argc, char* argv[] )
if( cmTsMp1cDestroy(&printqH) != kOkThRC )
cmErrMsg(&ctx.err,kQueueFailKmRC,"Print queue destroy failed.");
// write the preferences file
if( cmPrefsIsDirty(prH) )
if( cmPrefsWrite(prH,cmPrefsFileName(prH)) != kOkPrRC )
cmErrMsg(&ctx.err,kPrefsFailKmRC,"Preferences save failed.");
// finalize the preferences file
if( cmPrefsFinalize(&prH) != kOkPrRC )
cmErrMsg(&ctx.err,kPrefsFailKmRC,"Preference finalize failed.");
// finalize the text system
if( cmTsFinalize() != kOkTxRC )
cmErrMsg(&ctx.err,kTextSysFailKmRC,"Text system finalization failed.");