File: uploadReplay.cc

package info (click to toggle)
blockattack 1.4.1%2Bds1-2.1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 6,260 kB
  • ctags: 1,038
  • sloc: cpp: 9,461; ansic: 142; makefile: 38
file content (88 lines) | stat: -rw-r--r-- 2,589 bytes parent folder | download
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
Block Attack - Rise of the Blocks, SDL game, besed on Nintendo's Tetris Attack
Copyright (C) 2008 Poul Sander

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    Poul Sander
    R�vehjvej 36, V. 1111
    2800 Kgs. Lyngby
    DENMARK
    blockattack@poulsander.com
    http://blockattack.sf.net
*/

#include "uploadReplay.h"
#include "common.h"

bool isDownloading;
bool uploadReplayInitialized;
bool thresholdUp2Date;

SDL_Thread *threadThresholdFile;

void uploadReplay_init()
{
    if(uploadReplayInitialized)
        return;
    //mutDownload = SDL_CreateMutex();
    mutUpload = SDL_CreateMutex();
    thresholdUp2Date = false;
}

int downloadThresholdFile(void *ptr)
{
    //if(SDL_mutexP(mutDownload)==-1){
    //    isDownloading = false;
    //    return -1; //We don't crash if we can't lock. Just failing to do so
    //}   
    FILE *outfile;
    CURL *easyhandle = curl_easy_init();
    if(!easyhandle){
        isDownloading=false;
        //SDL_mutexV(mutDownload);
        return -1;
    }
    string filename = getPathToSaveFiles()+"/scoreThreshold";
    outfile = fopen(filename.c_str(), "w");
    
    curl_easy_setopt(easyhandle, CURLOPT_URL, "http://localhost/~poul/blockattackHighscores/result/threshold");
    curl_easy_setopt(easyhandle, CURLOPT_WRITEDATA, outfile);
    
    CURLcode res = curl_easy_perform(easyhandle);

    fclose(outfile);

    if(res == 200)
        thresholdUp2Date = true;
    
    curl_easy_cleanup(easyhandle);
    isDownloading=false;
    //if(SDL_mutexV(mutDownload)==-1){
        //return 0; //We don't crash if we can't lock. Just failing to do so
    //}
    return 0;
}

bool uploadReplay_canUpload()
{
    if(thresholdUp2Date)
        return true;
    if(isDownloading)
        return false;
    isDownloading=true; //We mark before start the thread
    threadThresholdFile = SDL_CreateThread(downloadThresholdFile, NULL);
    return thresholdUp2Date;
}