forked from Vorago/iwb
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscroller.cpp
More file actions
61 lines (57 loc) · 1.67 KB
/
scroller.cpp
File metadata and controls
61 lines (57 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "include/scroller.hpp"
namespace iwb {
Scroller::Scroller() {
imgArraySize = 0;
imgArray = NULL;
currentImg = 0;
}
Scroller::~Scroller() {
freeFileNameArray();
}
void Scroller::freeFileNameArray(){
for (int i = 0; i < imgArraySize; i++) {
free(imgArray[i]);
}
free(imgArray);
imgArray = NULL;
imgArraySize = 0;
currentImg = 0;
}
int Scroller::loadFileNames(){
/* TODO:
* reimpliment using scandir
* make directory name variable
*/
//check in case of loadFileNames was already called
if(imgArray != NULL)
freeFileNameArray();
DIR *dir;
struct dirent *ent;
dir = opendir ("tmp/1");
if (dir != NULL) {
while ((ent = readdir (dir)) != NULL) {
imgArraySize++;
}
rewinddir(dir);
imgArraySize = imgArraySize-2; //because we do not need to count . and ..
imgArray = (char**)malloc(imgArraySize * sizeof(char*));
for (int i = 0; i < imgArraySize; i++) {
ent = readdir (dir);
if(!ent){
break;
}
if(strcmp(ent->d_name, ".") && strcmp(ent->d_name, "..")){
imgArray[i] = (char*)malloc(strlen( ent->d_name) + 1);
strcpy(imgArray[i], ent->d_name);
} else {
i--;
}
}
closedir (dir);
} else {
/* could not open directory */
return EXIT_FAILURE;
}
return 0;
}
}