Archived
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
be95db47c0 | ||
|
|
31fab8ccf1 | ||
|
|
200fb5c4e1 | ||
|
|
2d30c7a3bf | ||
|
|
d65b1fa3ec | ||
|
|
e4b43dbf46 | ||
|
|
ce81094a62 | ||
|
|
04b51ee5ea | ||
|
|
40b962250f | ||
|
|
d633806464 | ||
|
|
bbe91b949b | ||
|
|
981b995308 | ||
|
|
40119b2e4e | ||
|
|
caaec15f31 | ||
|
|
873c785df9 | ||
|
|
d372671f1b | ||
|
|
f80714542d | ||
|
|
d1fd4a6eea | ||
|
|
a20fad4635 | ||
|
|
aefd8e6434 | ||
|
|
7da19e19e0 | ||
|
|
d5b22fc6b2 | ||
|
|
0f39765877 | ||
|
|
6a327c46f3 | ||
|
|
d8649831f8 | ||
|
|
4539a489a4 |
No files matched your search
@@ -6,7 +6,7 @@
|
||||
name="CompanyName.ProductName.YourApplication"
|
||||
type="win32"
|
||||
/>
|
||||
<description>PAiPlayer - A school project that helps me learn C++</description>
|
||||
<description>ClickPlay</description>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
|
||||
Binary file not shown.
@@ -8,19 +8,13 @@ EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C734FDA7-262E-4202-8F4E-5E3031CB9935}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C734FDA7-262E-4202-8F4E-5E3031CB9935}.Debug|x64.Build.0 = Debug|x64
|
||||
{C734FDA7-262E-4202-8F4E-5E3031CB9935}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{C734FDA7-262E-4202-8F4E-5E3031CB9935}.Debug|x86.Build.0 = Debug|Win32
|
||||
{C734FDA7-262E-4202-8F4E-5E3031CB9935}.Release|x64.ActiveCfg = Release|x64
|
||||
{C734FDA7-262E-4202-8F4E-5E3031CB9935}.Release|x64.Build.0 = Release|x64
|
||||
{C734FDA7-262E-4202-8F4E-5E3031CB9935}.Release|x86.ActiveCfg = Release|Win32
|
||||
{C734FDA7-262E-4202-8F4E-5E3031CB9935}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{c734fda7-262e-4202-8f4e-5e3031cb9935}</ProjectGuid>
|
||||
<RootNamespace>EasyAudioPlayer</RootNamespace>
|
||||
<RootNamespace>ClickPlay</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>ClickPlay</ProjectName>
|
||||
</PropertyGroup>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
@@ -43,7 +43,8 @@ wstring ext[EXT_LENGTH] = { L"mp3", L"wav" };
|
||||
//PATH VARS
|
||||
vector<WIN32_FIND_DATA> files;
|
||||
wstring path;
|
||||
int selected = -1;
|
||||
wstring currentSearchPhrase;
|
||||
__int64 selected = -1;
|
||||
|
||||
//STATE VARS
|
||||
/*
|
||||
@@ -53,6 +54,7 @@ int selected = -1;
|
||||
* 2 - playback paused
|
||||
*/
|
||||
int currentState = -1;
|
||||
BOOL isOnClickPlayEnabled = TRUE;
|
||||
BOOL isAutoPlayEnabled = TRUE;
|
||||
BOOL isLoopEnabled = FALSE;
|
||||
BOOL isQueued = FALSE;
|
||||
@@ -72,6 +74,7 @@ HMENU menuBar;
|
||||
|
||||
//HOOKS
|
||||
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
LRESULT CALLBACK JumpToProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
bool alphabeticSort(WIN32_FIND_DATA a, WIN32_FIND_DATA b);
|
||||
|
||||
@@ -108,7 +111,7 @@ int WINAPI WinMain(HINSTANCE currentInst, HINSTANCE previousInst, LPSTR lpCmdLin
|
||||
|
||||
//INITIALIZE MESSAGE LOOP
|
||||
while (GetMessage(&msg, NULL, 0, 0)) {
|
||||
if (!TranslateAccelerator(msg.hwnd, shortcuts, &msg)) {
|
||||
if (!TranslateAccelerator(mainWindow, shortcuts, &msg)) {
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
@@ -161,6 +164,7 @@ void UnloadSelection() {
|
||||
* -1 - invalid index
|
||||
* -2 - file not found
|
||||
* -3 - path not loaded
|
||||
* -4 - file loading error
|
||||
*/
|
||||
int LoadSelection(int index) {
|
||||
UnloadSelection();
|
||||
@@ -177,7 +181,11 @@ int LoadSelection(int index) {
|
||||
wstring fullCommandS = L"open \"" + fullPath + L"\" type mpegvideo alias mp3";
|
||||
LPCWSTR fullCommand = fullCommandS.c_str();
|
||||
|
||||
mciSendString(fullCommand, NULL, 0, mainWindow);
|
||||
if (mciSendString(fullCommand, NULL, 0, mainWindow) != 0) {
|
||||
UnloadSelection();
|
||||
MessageBox(mainWindow, L"Nieznany b³¹d uniemo¿liwia odtworzenie tego pliku. SprawdŸ czy plik nie jest uszkodzony.", L"B³¹d wczytywania", MB_ICONERROR);
|
||||
return -4;
|
||||
}
|
||||
selected = index;
|
||||
return 0;
|
||||
}
|
||||
@@ -285,16 +293,25 @@ int FolderBrowseDialog(HWND window) {
|
||||
}
|
||||
|
||||
//SEARCH DIRECTORY
|
||||
void SearchDir(wstring phrase) {
|
||||
/*ERROR CODES
|
||||
* -1 - no files found
|
||||
* -2 - LoadDir error
|
||||
* -3 - empty input
|
||||
*/
|
||||
int SearchDir(wstring phrase) {
|
||||
//PERFORM CHECKING
|
||||
if (path.empty()) {
|
||||
return;
|
||||
return -2;
|
||||
}
|
||||
if (phrase == currentSearchPhrase) {
|
||||
return 0;
|
||||
}
|
||||
//RELOAD DIR
|
||||
LoadDir(path);
|
||||
//PREPARE
|
||||
if (LoadDir(path) != 0) {
|
||||
return -2;
|
||||
}
|
||||
if (phrase.empty()) {
|
||||
return;
|
||||
return -3;
|
||||
}
|
||||
vector<WIN32_FIND_DATA> results;
|
||||
//GET FILES
|
||||
@@ -305,26 +322,29 @@ void SearchDir(wstring phrase) {
|
||||
}
|
||||
if (results.empty()) {
|
||||
MessageBox(mainWindow, L"Nie znaleziono plików zawieraj¹cych wpisan¹ frazê.", L"Brak plików", MB_ICONEXCLAMATION);
|
||||
return;
|
||||
currentSearchPhrase.clear();
|
||||
return -1;
|
||||
}
|
||||
std::sort(results.begin(), results.end(), alphabeticSort);
|
||||
files = results;
|
||||
currentSearchPhrase = phrase;
|
||||
//ADD FILTERED CONTENT
|
||||
GenerateList(files);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//GET SEARCH PHRASE FROM searchBox
|
||||
wstring GetSearchPhrase() {
|
||||
__int64 searchLength = SendMessage(searchBox, WM_GETTEXTLENGTH, 0, NULL);
|
||||
TCHAR* searchPhrase = new TCHAR[static_cast<__int64>(searchLength) << 1];
|
||||
SendMessage(searchBox, WM_GETTEXT, static_cast<__int64>(searchLength) << 1, (LPARAM)searchPhrase);
|
||||
searchPhrase[searchLength] = _T('\0');
|
||||
TCHAR* searchPhrase = new TCHAR[searchLength + 1];
|
||||
SendMessage(searchBox, WM_GETTEXT, searchLength + 1, (LPARAM)searchPhrase);
|
||||
searchPhrase[(int)searchLength] = _T('\0');
|
||||
return wstring(searchPhrase);
|
||||
}
|
||||
|
||||
//MESSAGE LOOP
|
||||
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
int windowId, windowEvent;
|
||||
int windowId, windowEvent, randIndex;
|
||||
switch (msg) {
|
||||
case WM_CLOSE:
|
||||
DestroyWindow(hwnd);
|
||||
@@ -353,17 +373,26 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
break;
|
||||
case IDC_LIST:
|
||||
if (windowEvent == LBN_SELCHANGE) {
|
||||
if (currentState == 1 || currentState == 2) { currentState = 1; isQueued = TRUE; }
|
||||
if (LoadSelection(GetIndex()) == 0) {
|
||||
if (isAutoPlayEnabled == TRUE) {
|
||||
SendMessage(mainWindow, STATE_CHANGE, 1, NULL);
|
||||
if (selected != SendMessage(filesListCtrl, LB_GETCURSEL, 0, 0)) {
|
||||
if (currentState == 1 || currentState == 2) { currentState = 1; isQueued = TRUE; }
|
||||
if (LoadSelection(GetIndex()) == 0) {
|
||||
if (isOnClickPlayEnabled == TRUE) {
|
||||
SendMessage(mainWindow, STATE_CHANGE, 1, NULL);
|
||||
}
|
||||
}
|
||||
else {
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case IDC_SEARCHBTN:
|
||||
SearchDir(GetSearchPhrase());
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
if (SearchDir(GetSearchPhrase()) == -2) {
|
||||
SendMessage(mainWindow, STATE_CHANGE, -1, 0);
|
||||
}
|
||||
else {
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
}
|
||||
break;
|
||||
case IDC_PLAYBTN:
|
||||
switch (currentState) {
|
||||
@@ -371,6 +400,9 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
if (LoadSelection(GetIndex()) == 0) {
|
||||
SendMessage(mainWindow, STATE_CHANGE, 1, NULL);
|
||||
}
|
||||
else {
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
SendMessage(mainWindow, STATE_CHANGE, 2, NULL);
|
||||
@@ -382,7 +414,9 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
break;
|
||||
case IDC_STOPBTN:
|
||||
isQueued = FALSE;
|
||||
SendMessage(mainWindow, MM_MCINOTIFY, 0, 0);
|
||||
UnloadSelection();
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, NULL);
|
||||
SendMessage(filesListCtrl, LB_SETCURSEL, -1, 0);
|
||||
break;
|
||||
case IDM_EXIT:
|
||||
SendMessage(mainWindow, WM_CLOSE, NULL, NULL);
|
||||
@@ -395,17 +429,19 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
SendMessage(mainWindow, STATE_CHANGE, -1, 0);
|
||||
}
|
||||
if (SendMessage(searchBox, WM_GETTEXTLENGTH, 0, 0) > 0) {
|
||||
SearchDir(GetSearchPhrase());
|
||||
if (SearchDir(GetSearchPhrase()) == -2) {
|
||||
SendMessage(mainWindow, STATE_CHANGE, -1, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_OPCJE_ONCLICK:
|
||||
if (isAutoPlayEnabled) {
|
||||
if (isOnClickPlayEnabled) {
|
||||
CheckMenuItem(menuBar, ID_OPCJE_ONCLICK, MF_UNCHECKED);
|
||||
isAutoPlayEnabled = FALSE;
|
||||
isOnClickPlayEnabled = FALSE;
|
||||
}
|
||||
else {
|
||||
CheckMenuItem(menuBar, ID_OPCJE_ONCLICK, MF_CHECKED);
|
||||
isAutoPlayEnabled = TRUE;
|
||||
isOnClickPlayEnabled = TRUE;
|
||||
}
|
||||
break;
|
||||
case ID_OPCJE_LOOP:
|
||||
@@ -419,6 +455,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
}
|
||||
UnloadSelection();
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
SendMessage(filesListCtrl, LB_SETCURSEL, -1, 0);
|
||||
break;
|
||||
case ID_OPCJE_SHOWEXT:
|
||||
if (showExtensions) {
|
||||
@@ -431,12 +468,16 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
}
|
||||
if (!path.empty() && !files.empty()) {
|
||||
GenerateList(files);
|
||||
if (selected != -1) {
|
||||
SendMessage(filesListCtrl, LB_SETCURSEL, selected, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_PLIK_CLOSEDIR:
|
||||
SendMessage(mainWindow, STATE_CHANGE, -1, NULL);
|
||||
break;
|
||||
case ID_AKCJE_SRCLEAR:
|
||||
currentSearchPhrase.clear();
|
||||
SendMessage(searchBox, WM_SETTEXT, (WPARAM)L"", 0);
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
if (LoadDir(path) != 0) {
|
||||
@@ -450,15 +491,70 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
//GET SEED
|
||||
srand(time(NULL));
|
||||
//LOAD AND PLAY
|
||||
LoadSelection(rand() % files.size());
|
||||
SendMessage(mainWindow, STATE_CHANGE, 1, 0);
|
||||
randIndex = rand() % files.size();
|
||||
if (randIndex == selected && randIndex + 1 < files.size()) { randIndex += 1; }
|
||||
if (LoadSelection(randIndex) == 0) {
|
||||
SendMessage(filesListCtrl, LB_SETCURSEL, randIndex, 0);
|
||||
SendMessage(mainWindow, STATE_CHANGE, 1, 0);
|
||||
}
|
||||
else {
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
}
|
||||
break;
|
||||
case ID_OPCJE_AUTOPLAY:
|
||||
if (isAutoPlayEnabled) {
|
||||
CheckMenuItem(menuBar, ID_OPCJE_AUTOPLAY, MF_UNCHECKED);
|
||||
isAutoPlayEnabled = FALSE;
|
||||
}
|
||||
else {
|
||||
CheckMenuItem(menuBar, ID_OPCJE_AUTOPLAY, MF_CHECKED);
|
||||
isAutoPlayEnabled = TRUE;
|
||||
}
|
||||
UnloadSelection();
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
SendMessage(filesListCtrl, LB_SETCURSEL, -1, 0);
|
||||
break;
|
||||
case ID_AKCJE_JUMP:
|
||||
DialogBox(globalInstance, MAKEINTRESOURCE(IDD_JUMPTODIALOG), mainWindow, JumpToProc);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case MM_MCINOTIFY:
|
||||
if (!isQueued) {
|
||||
UnloadSelection();
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, NULL);
|
||||
if (isAutoPlayEnabled) {
|
||||
if (selected != -1 && !(selected + 1 > files.size() - 1)) {
|
||||
if (LoadSelection(selected + 1) == 0) {
|
||||
SendMessage(filesListCtrl, LB_SETCURSEL, selected, 0);
|
||||
SendMessage(mainWindow, STATE_CHANGE, 1, 0);
|
||||
}
|
||||
else {
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
}
|
||||
}
|
||||
else if(isLoopEnabled && selected != -1) {
|
||||
if (LoadSelection(0) == 0) {
|
||||
SendMessage(filesListCtrl, LB_SETCURSEL, selected, 0);
|
||||
SendMessage(mainWindow, STATE_CHANGE, 1, 0);
|
||||
}
|
||||
else {
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, 0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (selected != -1) {
|
||||
UnloadSelection();
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, NULL);
|
||||
SendMessage(filesListCtrl, LB_SETCURSEL, -1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (selected != -1) {
|
||||
UnloadSelection();
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, NULL);
|
||||
SendMessage(filesListCtrl, LB_SETCURSEL, -1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
isQueued = FALSE;
|
||||
@@ -478,6 +574,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
EnableMenuItem(menuBar, ID_PLIK_CLOSEDIR, MF_DISABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_RANDOM, MF_DISABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_SRCLEAR, MF_DISABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_JUMP, MF_DISABLED);
|
||||
SetWindowText(dirLabel, NO_DIR_LOADED_LABEL);
|
||||
SetWindowText(npLabel, NOT_PLAYING_LABEL);
|
||||
SetWindowText(playButton, PLAY_LABEL);
|
||||
@@ -492,6 +589,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
EnableMenuItem(menuBar, ID_PLIK_CLOSEDIR, MF_ENABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_RANDOM, MF_ENABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_SRCLEAR, MF_ENABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_JUMP, MF_DISABLED);
|
||||
SetWindowText(npLabel, NOT_PLAYING_LABEL);
|
||||
SetWindowText(playButton, PLAY_LABEL);
|
||||
break;
|
||||
@@ -502,18 +600,25 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
}
|
||||
case 1:
|
||||
if (!path.empty() && selected != -1) {
|
||||
int playerState = 0;
|
||||
if (currentState == 2) {
|
||||
mciSendString(L"resume mp3", NULL, 0, mainWindow);
|
||||
playerState = mciSendString(L"resume mp3", NULL, 0, mainWindow);
|
||||
}
|
||||
else {
|
||||
if (isLoopEnabled) {
|
||||
mciSendString(L"play mp3 repeat", NULL, 0, mainWindow);
|
||||
if (isLoopEnabled && !isAutoPlayEnabled) {
|
||||
playerState = mciSendString(L"play mp3 repeat", NULL, 0, mainWindow);
|
||||
}
|
||||
else {
|
||||
mciSendString(L"play mp3 notify", NULL, 0, mainWindow);
|
||||
playerState = mciSendString(L"play mp3 notify", NULL, 0, mainWindow);
|
||||
}
|
||||
}
|
||||
|
||||
if (playerState != 0) {
|
||||
MessageBox(mainWindow, L"Nie uda³o siê odtworzyæ wskazanego pliku. SprawdŸ czy plik nie jest uszkodzony.", L"B³¹d odtwarzania", MB_ICONERROR);
|
||||
SendMessage(mainWindow, STATE_CHANGE, 0, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
EnableWindow(filesListCtrl, TRUE);
|
||||
EnableWindow(playButton, TRUE);
|
||||
EnableWindow(stopButton, TRUE);
|
||||
@@ -522,6 +627,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
EnableMenuItem(menuBar, ID_PLIK_CLOSEDIR, MF_ENABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_RANDOM, MF_ENABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_SRCLEAR, MF_ENABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_JUMP, MF_ENABLED);
|
||||
SetWindowText(npLabel, files[selected].cFileName);
|
||||
SetWindowText(playButton, PAUSE_LABEL);
|
||||
break;
|
||||
@@ -544,6 +650,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
EnableMenuItem(menuBar, ID_PLIK_CLOSEDIR, MF_ENABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_RANDOM, MF_ENABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_SRCLEAR, MF_ENABLED);
|
||||
EnableMenuItem(menuBar, ID_AKCJE_JUMP, MF_ENABLED);
|
||||
SetWindowText(npLabel, pauseString);
|
||||
SetWindowText(playButton, L"Wznów");
|
||||
break;
|
||||
@@ -556,6 +663,59 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//JUMP TO DIALOG LOOP
|
||||
INT_PTR CALLBACK JumpToProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||
UNREFERENCED_PARAMETER(lParam);
|
||||
switch (msg) {
|
||||
case WM_INITDIALOG:
|
||||
SetDlgItemText(hwnd, IDC_TSMIN, L"00");
|
||||
SetDlgItemText(hwnd, IDC_TSSEC, L"00");
|
||||
return (INT_PTR)TRUE;
|
||||
case WM_COMMAND:
|
||||
if (LOWORD(wParam) == IDOK) {
|
||||
TCHAR* minB = new TCHAR[32];
|
||||
TCHAR* secB = new TCHAR[32];
|
||||
|
||||
GetDlgItemText(hwnd, IDC_TSMIN, minB, 30);
|
||||
GetDlgItemText(hwnd, IDC_TSSEC, secB, 30);
|
||||
|
||||
int min = 0;
|
||||
int sec = 0;
|
||||
|
||||
try {
|
||||
min = std::stoi(minB);
|
||||
sec = std::stoi(secB);
|
||||
|
||||
if (!(min >= 0 && min <= 999 && sec >= 0 && sec <= 59)) {
|
||||
MessageBox(mainWindow, L"Podane wartoœci s¹ niepoprawne", L"Niepoprawne wartoœci", MB_ICONEXCLAMATION);
|
||||
EndDialog(hwnd, LOWORD(wParam));
|
||||
return (INT_PTR)TRUE;
|
||||
}
|
||||
}
|
||||
catch (...) {
|
||||
MessageBox(mainWindow, L"Podane wartoœci s¹ niepoprawne", L"Niepoprawne wartoœci", MB_ICONEXCLAMATION);
|
||||
EndDialog(hwnd, LOWORD(wParam));
|
||||
return (INT_PTR)TRUE;
|
||||
}
|
||||
|
||||
int timestamp = (((min * 60) + sec) * 1000);
|
||||
|
||||
isQueued = TRUE;
|
||||
wstring mciCmd = L"play mp3 from " + std::to_wstring(timestamp);
|
||||
mciSendString(mciCmd.c_str(), NULL, 0, mainWindow);
|
||||
SendMessage(mainWindow, STATE_CHANGE, 1, 0);
|
||||
|
||||
EndDialog(hwnd, LOWORD(wParam));
|
||||
return (INT_PTR)TRUE;
|
||||
}
|
||||
else if (LOWORD(wParam) == IDCANCEL) {
|
||||
EndDialog(hwnd, LOWORD(wParam));
|
||||
return (INT_PTR)TRUE;
|
||||
}
|
||||
}
|
||||
return (INT_PTR)FALSE;
|
||||
}
|
||||
|
||||
//ABOUT DIALOG LOOP
|
||||
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
|
||||
UNREFERENCED_PARAMETER(lParam);
|
||||
@@ -574,5 +734,36 @@ INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
|
||||
|
||||
//SORTING FUNCTION
|
||||
bool alphabeticSort(WIN32_FIND_DATA a, WIN32_FIND_DATA b) {
|
||||
return std::tolower(wstring(a.cFileName).at(0)) < std::tolower(wstring(b.cFileName).at(0));
|
||||
wstring aStr = a.cFileName;
|
||||
wstring bStr = b.cFileName;
|
||||
wstring aBuf;
|
||||
wstring bBuf;
|
||||
int aNum = 0;
|
||||
int bNum = 0;
|
||||
for (int i = 0; i < aStr.size(); i++) {
|
||||
if (std::isdigit(static_cast<unsigned char>(aStr.at(i)))) {
|
||||
aBuf += aStr.at(i);
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < bStr.size(); i++) {
|
||||
if (std::isdigit(static_cast<unsigned char>(bStr.at(i)))) {
|
||||
bBuf += bStr.at(i);
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!aBuf.empty()) {
|
||||
aNum = std::stoi(aBuf);
|
||||
}
|
||||
if (!bBuf.empty()) {
|
||||
bNum = std::stoi(bBuf);
|
||||
}
|
||||
if (aNum != 0 || bNum != 0) {
|
||||
return aNum < bNum;
|
||||
}
|
||||
return std::tolower(aStr.at(0)) < std::tolower(bStr.at(0));
|
||||
}
|
||||
+11
-3
@@ -11,7 +11,13 @@
|
||||
#define IDI_SMALL 108
|
||||
#define IDC_CLICKPLAY 109
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDD_JUMPTODIALOG 130
|
||||
#define IDC_MENU 200
|
||||
#define IDC_SEARCHBTN 205
|
||||
#define IDC_PLAYBTN 207
|
||||
#define IDC_STOPBTN 208
|
||||
#define IDC_TSSEC 1000
|
||||
#define IDC_TSMIN 1001
|
||||
#define ID_REFRESH 32775
|
||||
#define ID_OPCJE_ONCLICK 32776
|
||||
#define ID_OPCJE_LOOP 32777
|
||||
@@ -20,6 +26,8 @@
|
||||
#define ID_PLIK_OPENDIR 32780
|
||||
#define ID_AKCJE_RANDOM 32781
|
||||
#define ID_OPCJE_SHOWEXT 32782
|
||||
#define ID_OPCJE_AUTOPLAY 32783
|
||||
#define ID_AKCJE_JUMP 32784
|
||||
#define IDC_STATIC -1
|
||||
|
||||
// Next default values for new objects
|
||||
@@ -27,9 +35,9 @@
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NO_MFC 1
|
||||
#define _APS_NEXT_RESOURCE_VALUE 130
|
||||
#define _APS_NEXT_COMMAND_VALUE 32783
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_RESOURCE_VALUE 131
|
||||
#define _APS_NEXT_COMMAND_VALUE 32785
|
||||
#define _APS_NEXT_CONTROL_VALUE 1002
|
||||
#define _APS_NEXT_SYMED_VALUE 110
|
||||
#endif
|
||||
#endif
|
||||
Reference in new issue
Block a user