summaryrefslogtreecommitdiff
path: root/plugins/TrafficCounter/src/misc.h
blob: 5c24ffa8bd2cd3b0fe8df8e50c314a4d76a75334 (plain)
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
#pragma once

typedef struct
{
	wchar_t Alignment;	// Выравнивание. L - к левой границе, R - к правой.
	uint16_t Interval;		// Расстояние, на которое граница строки отстоит от левого края фрейма.
	wchar_t *String;		// Собственно строка.
} RowItemInfo;

/* Функция разбирает строку и возвращает список тегов и соответствующих им строк.
Аргументы:
InputString - строка для разбора;
RowItemsList - список найденных элементов.
Возвращаемое значение - количество элементов в списках. */
uint16_t GetRowItems(wchar_t *InputString, RowItemInfo **RowItemsList);

/* Функция возвращает количество дней в указанном месяце указанного года. */
uint8_t DaysInMonth(uint8_t Month, uint16_t Year);

// Функция определяет день недели по дате
// 7 - ВС, 1 - ПН и т. д.
uint8_t DayOfWeek(uint8_t Day, uint8_t Month, uint16_t Year);

/* Аргументы:
	Value - количество байт;
	Unit - единицы измерения (0 - байты, 1 - килобайты, 2 - мегабайты, 3 - автоматически);
	Buffer - адрес строки для записи результата;
	Size - размер буфера.
Возвращаемое значение: требуемый размер буфера. */
size_t GetFormattedTraffic(uint32_t Value, uint8_t Unit, wchar_t *Buffer, size_t Size);

size_t GetDurationFormatM(uint32_t Duration, wchar_t *Format, wchar_t *Buffer, size_t Size);

signed short int TimeCompare(SYSTEMTIME st1, SYSTEMTIME st2);