Skip to content
This repository has been archived by the owner on Oct 31, 2021. It is now read-only.

Commit

Permalink
added option for dynamic linking
Browse files Browse the repository at this point in the history
  • Loading branch information
aidinabedi committed Dec 19, 2009
1 parent ce8abe1 commit 46db807
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 38 deletions.
5 changes: 5 additions & 0 deletions Shiny/include/ShinyConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ THE SOFTWARE.
#define SHINY_IS_COMPILED TRUE
#endif

// TODO:
#ifndef SHINY_STATIC_LINK
#define SHINY_STATIC_LINK TRUE
#endif

// if SHINY_LOOKUP_RATE is defined to TRUE then Shiny will record the success of its hash function. This is useful for debugging. Default is FALSE.
#ifndef SHINY_LOOKUP_RATE
#define SHINY_LOOKUP_RATE FALSE
Expand Down
34 changes: 17 additions & 17 deletions Shiny/include/ShinyManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,16 +93,16 @@ SHINY_INLINE void _ShinyManager_appendTicksToCurNode(ShinyManager *self) {
self->_lastTick = curTick;
}

ShinyNode* _ShinyManager_lookupNode(ShinyManager *self, ShinyNodeCache* a_cache, ShinyZone* a_zone);
SHINY_API ShinyNode* _ShinyManager_lookupNode(ShinyManager *self, ShinyNodeCache* a_cache, ShinyZone* a_zone);

void _ShinyManager_createNodeTable(ShinyManager *self, uint32_t a_count);
void _ShinyManager_resizeNodeTable(ShinyManager *self, uint32_t a_count);
SHINY_API void _ShinyManager_createNodeTable(ShinyManager *self, uint32_t a_count);
SHINY_API void _ShinyManager_resizeNodeTable(ShinyManager *self, uint32_t a_count);

void _ShinyManager_createNodePool(ShinyManager *self, uint32_t a_count);
void _ShinyManager_resizeNodePool(ShinyManager *self, uint32_t a_count);
SHINY_API void _ShinyManager_createNodePool(ShinyManager *self, uint32_t a_count);
SHINY_API void _ShinyManager_resizeNodePool(ShinyManager *self, uint32_t a_count);

ShinyNode* _ShinyManager_createNode(ShinyManager *self, ShinyNodeCache* a_cache, ShinyZone* a_pZone);
void _ShinyManager_insertNode(ShinyManager *self, ShinyNode* a_pNode);
SHINY_API ShinyNode* _ShinyManager_createNode(ShinyManager *self, ShinyNodeCache* a_cache, ShinyZone* a_pZone);
SHINY_API void _ShinyManager_insertNode(ShinyManager *self, ShinyNode* a_pNode);

