From 6ebc89d6ec33a6fc750527fc4e7a806a135dcc48 Mon Sep 17 00:00:00 2001 From: w1z7ard Date: Fri, 22 Jun 2007 06:56:11 +0000 Subject: [PATCH] refactored PerFrameEqn to full class git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/dev-1.0@210 6778bc44-b910-0410-a7a0-be141de4315d --- src/projectM-engine/Parser.cpp | 10 +++++----- src/projectM-engine/PerFrameEqn.cpp | 20 ++++++-------------- src/projectM-engine/PerFrameEqn.h | 7 ++++--- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/projectM-engine/Parser.cpp b/src/projectM-engine/Parser.cpp index d89b19a86..f0ca9c690 100755 --- a/src/projectM-engine/Parser.cpp +++ b/src/projectM-engine/Parser.cpp @@ -1190,7 +1190,7 @@ PerFrameEqn * Parser::parse_per_frame_eqn(FILE * fs, int index, Preset * preset) //if (PARSE_DEBUG) printf("parse_per_frame_eqn: finished per frame equation evaluation (LINE %d)\n", line_count); /* Create a new per frame equation */ - if ((per_frame_eqn = PerFrameEqn::new_per_frame_eqn(index, param, gen_expr)) == NULL) { + if ((per_frame_eqn = new PerFrameEqn(index, param, gen_expr)) == NULL) { //if (PARSE_DEBUG) printf("parse_per_frame_eqn: failed to create a new per frame eqn, out of memory?\n"); delete gen_expr; return NULL; @@ -1238,7 +1238,7 @@ PerFrameEqn * Parser::parse_implicit_per_frame_eqn(FILE * fs, char * param_strin //if (PARSE_DEBUG) printf("parse_implicit_per_frame_eqn: finished per frame equation evaluation (LINE %d)\n", line_count); /* Create a new per frame equation */ - if ((per_frame_eqn = PerFrameEqn::new_per_frame_eqn(index, param, gen_expr)) == NULL) { + if ((per_frame_eqn = new PerFrameEqn(index, param, gen_expr)) == NULL) { //if (PARSE_DEBUG) printf("parse_implicit_per_frame_eqn: failed to create a new per frame eqn, out of memory?\n"); delete gen_expr; return NULL; @@ -1829,7 +1829,7 @@ int Parser::parse_wave_helper(FILE * fs, Preset * preset, int id, char * eqn_ty //if (PARSE_DEBUG) printf("parse_wave (per_frame): [finished parsing equation] (LINE %d)\n", line_count); /* Create a new per frame equation */ - if ((per_frame_eqn = PerFrameEqn::new_per_frame_eqn(custom_wave->per_frame_count++, param, gen_expr)) == NULL) { + if ((per_frame_eqn = new PerFrameEqn(custom_wave->per_frame_count++, param, gen_expr)) == NULL) { //if (PARSE_DEBUG) printf("parse_wave (per_frame): failed to create a new per frame eqn, out of memory?\n"); delete gen_expr; return PROJECTM_FAILURE; @@ -2100,7 +2100,7 @@ char string[MAX_TOKEN_SIZE]; //if (PARSE_DEBUG) printf("parse_shape (per_frame): [finished parsing equation] (LINE %d)\n", line_count); /* Create a new per frame equation */ - if ((per_frame_eqn = PerFrameEqn::new_per_frame_eqn(custom_shape->per_frame_count++, param, gen_expr)) == NULL) { + if ((per_frame_eqn = new PerFrameEqn(custom_shape->per_frame_count++, param, gen_expr)) == NULL) { //if (PARSE_DEBUG) printf("parse_shape (per_frame): failed to create a new per frame eqn, out of memory?\n"); delete gen_expr; return PROJECTM_FAILURE; @@ -2167,7 +2167,7 @@ char string[MAX_TOKEN_SIZE]; //if (PARSE_DEBUG) printf("parse_shape (per_frame): [finished parsing equation] (LINE %d)\n", line_count); /* Create a new per frame equation */ - if ((per_frame_eqn = PerFrameEqn::new_per_frame_eqn(custom_wave->per_frame_count++, param, gen_expr)) == NULL) { + if ((per_frame_eqn = new PerFrameEqn(custom_wave->per_frame_count++, param, gen_expr)) == NULL) { //if (PARSE_DEBUG) printf("parse_shape (per_frame): failed to create a new per frame eqn, out of memory?\n"); delete gen_expr; return PROJECTM_FAILURE; diff --git a/src/projectM-engine/PerFrameEqn.cpp b/src/projectM-engine/PerFrameEqn.cpp index 1639ff419..356f68988 100755 --- a/src/projectM-engine/PerFrameEqn.cpp +++ b/src/projectM-engine/PerFrameEqn.cpp @@ -79,29 +79,21 @@ void eval_per_frame_init_eqn(PerFrameEqn * per_frame_eqn) { } */ -/* Frees perframe equation structure */ +/* Frees perframe equation structure. Warning: assumes gen_expr pointer is not freed by anyone else! */ PerFrameEqn::~PerFrameEqn() { delete gen_expr; - /** Destroy param? */ + + /** @bug Destroy param? - great question, don't know yet*/ } /* Create a new per frame equation */ -PerFrameEqn * PerFrameEqn::new_per_frame_eqn(int index, Param * param, GenExpr * gen_expr) { +PerFrameEqn::PerFrameEqn(int index, Param * param, GenExpr * gen_expr) : + index(index), param(param), gen_expr(gen_expr) { - PerFrameEqn * per_frame_eqn; - - per_frame_eqn = (PerFrameEqn*)wipemalloc(sizeof(PerFrameEqn)); - - if (per_frame_eqn == NULL) - return NULL; - - per_frame_eqn->param = param; - per_frame_eqn->gen_expr = gen_expr; - per_frame_eqn->index = index; /* Set per frame eqn name */ + /// @bug why are we commented out? // memset(per_frame_eqn->name, 0, MAX_TOKEN_SIZE); //strncpy(per_frame_eqn->name, name, MAX_TOKEN_SIZE-1); - return per_frame_eqn; } diff --git a/src/projectM-engine/PerFrameEqn.h b/src/projectM-engine/PerFrameEqn.h index ea591f1e3..540a0a29a 100755 --- a/src/projectM-engine/PerFrameEqn.h +++ b/src/projectM-engine/PerFrameEqn.h @@ -37,12 +37,13 @@ class PerFrameEqn; class PerFrameEqn { public: - int index; + int index; /* a unique id for each per frame eqn (generated by order in preset files) */ Param *param; /* parameter to be assigned a value */ GenExpr *gen_expr; /* expression that paremeter is equal to */ - + + PerFrameEqn(int index, Param * param, GenExpr * gen_expr); ~PerFrameEqn(); - static PerFrameEqn * new_per_frame_eqn(int index, Param *param, GenExpr * gen_expr); + void eval_per_frame_eqn(); void eval_per_frame_init_eqn( PerFrameEqn *per_frame_eqn ); };