-
Notifications
You must be signed in to change notification settings - Fork 0
/
Database.h
62 lines (59 loc) · 1.52 KB
/
Database.h
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
62
/*
* Database.h
*
* Created on: 2013-03-06
* Author: danny
*/
#ifndef DATABASE_H_
#define DATABASE_H_
#include "Global.h"
#define LISTFILE "LISTS.TXT"
#define SONGFILE "SONGS.TXT"
#define LISTORDERFILE "LORDER.TXT"
#define LISTSONGFILE "LSONG.TXT"
#define MAX_LISTS 51
#define MAX_SONGS 101
#define MAX_SONGS_MIX 11
#define MAX_CACHE_MEMORY 1000000
struct database db;
struct database {
int curr_song_id;
struct Playlist* playlists[MAX_LISTS];
int curr_playlist_id;
int num_of_lists;
struct Song* songs[MAX_SONGS];
int curr_song_ids[MAX_SONGS_MIX];
int total_songs_playing;
int num_of_songs;
int index_list_song[MAX_LISTS][MAX_SONGS];
int index_list_order[MAX_LISTS][MAX_SONGS];
struct Queue* avail_list_index;
int used_list_index[MAX_LISTS];
int used_memory;
int isListRepeated;
};
void initDatabase();
struct Playlist* queryListByName(char*);
struct Song* querySongByName(char*);
void addListToDB(struct Playlist*);
void addExisitedListToDB(struct Playlist*, int);
int removeListFromDB(int);
void addSongToDB(struct Song*);
int readLine(int, char*);
void writeLine(int, char*, int);
void update();
void loadSongsFromSD();
int loadListsFromSD();
int saveListsToSD();
int openFileFromSD(char*);
char** getSongsFromSD();
int getAndUpdateSongsFromTxt(char**);
void createPlaylistFromTxt(char*);
void updateSongToSD();
int isCurrPlaying(int);
void removeCurrPlaying(int);
void saveAllUpdatesToSDBeforeQuits();
void saveListChangesToSD(int);
void preloadSongsToPlaylist();
void initializeListWithSongs(char*);
#endif /* DATABASE_H_ */