Skip to content

Commit

Permalink
You input only number in menu screen, automatic run
Browse files Browse the repository at this point in the history
이제 메인메뉴 및 곡 선택화면까지는 숫자만 입력하면 번거롭게 엔터키를 누르지 않아도 자동으로 다음 화면으로 넘어갑니다.
  • Loading branch information
VDoring committed Dec 20, 2019
1 parent 0dd12aa commit f412915
Show file tree
Hide file tree
Showing 38 changed files with 199 additions and 118 deletions.
Binary file modified MP/Debug/MusicPlayer.exe
Binary file not shown.
Binary file modified MP/Debug/MusicPlayer.ilk
Binary file not shown.
Binary file modified MP/Debug/MusicPlayer.pdb
Binary file not shown.
Binary file modified MP/MusicPlayer/Debug/Func_3.obj
Binary file not shown.
2 changes: 0 additions & 2 deletions MP/MusicPlayer/Debug/MusicPlayer.log
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
 Func_3.c
main.c
코드를 생성하고 있습니다...
MusicPlayer.vcxproj -> C:\Users\hodor\source\repos\MusicPlayer\Debug\MusicPlayer.exe
Binary file modified MP/MusicPlayer/Debug/MusicPlayer.tlog/CL.command.1.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Debug/MusicPlayer.tlog/CL.read.1.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Debug/MusicPlayer.tlog/CL.write.1.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Debug/vc141.idb
Binary file not shown.
Binary file modified MP/MusicPlayer/Debug/vc141.pdb
Binary file not shown.
2 changes: 1 addition & 1 deletion MP/MusicPlayer/Func_1.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ void Musiclist_line_Read_1() {
int WindowtitleTotalcount; // (윈도우타이틀 출력용)빈 라인을 제외한 .txt파일의 총 라인 수

/* .txt파일 총 라인수 계산 */
void WinTitleTotal() {
void WinTitleTotal() { //빈라인을 제외한 총 라인 갯수를 세는 함수(윈도우타이틀 출력을 위한 함수)
int non_blank_line_number = line_number; // 빈라인 휫수 포함한 line_number의 값을 non_blank_line_number에 저장
non_blank_line_number++; // (왜 1을 더했는진 22~24줄의 주석을 참고하세요)
int non_blank_for = non_blank_line_number; // for문에 사용할 변수. 빈 라인 휫수가 포함되있는 상태
Expand Down
7 changes: 1 addition & 6 deletions MP/MusicPlayer/Func_2.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,4 @@ void Musiclist_ContinuePlay_2() {
playcount = 0; //재생휫수 초기화
fclose(fp);
NowCount2 = 0;
}

/* 발견한 버그
2번기능 한번 사용후 다시 2번기능 사용시 작동에러 발생
*/
}
29 changes: 2 additions & 27 deletions MP/MusicPlayer/Func_3.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
int random_number; //rand함수의 값을 담는 곳
int linkRandom_line_number = 0; // .txt파일 라인 수 저장
int Random; //random_number의 값을 받는 변수(랜덤숫자 최종)
void Random_Select() {
void Random_Select() { //난수 기반으로 재생할 링크를 정하는 함수
linkRandom_line_number = line_number; //line_number는 main.c에서도 사용하므로 혼동 생기지않게 똑같은 값을 가진 변수를 따로선언
linkRandom_line_number += 2;
Random = 0;
Expand Down Expand Up @@ -70,29 +70,4 @@ void Musiclist_Play() {

fclose(fp);

}



/*
Bodyhit_Attack_random_number = rand();
Bodyhit_Attack = (int)Bodyhit_Attack_random_number % 101; //랜덤숫자 0~100
*/

/*
앞으로의 계획
rand함수를 사용한다. 다만 그 범위는 "첫 라인(1?) ~ line_number" 까지로 한다.
이후 랜덤숫자가 나온데로 for와 fgets를 사용해 링크를 읽은 다음 재생한다.
(반복)
*/

/*
오류)
특정 곡만 실행되는 현상이 있음.
*/
}
54 changes: 54 additions & 0 deletions MP/MusicPlayer/Func_4.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <Windows.h>
#include <string.h>

FILE *fp; // .txt파일 전용 파일포인터

int Random;
int Play_Random_count = 0;
int save_random_number[10000] = { 0, };
void Save_RandomNum() { //랜덤 모드시 라인 넘버를 저장하는 함수. (중복으로 음악이 실행되는걸 방지하기 위함)
save_random_number[Play_Random_count] = Random;
Play_Random_count++;
}


char fileread[4096]; // .txt파일 한줄읽기용 문자열
const char CMD_Static_command_4[100] = { "start chrome --incognito" }; // 크롬 시크릿모드 실행 명령어
char cache_Music1_4[100];
char cache_Music2_4[8092];
char *ptr_linkcut_result;
char *contact_4 = NULL; //cache_Music2_2 문자열에서 자른 나머지 문자열을 저장
char Musiclink_4[8192] = { 0, }; // 최종 음악재생 명령어
void No_overlap_Musiclist_play() { //(음악중복재생 방지) 음악플레이
fopen_s(&fp, "Mlist.txt", "rt");
rewind(fp);

for (int i = 0; i < Random; i++) {
fgets(fileread, sizeof(fileread), fp);
}

sprintf_s(cache_Music1_4, sizeof(cache_Music1_4), "%s", CMD_Static_command_4);
sprintf_s(cache_Music2_4, sizeof(cache_Music2_4), "%s", fileread);

ptr_linkcut_result = strtok_s(cache_Music2_4, " ", &contact_4); // 한줄 읽은 내용을 띄어쓰기 기준으로 나누어 ptr_linkcut_result에 저장

sprintf_s(Musiclink_4, sizeof(Musiclink_4), "%s %s", cache_Music1_4, ptr_linkcut_result); // 최종 음악재생 명령어

system(Musiclink_4);

fclose(fp);
}


void File_close4() { // .txt 파일 닫음
Play_Random_count = 0;

for (int i = 0; i < 10000; i++) {
save_random_number[i] = 0;
}

fclose(fp);
}
31 changes: 26 additions & 5 deletions MP/MusicPlayer/GUI.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
#include <time.h>
#include <Windows.h>
#include <string.h>
#include <conio.h>

int main_input; // 메인화면 입력
int play_input; // 곡 재생모드 입력
int play_continue_input; // 계속 음악 재생할지를 묻는 것에 대한 값 입력
int play_random_mode_input; //랜덤모드 유형 선택에 대한 값 입력
int play_no_overlap_continue_input; //(중복방지모드 전용)계속 음악 재생할지를 묻는 것에 대한 값 입력
char WindowSize[40] = { "mode con cols=40 lines=13" }; //창 크기 설정 명령어

gotoxy(int x, int y) { // 글자 위치 조정 함수
Expand All @@ -15,7 +18,7 @@
}


void mainGUI() { // 메인 화면
void mainGUI() { // 메인 화면 CUI
system(WindowSize); int x = 0, y = 0;
system("title Music Player");

Expand All @@ -24,10 +27,10 @@
gotoxy(x + 15, y + 6); printf("[2] Exit");
gotoxy(x, y + 8); printf("________________________________________");
gotoxy(x + 10, y + 10); printf("Input : ");
gotoxy(x + 19, y + 10); scanf_s("%d", &main_input);
gotoxy(x + 19, y + 10); main_input = getch();
}

void playmodeGUI() { // 재생 모드 선택
void playmodeGUI() { // 재생 모드 선택 CUI
system(WindowSize); int x = 0, y = 0;
system("title Music Player");

Expand All @@ -37,14 +40,32 @@
gotoxy(x, y + 7); printf("3. Random");
gotoxy(x, y + 9); printf("________________________________________");
gotoxy(x + 10, y + 11); printf("Input : ");
gotoxy(x + 19, y + 11); scanf_s("%d", &play_input);
gotoxy(x + 19, y + 11); play_input = getch();
}

void Question_Continue() { //다음 곡 재생할껀지 물음
void Question_Continue() { //다음 곡 재생할껀지 묻는 CUI
system(WindowSize); int x = 0, y = 0;

gotoxy(x + 10, y + 4); printf("Next Music Continue?");
gotoxy(x + 11, y + 6); printf("[1] Yes [2] No");
gotoxy(x + 10, y + 10); printf("Input : ");
gotoxy(x + 19, y + 10); scanf_s("%d", &play_continue_input);
}

void Random_mode() { //랜덤모드 선택 CUI
system(WindowSize); int x = 0, y = 0;

gotoxy(x + 9, y + 2); printf("[ Select Random Mode ]");
gotoxy(x + 5, y + 5); printf("[1] Overlap [2] No Overlap");
gotoxy(x + 10, y + 9); printf("Input : ");
gotoxy(x + 19, y + 9); play_random_mode_input = getch();
}

void No_overlap_Qusetion_Continue() { //(중복재생금지모드 전용)다음 곡 재생할껀지 물는 CUI
system(WindowSize); int x = 0, y = 0;

gotoxy(x + 8, y + 4); printf("Random Music Continue?");
gotoxy(x + 11, y + 6); printf("[1] Yes [2] No");
gotoxy(x + 10, y + 10); printf("Input : ");
gotoxy(x + 19, y + 10); scanf_s("%d", &play_no_overlap_continue_input);
}
31 changes: 15 additions & 16 deletions MP/MusicPlayer/MusicPlayer.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,20 @@
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<Text Include="Mlist.txt" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="Func_1.c" />
<ClCompile Include="Func_2.c" />
<ClCompile Include="Func_3.c" />
<ClCompile Include="Func_4.c" />
<ClCompile Include="GUI.c" />
<ClCompile Include="main.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="head.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{B9789F01-9305-439B-8162-20A957BD4F0D}</ProjectGuid>
Expand Down Expand Up @@ -52,6 +66,7 @@
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Static</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
Expand Down Expand Up @@ -139,22 +154,6 @@
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="Func_1.c" />
<ClCompile Include="Func_2.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Func_3.c" />
<ClCompile Include="GUI.c" />
<ClCompile Include="main.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="head.h" />
</ItemGroup>
<ItemGroup>
<Text Include="Mlist.txt" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
Expand Down
21 changes: 12 additions & 9 deletions MP/MusicPlayer/MusicPlayer.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,28 @@
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<Text Include="Mlist.txt">
<Filter>소스 파일</Filter>
</Text>
</ItemGroup>
<ItemGroup>
<ClCompile Include="Func_1.c">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="GUI.c">
<ClCompile Include="Func_2.c">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="main.c">
<ClCompile Include="Func_3.c">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="Func_2.c">
<ClCompile Include="Func_4.c">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="Func_3.c">
<ClCompile Include="GUI.c">
<Filter>소스 파일</Filter>
</ClCompile>
<ClCompile Include="main.c">
<Filter>소스 파일</Filter>
</ClCompile>
</ItemGroup>
Expand All @@ -36,9 +44,4 @@
<Filter>헤더 파일</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Text Include="Mlist.txt">
<Filter>소스 파일</Filter>
</Text>
</ItemGroup>
</Project>
Binary file modified MP/MusicPlayer/Release/Func_1.obj
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/Func_2.obj
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/Func_3.obj
Binary file not shown.
Binary file added MP/MusicPlayer/Release/Func_4.obj
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/GUI.obj
Binary file not shown.
16 changes: 12 additions & 4 deletions MP/MusicPlayer/Release/MusicPlayer.log
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
 Func_2.c
 Func_1.c
Func_2.c
Func_3.c
Func_4.c
GUI.c
c:\users\hodor\source\repos\musicplayer\musicplayer\gui.c(30): warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _getch. See online help for details.
c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\conio.h(453): note: 'getch' 선언을 참조하십시오.
c:\users\hodor\source\repos\musicplayer\musicplayer\gui.c(43): warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _getch. See online help for details.
c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\conio.h(453): note: 'getch' 선언을 참조하십시오.
c:\users\hodor\source\repos\musicplayer\musicplayer\gui.c(61): warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _getch. See online help for details.
c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\conio.h(453): note: 'getch' 선언을 참조하십시오.
main.c
코드를 생성하고 있습니다.
10 of 26 functions (38.5%) were compiled, the rest were copied from previous compilation.
2 functions were new in current compilation
7 functions had inline decision re-evaluated but remain unchanged
9 of 32 functions (28.1%) were compiled, the rest were copied from previous compilation.
5 functions were new in current compilation
6 functions had inline decision re-evaluated but remain unchanged
코드를 생성했습니다.
MusicPlayer.vcxproj -> C:\Users\hodor\source\repos\MusicPlayer\Release\MusicPlayer.exe
Binary file modified MP/MusicPlayer/Release/MusicPlayer.tlog/CL.command.1.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/MusicPlayer.tlog/CL.read.1.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/MusicPlayer.tlog/CL.write.1.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/MusicPlayer.tlog/MusicPlayer.write.1u.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/MusicPlayer.tlog/link.command.1.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/MusicPlayer.tlog/link.read.1.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/MusicPlayer.tlog/link.write.1.tlog
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/main.obj
Binary file not shown.
Binary file modified MP/MusicPlayer/Release/vc141.pdb
Binary file not shown.
46 changes: 25 additions & 21 deletions MP/MusicPlayer/head.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,21 @@
#define __HEAD_H__

FILE *fp; // .txt파일 전용 파일포인터
int main_input; // 메인화면 입력
int play_input; // 곡 재생모드 입력
int main_input; // 메인화면 CUI용 입력용 변수
int play_input; // 곡 재생모드 CUI용 입력용 변수

/* GUI 관련 */
/* GUI(인터페이스) 관련 */
void mainGUI(); // 메인화면 GUI
void playmodeGUI(); // 음악재생모드 선택 GUI
void Question_Continue(); // 계속 도는 다음곡을 플레이할지 묻는 함수
void playmodeGUI(); // 재생 모드 선택 CUI
void Question_Continue(); //다음 곡 재생할껀지 묻는 CUI
void Random_mode(); //랜덤모드 선택 CUI
void No_overlap_Qusetion_Continue(); //(중복재생금지모드 전용)다음 곡 재생할껀지 물는 CUI

/* 음악재생 공통 */
int play_continue_input; // 계속 음악 재생할지를 묻는 것에 대한 값 입력
int play_continue_input; // 다음 곡 재생할껀지 묻는 CUI용 입력용 변수
int line_number; // .txt파일 라인 수 저장
void WinTitleTotal(); //빈라인을 제외한 총 라인 갯수를 센다.(윈도우타이틀 출력을 위한 함수)
int play_random_mode_input;
void WinTitleTotal(); //빈라인을 제외한 총 라인 갯수를 세는 함수(윈도우타이틀 출력을 위한 함수)

/* 음악재생 - 1번 기능*/
void Musiclist_line_Read_1(); // .txt파일 라인 수 카운팅
Expand All @@ -22,19 +25,20 @@
void File_close(); // .txt 파일 닫기 및 윈도우타이틀 값 초기화

/* 음악재생 - 2번 기능 */
void Musiclist_line_Read_2();
void Musiclist_FirstPlay_2();
void Musiclist_ContinuePlay_2();
void File_close2();

/* 음악재생 - 3번 기능 */
void Musiclist_line_Read_3();
void Random_Select(); //랜덤한 수로 링크를 정한다
void Musiclist_Play(); //음악플레이

/*
void Musiclist_FirstPlay_3();
void Musiclist_ContinuePlay_3();
*/
void Musiclist_line_Read_2(); // .txt파일 라인 수 카운팅
void Musiclist_FirstPlay_2(); // 최초 음악 재생
void Musiclist_ContinuePlay_2(); // (최초 이후)음악 재생
void File_close2(); // .txt 파일 닫기 및 윈도우타이틀 값 초기화

/* 음악재생 - 3번(중복가능한 랜덤) 기능 */
void Musiclist_line_Read_3(); // .txt파일 라인 수 카운팅
void Random_Select(); // 랜덤한 수를 기반으로 재생할 링크를 정하는 함수
void Musiclist_Play(); // 음악 재생

/* 음악재생 - 4번(중복제외 랜덤) 기능 */
int play_no_overlap_continue_input; //(중복재생금지모드 전용)다음 곡 재생할껀지에 대한 값 입력
void Save_RandomNum(); //랜덤 모드시 라인 넘버를 저장하는 함수. (중복으로 음악이 실행되는걸 방지하기 위함)
void No_overlap_Musiclist_play(); //(음악중복재생 방지) 음악플레이
void File_close4(); // .txt 파일 닫기 및 윈도우타이틀 값 초기화

#endif
Loading

0 comments on commit f412915

Please sign in to comment.