SHINY_INLINE void _ShinyManager_init(ShinyManager *self) {
self->_initialized = TRUE;
Expand Down Expand Up @@ -131,8 +131,8 @@ SHINY_INLINE void _ShinyManager_incLookupSuccess(ShinyManager *self) {}
SHINY_INLINE float ShinyManager_getLookupRate(const ShinyManager *self) { return -1; }
#endif

void ShinyManager_resetZones(ShinyManager *self);
void ShinyManager_destroyNodes(ShinyManager *self);
SHINY_API void ShinyManager_resetZones(ShinyManager *self);
SHINY_API void ShinyManager_destroyNodes(ShinyManager *self);

SHINY_INLINE float ShinyManager_tableUsage(const ShinyManager *self) {
return ((float) self->nodeCount) / ((float) self->_tableSize);
Expand Down Expand Up @@ -172,23 +172,23 @@ SHINY_INLINE void ShinyManager_endCurNode(ShinyManager *self) {

//

void ShinyManager_preLoad(ShinyManager *self);
SHINY_API void ShinyManager_preLoad(ShinyManager *self);

void ShinyManager_updateClean(ShinyManager *self);
void ShinyManager_update(ShinyManager *self);
SHINY_API void ShinyManager_updateClean(ShinyManager *self);
SHINY_API void ShinyManager_update(ShinyManager *self);

void ShinyManager_clear(ShinyManager *self);
void ShinyManager_destroy(ShinyManager *self);
SHINY_API void ShinyManager_clear(ShinyManager *self);
SHINY_API void ShinyManager_destroy(ShinyManager *self);

SHINY_INLINE void ShinyManager_sortZones(ShinyManager *self) {
if (self->rootZone.next)
self->rootZone.next = ShinyZone_sortChain(self->rootZone.next);
}

const char* ShinyManager_getOutputErrorString(ShinyManager *self);
SHINY_API const char* ShinyManager_getOutputErrorString(ShinyManager *self);

int ShinyManager_outputToFile(ShinyManager *self, const char *a_filename);
void ShinyManager_outputToStream(ShinyManager *self, FILE *stream);
SHINY_API int ShinyManager_outputToFile(ShinyManager *self, const char *a_filename);
SHINY_API void ShinyManager_outputToStream(ShinyManager *self, FILE *stream);

#if __cplusplus
} // end of extern "C"
Expand Down
10 changes: 5 additions & 5 deletions Shiny/include/ShinyNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ SHINY_INLINE void ShinyNode_init(ShinyNode* self, ShinyNode* a_parent, struct _S
self->_cache = a_cache;
}

void ShinyNode_updateTree(ShinyNode* self, float a_damping);
void ShinyNode_updateTreeClean(ShinyNode* self);
SHINY_API void ShinyNode_updateTree(ShinyNode* self, float a_damping);
SHINY_API void ShinyNode_updateTreeClean(ShinyNode* self);

SHINY_INLINE void ShinyNode_destroy(ShinyNode* self) {
*(self->_cache) = &_ShinyNode_dummy;
Expand All @@ -112,11 +112,11 @@ SHINY_INLINE int ShinyNode_isEqual(ShinyNode* self, const ShinyNode* a_parent, c
return (self->parent == a_parent && self->zone == a_zone);
}

const ShinyNode* ShinyNode_findNextInTree(const ShinyNode* self);
SHINY_API const ShinyNode* ShinyNode_findNextInTree(const ShinyNode* self);

void ShinyNode_clear(ShinyNode* self);
SHINY_API void ShinyNode_clear(ShinyNode* self);

void ShinyNode_enumerateNodes(const ShinyNode* a_node, void (*a_func)(const ShinyNode*));
SHINY_API void ShinyNode_enumerateNodes(const ShinyNode* a_node, void (*a_func)(const ShinyNode*));

#if __cplusplus
} // end of extern "C"
Expand Down
8 changes: 4 additions & 4 deletions Shiny/include/ShinyOutput.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ THE SOFTWARE.

//-----------------------------------------------------------------------------

int ShinyPrintNodesSize(uint32_t a_count);
int ShinyPrintZonesSize(uint32_t a_count);
SHINY_API int ShinyPrintNodesSize(uint32_t a_count);
SHINY_API int ShinyPrintZonesSize(uint32_t a_count);

void ShinyPrintNodes(char* output, const ShinyNode *a_root);
void ShinyPrintZones(char* output, const ShinyZone *a_root);
SHINY_API void ShinyPrintNodes(char* output, const ShinyNode *a_root);
SHINY_API void ShinyPrintZones(char* output, const ShinyZone *a_root);


//-----------------------------------------------------------------------------
Expand Down
14 changes: 13 additions & 1 deletion Shiny/include/ShinyPrereqs.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,20 +46,32 @@ THE SOFTWARE.

//-----------------------------------------------------------------------------

#if SHINY_STATIC_LINK == TRUE
# define SHINY_API
#else
# define SHINY_API SHINY_EXPORT
#endif


//-----------------------------------------------------------------------------

#if SHINY_COMPILER == SHINY_COMPILER_MSVC
# define SHINY_INLINE __inline
# define SHINY_UNUSED
# define SHINY_EXPORT __declspec(dllexport)

#elif SHINY_COMPILER == SHINY_COMPILER_GNUC
# define SHINY_INLINE inline
# define SHINY_UNUSED __attribute__ ((unused))
# define SHINY_UNUSED __attribute__((unused))
# define SHINY_EXPORT __attribute__((dllexport))

#elif SHINY_COMPILER == SHINY_COMPILER_OTHER
# define SHINY_INLINE inline
# define SHINY_UNUSED
# define SHINY_EXPORT extern
#endif


//-----------------------------------------------------------------------------

#if SHINY_COMPILER == SHINY_COMPILER_MSVC
Expand Down
8 changes: 4 additions & 4 deletions Shiny/include/ShinyTools.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ typedef struct {

//-----------------------------------------------------------------------------

const ShinyTimeUnit* ShinyGetTimeUnit(float ticks);
SHINY_API const ShinyTimeUnit* ShinyGetTimeUnit(float ticks);

void ShinyGetTicks(shinytick_t *p);
SHINY_API void ShinyGetTicks(shinytick_t *p);

shinytick_t ShinyGetTickFreq(void);
SHINY_API shinytick_t ShinyGetTickFreq(void);

float ShinyGetTickInvFreq(void);
SHINY_API float ShinyGetTickInvFreq(void);

#endif // ifndef SHINY_*_H
14 changes: 7 additions & 7 deletions Shiny/include/ShinyZone.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,21 +60,21 @@ SHINY_INLINE void ShinyZone_uninit(ShinyZone *self) {
self->next = NULL;
}

void ShinyZone_preUpdateChain(ShinyZone *first);
void ShinyZone_updateChain(ShinyZone *first, float a_damping);
void ShinyZone_updateChainClean(ShinyZone *first);
SHINY_API void ShinyZone_preUpdateChain(ShinyZone *first);
SHINY_API void ShinyZone_updateChain(ShinyZone *first, float a_damping);
SHINY_API void ShinyZone_updateChainClean(ShinyZone *first);

void ShinyZone_resetChain(ShinyZone *first);
SHINY_API void ShinyZone_resetChain(ShinyZone *first);

ShinyZone* ShinyZone_sortChain(ShinyZone *first);
SHINY_API ShinyZone* ShinyZone_sortChain(ShinyZone *first);

SHINY_INLINE float ShinyZone_compare(ShinyZone *a, ShinyZone *b) {
return b->data.selfTicks.avg - a->data.selfTicks.avg;
}

void ShinyZone_clear(ShinyZone* self);
SHINY_API void ShinyZone_clear(ShinyZone* self);

void ShinyZone_enumerateZones(const ShinyZone* a_zone, void (*a_func)(const ShinyZone*));
SHINY_API void ShinyZone_enumerateZones(const ShinyZone* a_zone, void (*a_func)(const ShinyZone*));

#if __cplusplus
} // end of extern "C"
Expand Down

0 comments on commit 46db807

Please sign in to comment.