\n"
@@ -1036,8 +1071,8 @@ main(int ArgC, char **Args)
ClaimBuffer(MemoryArena, &ClaimedMemory, &AnnotationHeader, "AnnotationHeader", 512);
ClaimBuffer(MemoryArena, &ClaimedMemory, &AnnotationClass, "AnnotationClass", 256);
- ClaimBuffer(MemoryArena, &ClaimedMemory, &AnnotationData, "AnnotationData", 128);
- ClaimBuffer(MemoryArena, &ClaimedMemory, &Text, "Text", 1024 * 4);
+ ClaimBuffer(MemoryArena, &ClaimedMemory, &AnnotationData, "AnnotationData", 256);
+ ClaimBuffer(MemoryArena, &ClaimedMemory, &Text, "Text", Kilobytes(4));
ClaimBuffer(MemoryArena, &ClaimedMemory, &Category, "Category", 256);
CopyStringToBuffer(&AnnotationHeader,
@@ -1053,7 +1088,7 @@ TimecodeToSeconds(Anno->time));
{
HasFilterMenu = TRUE;
}
- BuildFilter(CategoriesArray, &UniqueCategories, "authored");
+ BuildFilter(TopicsArray, &UniqueTopics, MediaArray, &UniqueMedia, "authored");
CopyStringToBuffer(&AnnotationClass, " authored");
CopyStringToBuffer(&Text,
"
%s ",
@@ -1104,7 +1139,7 @@ Readable);
{
HasFilterMenu = TRUE;
}
- BuildFilter(CategoriesArray, &UniqueCategories, Anno->markers[MarkerIndex].marker);
+ BuildFilter(TopicsArray, &UniqueTopics, MediaArray, &UniqueMedia, Anno->markers[MarkerIndex].marker);
BuildCategories(&AnnotationClass, &Category, &MarkerIndex, &HasCategory, &HasMedium, Anno->markers[MarkerIndex].marker);
}
}
@@ -1216,7 +1251,14 @@ AppendedIdentifier:
}
}
- CopyStringToBuffer(&Text, "
%d", RefIdentifier);
+ if(RefIndex > 1 && Anno->references[RefIndex].offset == Anno->references[RefIndex-1].offset)
+ {
+ CopyStringToBuffer(&Text, "
,%d", RefIdentifier);
+ }
+ else
+ {
+ CopyStringToBuffer(&Text, "
%d", RefIdentifier);
+ }
++RefIndex;
++RefIdentifier;
@@ -1302,14 +1344,14 @@ Anno->time);
}
if(Anno->markers[MarkerIndex].marker)
{
- BuildFilter(CategoriesArray, &UniqueCategories, Anno->markers[MarkerIndex].marker);
+ BuildFilter(TopicsArray, &UniqueTopics, MediaArray, &UniqueMedia, Anno->markers[MarkerIndex].marker);
}
BuildCategories(&AnnotationClass, &Category, &MarkerIndex, &HasCategory, &HasMedium, Anno->markers[MarkerIndex].marker);
}
if(!HasMedium)
{
- BuildFilter(CategoriesArray, &UniqueCategories, "default");
+ BuildFilter(TopicsArray, &UniqueTopics, MediaArray, &UniqueMedia, "default");
BuildCategories(&AnnotationClass, &Category, &MarkerIndex, &HasCategory, &HasMedium, "default");
}
@@ -1442,10 +1484,15 @@ ReferencesArray[i].Identifier[j].Timecode);
if(HasFilterMenu)
{
CopyStringToBuffer(&FilterState, "var filterState = {\n");
- for(int i = 0; i < UniqueCategories; ++i)
+ for(int i = 0; i < UniqueTopics; ++i)
{
CopyStringToBuffer(&FilterState, "\"%s\":\t{ \"type\": \"%s\",\t\"off\": false },\n",
- CategoriesArray[i].Category, CategoriesArray[i].IsMedium ? "medium" : "topic");
+ TopicsArray[i].Marker, "topic");
+ }
+ for(int i = 0; i < UniqueMedia; ++i)
+ {
+ CopyStringToBuffer(&FilterState, "\"%s\":\t{ \"type\": \"%s\",\t\"off\": false },\n",
+ MediaArray[i].Marker, "medium");
}
CopyStringToBuffer(&FilterState, "};\n"
"\n");
@@ -1461,59 +1508,53 @@ ReferencesArray[i].Identifier[j].Timecode);
bool HasTopic = FALSE;
bool HasMedium = FALSE;
- for(int i = 0; i < UniqueCategories; ++i)
+ for(int i = 0; i < UniqueTopics; ++i)
{
- if(CategoriesArray[i].IsMedium)
+ if(!HasTopic)
{
- if(!HasMedium)
- {
- CopyStringToBuffer(&FilterMedia,
-"
- */
- }
- else
- {
- if(!HasTopic)
- {
- CopyStringToBuffer(&FilterMenu,
+ CopyStringToBuffer(&FilterMenu,
"
\n"
"
Topics
\n");
- HasTopic = TRUE;
- }
+ HasTopic = TRUE;
+ }
CopyStringToBuffer(&FilterTopics,
"
\n"
" %s\n"
"
\n",
-CategoriesArray[i].Category,
-CategoriesArray[i].Category,
-CategoriesArray[i].Category);
+TopicsArray[i].Marker,
+TopicsArray[i].Marker,
+TopicsArray[i].Marker);
+ }
+
+ for(int i = 0; i < UniqueMedia; ++i)
+ {
+ if(!HasMedium)
+ {
+ CopyStringToBuffer(&FilterMedia,
+"