annotate src/xs_sidplay.h @ 106:98a72c44f56b

Fileinfo now working with rudimentary informations. Slightly buggy.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 11 Jan 2004 23:02:04 +0000
parents 426e443240b8
children 54e4557859dc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 /*
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
2 * Here comes the really ugly code...
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
3 *
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 * Create the SID-tune description string from the tune's information
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 * formatted by the user-specified format-string.
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 */
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
7 #define VBUFSIZE (1024)
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
8 #define VPUTCH(MCH) if (iIndex < VBUFSIZE) tmpBuf[iIndex++] = MCH;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
9 #define VPUTSTR(MSTR) {if (MSTR) {if ((iIndex + strlen(MSTR) + 1) < VBUFSIZE){strcpy(&tmpBuf[iIndex], MSTR);iIndex += strlen(MSTR); } else iIndex = VBUFSIZE;}}
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
10
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
11 gchar * TFUNCTION1(gchar *pcFilename, TTUNEINFO *pfInfo, gint iSubTune)
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 {
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
13 gchar *sFileName, *sFilePath, *sFileExt, *pcStr, *pcResult,
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
14 tmpStr[VBUFSIZE], tmpBuf[VBUFSIZE];
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
15 gint iIndex;
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16 #ifdef HAVE_XMMSEXTRA
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17 TitleInput *ptInput;
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18 #endif
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20 /* Check the info strings */
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 if (pfInfo->numberOfInfoStrings < 3)
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 {
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 if (pfInfo->numberOfInfoStrings < 1)
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24 return 0;
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26 return g_strdup(pfInfo->infoString[0]);
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27 }
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
29 /* Split the filename into path */
93
63cf9b2ddadf Minor changes
Matti Hamalainen <ccr@tnsp.org>
parents: 92
diff changeset
30 sFilePath = g_strdup(pcFilename);
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
31 sFileName = strrchr(sFilePath, '/');
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
32 if (sFileName)
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
33 sFileName[1] = 0;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
34
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
35 /* Filename */
93
63cf9b2ddadf Minor changes
Matti Hamalainen <ccr@tnsp.org>
parents: 92
diff changeset
36 sFileName = strrchr(pcFilename, '/');
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
37 if (sFileName)
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
38 sFileName = g_strdup(sFileName + 1);
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
39 else
93
63cf9b2ddadf Minor changes
Matti Hamalainen <ccr@tnsp.org>
parents: 92
diff changeset
40 sFileName = g_strdup(pcFilename);
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
41
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
42 sFileExt = strrchr(sFileName, '.');
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
43 sFileExt[0] = 0;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
44
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
45 /* Extension */
93
63cf9b2ddadf Minor changes
Matti Hamalainen <ccr@tnsp.org>
parents: 92
diff changeset
46 sFileExt = strrchr(pcFilename, '.');
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
47
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
48
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
49 /* FIXME FIXME: get STIL-information */
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
50
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
51
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52 #ifdef HAVE_XMMSEXTRA
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 /* Check if the titles are overridden or not */
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 if (!xs_cfg.titleOverride)
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 {
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 /* Use generic XMMS titles */
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57 /* XMMS_NEW_TITLEINPUT(ptInput);
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 * We duplicate and add typecast to the code here due to XMMS's braindead headers
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59 */
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60 ptInput = (TitleInput *) g_malloc0(sizeof(TitleInput));
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61 ptInput->__size = XMMS_TITLEINPUT_SIZE;
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
62 ptInput->__version = XMMS_TITLEINPUT_VERSION;
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
63
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
64 /* Create the input fields */
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
65 ptInput->file_name = sFileName;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
66 ptInput->file_ext = sFileExt;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
67 ptInput->file_path = sFilePath;
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69 ptInput->track_name = pfInfo->infoString[0];
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70 ptInput->track_number = iSubTune;
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 ptInput->album_name = NULL;
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 ptInput->performer = pfInfo->infoString[1];
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73 ptInput->date = g_strdup((pfInfo->sidModel == SIDTUNE_SIDMODEL_6581) ? "6581" : "8580");
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
75 ptInput->year = 0;
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 ptInput->genre = g_strdup("SID-tune");
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
77 ptInput->comment = pfInfo->infoString[2];
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79 /* Create the string */
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
80 pcResult = xmms_get_titlestring(xmms_get_gentitle_format(), ptInput);
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
81
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
82 /* Dispose all allocated memory */
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
83 g_free(ptInput->date);
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
84 g_free(ptInput->genre);
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
85 g_free(ptInput);
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
86 }
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
87 else
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
88 #endif
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
89 {
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
90 /* Create the string */
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
91 pcStr = xs_cfg.titleFormat;
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
92 iIndex = 0;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
93 while (*pcStr && (iIndex < VBUFSIZE))
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
94 {
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
95 if (*pcStr == '%')
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
96 {
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
97 pcStr++;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
98 switch (*pcStr) {
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
99 case '%': VPUTCH('%'); break;
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
100 case 'f': VPUTSTR(sFileName); break;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
101 case 'F': VPUTSTR(sFilePath); break;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
102 case 'e': VPUTSTR(sFileExt); break;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
103 case 'p': VPUTSTR(pfInfo->infoString[1]); break;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
104 case 't': VPUTSTR(pfInfo->infoString[0]); break;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
105 case 'c': VPUTSTR(pfInfo->infoString[2]); break;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
106 case 's': VPUTSTR(pfInfo->formatString); break;
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
107 case 'n':
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
108 snprintf(tmpStr, VBUFSIZE, "%i", iSubTune);
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
109 VPUTSTR(tmpStr);
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
110 break;
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
111 }
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
112 } else {
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
113 VPUTCH(*pcStr);
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
114 }
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
115 pcStr++;
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
116 }
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
117
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
118 tmpBuf[iIndex] = 0;
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
119
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
120 /* Make resulting string */
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
121 pcResult = g_strdup(tmpBuf);
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
122 }
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
123
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
124 /* Free temporary strings */
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
125 g_free(sFileName);
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
126 g_free(sFilePath);
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
127
76
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
128 return pcResult;
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
129 }
741291e14080 Added missing header
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
130
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
131
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
132 /*
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
133 * Get all SID-tune information (for all sub-tunes) including name, length, etc.
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
134 */
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
135 t_xs_tune * TFUNCTION2(gchar *pcFilename)
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
136 {
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
137 t_xs_sldb_node *tuneLen = NULL;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
138 t_xs_tune *pResult;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
139 TTUNEINFO tuneInfo;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
140 TTUNE *testTune;
100
426e443240b8 Minor tweaks
Matti Hamalainen <ccr@tnsp.org>
parents: 95
diff changeset
141 gboolean haveInfo = TRUE;
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
142 gint i;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
143
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
144 /* Check if the tune exists and is readable */
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
145 if ((testTune = new TTUNE(pcFilename)) == NULL)
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
146 return NULL;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
147
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
148 if (!testTune->getStatus())
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
149 {
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
150 delete testTune;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
151 return NULL;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
152 }
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
153
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
154 /* Get general tune information */
95
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
155 #ifdef _XS_SIDPLAY1_H
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
156 haveInfo = testTune->getInfo(tuneInfo);
95
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
157 #endif
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
158 #ifdef _XS_SIDPLAY2_H
100
426e443240b8 Minor tweaks
Matti Hamalainen <ccr@tnsp.org>
parents: 95
diff changeset
159 testTune->getInfo(tuneInfo);
95
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
160 haveInfo = TRUE;
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
161 #endif
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
162
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
163 /* Get length information (NOTE: Do not free this!) */
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
164 tuneLen = xs_songlen_get(pcFilename);
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
165
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
166 /* Allocate tuneinfo structure */
106
98a72c44f56b Fileinfo now working with rudimentary informations. Slightly buggy.
Matti Hamalainen <ccr@tnsp.org>
parents: 100
diff changeset
167 pResult = xs_tune_new(pcFilename, tuneInfo.songs, tuneInfo.startSong,
98a72c44f56b Fileinfo now working with rudimentary informations. Slightly buggy.
Matti Hamalainen <ccr@tnsp.org>
parents: 100
diff changeset
168 tuneInfo.infoString[0], tuneInfo.infoString[1], tuneInfo.infoString[2]);
98a72c44f56b Fileinfo now working with rudimentary informations. Slightly buggy.
Matti Hamalainen <ccr@tnsp.org>
parents: 100
diff changeset
169
98a72c44f56b Fileinfo now working with rudimentary informations. Slightly buggy.
Matti Hamalainen <ccr@tnsp.org>
parents: 100
diff changeset
170 if (!pResult)
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
171 {
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
172 delete testTune;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
173 return NULL;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
174 }
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
175
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
176 /* Get information for subtunes */
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
177 for (i = 0; i < pResult->nsubTunes; i++)
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
178 {
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
179 /* Make the title */
92
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
180 if (haveInfo)
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
181 pResult->subTunes[i].tuneTitle = TFUNCTION1(pcFilename, &tuneInfo, i+1);
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
182 else
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
183 pResult->subTunes[i].tuneTitle = g_strdup(pcFilename);
2607683bc9eb Improvements in length- and title handling.
Matti Hamalainen <ccr@tnsp.org>
parents: 87
diff changeset
184
87
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
185
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
186 /* Get song length */
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
187 if (tuneLen && (i < tuneLen->nLengths))
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
188 pResult->subTunes[i].tuneLength = tuneLen->sLengths[i];
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
189 else
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
190 pResult->subTunes[i].tuneLength = -1;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
191 }
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
192
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
193 delete testTune;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
194
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
195 return pResult;
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
196 }
94497283affa Various fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 76
diff changeset
197
95
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
198 /* Undefine these */
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
199 #undef TFUNCTION1
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
200 #undef TFUNCTION2
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
201 #undef TTUNEINFO
4e929bb71057 Fixes and improvements
Matti Hamalainen <ccr@tnsp.org>
parents: 93
diff changeset
202 #undef TTUNE