示例#1
0
bool ZMEvents::Create(void)
{
    bool foundtheme = false;

    // Load the theme for this screen
    foundtheme = LoadWindowFromXML("zoneminder-ui.xml", "zmevents", this);

    if (!foundtheme)
        return false;

    bool err = false;
    UIUtilE::Assign(this, m_eventNoText, "eventno_text", &err);
    UIUtilE::Assign(this, m_playButton,  "play_button", &err);
    UIUtilE::Assign(this, m_deleteButton, "delete_button", &err);
    UIUtilE::Assign(this, m_cameraSelector, "camera_selector", &err);
    UIUtilE::Assign(this, m_dateSelector,   "date_selector", &err);

    if (err)
    {
        LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'zmevents'");
        return false;
    }

    BuildFocusList();

    getCameraList();
    getDateList();

    connect(m_cameraSelector, SIGNAL(itemSelected(MythUIButtonListItem*)),
            this, SLOT(cameraChanged()));
    connect(m_dateSelector, SIGNAL(itemSelected(MythUIButtonListItem*)),
            this, SLOT(dateChanged()));

    // play button
    if (m_playButton)
    {
        m_playButton->SetText(tr("Play"));
        connect(m_playButton, SIGNAL(Clicked()), this, SLOT(playPressed()));
    }

    // delete button
    if (m_deleteButton)
    {
        m_deleteButton->SetText(tr("Delete"));
        connect(m_deleteButton, SIGNAL(Clicked()), this, SLOT(deletePressed()));
    }

    m_oldestFirst = (gCoreContext->GetNumSetting("ZoneMinderOldestFirst", 1) == 1);
    m_showContinuous = (gCoreContext->GetNumSetting("ZoneMinderShowContinuous", 0) == 1);

    getEventList();

    setGridLayout(gCoreContext->GetNumSetting("ZoneMinderGridLayout", 1));

    return true;
}
示例#2
0
//@see Design-page 9
void handle_recovery_req(int sd, char* clientIP){
	char buf[RBUFMAX];
	char log_buf[STR_MAX];
	char user[STR_MAX];
	char filename[STR_MAX];
	char filepath[STR_MAX];
	char backup_dir_path[STR_MAX];
	char day[4];
	char date[12];
	char date_list[8][12];
	unsigned int d_list_idx;
	unsigned int i;
	//char cmd[STR_MAX];
	int response, len, fid;
	const int endQ = -1;
	int Q, tlen, tresp;

	tlen = 0;
	logger(SVR, "RECOVERY REQUEST START");
	
	read(sd, &len, sizeof(len));
	len = ntohl(len);//
	read(sd, user, len);
	
	response = isMatch(user, clientIP);
	tresp = htonl(response);//
	write(sd, &tresp, sizeof(tresp));//

	sprintf(backup_dir_path, "%s/%s", BACKUP_DIR, user);
	logger(SVR, "set path");

	if(response){
		//get file
		read(sd, &len, sizeof(len));
		len = ntohl(len);//
		read(sd, date, len);
		printf("%d %s\n", len, date);
		
		d_list_idx = 0;
		d_list_idx = getDateList(date, date_list);
		
		for(i = 0; i <= d_list_idx; i++){
			getWeekDay(date_list[i], day);
			sprintf(filename, "%s.tgz", date_list[i]);
			sprintf(filepath, "%s/%s/%s", backup_dir_path, day, filename);
			
			if( (fid = open(filepath, O_RDONLY)) < 0){
				sprintf(log_buf, "There is no File : %s\n", filepath);
				logger(SVR, log_buf);
				continue;
			}

			//transmit file if it exist

			len = strlen(filename) + 1;
			tlen = htonl(len);//
#if DEBUG
			printf("%d %d %s\n", len, tlen, filename);
#endif
			write(sd, &tlen, sizeof(tlen));
			write(sd, filename, len);

			while( (len = read(fid, buf, sizeof(buf))) > 0 ){
#if DEBUG
				printf("%d %d %d\n", len, htonl(len), sizeof(buf));
#endif
				tlen = htonl(len);//
				write(sd, &tlen, sizeof(tlen));
				write(sd, buf, len);
			}

			printf("%d %d\n", endQ, htonl(endQ));
			Q = htonl(endQ);
			write(sd, &Q, sizeof(Q));

			if(fid) close(fid);

		}
		Q = htonl(endQ);
		write(sd, &Q, sizeof(Q));		
	}
	
	logger(SVR, "RECOVERY REQUEST END");
	if(sd) close(sd);
	exit(1);

}