Created
September 6, 2016 03:21
-
-
Save lefirea/3b2b9f5dcd7630f4ed8bcd61b1e519a5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.IO; | |
using System.Collections.Generic; | |
using System.ComponentModel; | |
using System.Data; | |
using System.Drawing; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
using System.Windows.Forms; | |
using System.Media; | |
using Microsoft.SmallBasic.Library; | |
namespace testform | |
{ | |
public partial class Form1 : Form | |
{ | |
public Form1() | |
{ | |
InitializeComponent(); | |
} | |
// 再生するファイル名の保存 | |
class times { | |
// ○○時 | |
public string ji0; | |
public string ji1; | |
public string ji2; | |
public string ji3; | |
public string ji4; | |
public string ji5; | |
public string ji6; | |
public string ji7; | |
public string ji8; | |
public string ji9; | |
public string ji10; | |
public string ji11; | |
public string ji12; | |
public string ji13; | |
public string ji14; | |
public string ji15; | |
public string ji16; | |
public string ji17; | |
public string ji18; | |
public string ji19; | |
public string ji20; | |
public string ji21; | |
public string ji22; | |
public string ji23; | |
// 〇〇分 | |
public string hun0; | |
public string hun1; | |
public string hun2; | |
public string hun3; | |
public string hun4; | |
public string hun5; | |
public string hun6; | |
public string hun7; | |
public string hun8; | |
public string hun9; | |
public string hun10; | |
public string hun20; | |
public string hun30; | |
public string hun40; | |
public string hun50; | |
public string hun; //分.wav | |
public string am; //午前.wav | |
public string pm; //午後.wav | |
public string ampm; //午前午後の指定があった場合 | |
} | |
// グローバル関数群 | |
static int half=0; //12時間設定のチェック確認。0=チェック無し、1=チェックあり | |
static int count = 0; | |
static string path = Directory.GetCurrentDirectory(); //現在のフォルダパスを取得 | |
static string charaname = @"\voice\Character.txt"; //リストに表示するためのファイルのパス | |
static string otoplace = @"\oto.txt"; //再生する音源名が書かれたファイルのパス | |
static string voicename; //再生するボイスの名前(例:傷音ウサ)を格納する | |
static string line; | |
static times data = new times(); //再生するファイル名の保存 | |
static Encoding sjis = Encoding.GetEncoding("Shift_JIS"); //Shift_JISを宣言 | |
static StreamReader charafile; //読み込むキャラ名ファイルの保存 | |
static StreamReader voicefile; //読み込む音源名ファイルの保存 | |
static SoundPlayer timeplayer = null; //wavファイル再生用 | |
static SoundPlayer m10player = null; | |
static SoundPlayer m1player = null; | |
static SoundPlayer hunplayer = null; | |
static SoundPlayer amplayer = null; | |
static SoundPlayer pmplayer = null; | |
static DateTime datetime = DateTime.Now; | |
// ×ボタンが押された時 | |
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { | |
e.Cancel = true; | |
this.Visible = false; | |
notifyIcon1.Visible = true; //タスクアイコンが消えてしまうから書いたのに効果なし | |
} | |
// OK タスクアイコンの"終了"が押された時 | |
private void ExitStripMenuItem1_Click(object sender, EventArgs e) | |
{ | |
notifyIcon1.Visible = false; | |
Application.Exit(); | |
} | |
// OK タスクアイコンの"表示"が押された時 | |
private void OpenStripMenuItem1_Click(object sender, EventArgs e) | |
{ | |
this.Visible = true; | |
this.ShowInTaskbar = true; | |
this.Activate(); | |
} | |
// OK ボタン"終了"が押された時 | |
private void button4_Click(object sender, EventArgs e) | |
{ | |
notifyIcon1.Visible = false; | |
Application.Exit(); | |
} | |
// OK 最小化された時 | |
private void Form1_Resize(object sender, EventArgs e) { | |
if (this.WindowState == FormWindowState.Minimized) { | |
this.ShowInTaskbar = false; | |
this.Visible = false; | |
notifyIcon1.Visible = true; | |
} | |
} | |
// YET ボイス名のリスト更新 | |
private void button2_Click(object sender, EventArgs e) | |
{ | |
comboBox1.Items.Clear(); //コンボボックス初期化 | |
charafile = new StreamReader(path + charaname,sjis); //キャラ名取得 | |
while ((line = charafile.ReadLine()) != null) | |
{ //各行読み込み | |
comboBox1.Items.Add(line); //コンボボックスのリストに追加 | |
} | |
charafile.Close(); //carafile開放 | |
comboBox1.SelectedIndex = 0; //カーソルを先頭に設定 | |
voicename = comboBox1.Items[0].ToString(); //現在選択されているキャラ名を取得 | |
voicefile = new StreamReader(path + @"\voice\" + voicename + otoplace,sjis); //再生する音源ファイル名取得 | |
while ((line = voicefile.ReadLine()) != null) | |
{ //各行読み込み | |
cut(line, count); //ファイル名切り出し | |
count++; //カウントアップ | |
} | |
voicefile.Close(); //voicefile開放 | |
count = 0; //カウントリセット | |
} | |
// YET 試しに再生 | |
private void button3_Click(object sender, EventArgs e) | |
{ | |
datetime = DateTime.Now; | |
if (checkBox1.Checked == true) { //チェックボックスの状況を取得 | |
half = 1; | |
} | |
else if (checkBox1.Checked == false) { //チェックボックスの状況を取得 | |
half = 0; | |
} | |
fileselect(datetime.Hour, datetime.Minute); | |
} | |
// YET 設定の決定 | |
private void button1_Click(object sender, EventArgs e) | |
{ | |
} | |
// YET 起動直後 | |
private void Form1_Load(object sender, EventArgs e) | |
{ | |
charafile = new StreamReader(path + charaname,sjis); //キャラ名取得 | |
while ((line = charafile.ReadLine()) != null) { //各行読み込み | |
comboBox1.Items.Add(line); //コンボボックスのリストに追加 | |
} | |
charafile.Close(); //carafile開放 | |
comboBox1.SelectedIndex = 0; //カーソルを先頭に設定 | |
voicename = comboBox1.Items[0].ToString(); //現在選択されているキャラ名を取得 | |
voicefile = new StreamReader(path + @"\voice\" + voicename + otoplace,sjis); //再生する音源ファイル名取得 | |
while ((line = voicefile.ReadLine()) != null) { //各行読み込み | |
cut(line, count); //ファイル名切り出し | |
count++; //カウントアップ | |
} | |
voicefile.Close(); //voicefile開放 | |
count = 0; //カウントリセット | |
} | |
// OK wavファイル名切り出し | |
static void cut(string dat, int c) | |
{ | |
string buf; | |
int checkap=1; | |
int place = dat.IndexOf("="); | |
buf = dat.Substring(place + 1); | |
switch (c) | |
{ | |
case 1: | |
data.ji0 = buf; | |
break; | |
case 2: | |
data.ji1 = buf; | |
break; | |
case 3: | |
data.ji2 = buf; | |
break; | |
case 4: | |
data.ji3 = buf; | |
break; | |
case 5: | |
data.ji4 = buf; | |
break; | |
case 6: | |
data.ji5 = buf; | |
break; | |
case 7: | |
data.ji6 = buf; | |
break; | |
case 8: | |
data.ji7 = buf; | |
break; | |
case 9: | |
data.ji8 = buf; | |
break; | |
case 10: | |
data.ji9 = buf; | |
break; | |
case 11: | |
data.ji10 = buf; | |
break; | |
case 12: | |
data.ji11 = buf; | |
break; | |
case 13: | |
data.ji12 = buf; | |
break; | |
case 14: | |
data.ji13 = buf; | |
break; | |
case 15: | |
data.ji14 = buf; | |
break; | |
case 16: | |
data.ji15 = buf; | |
break; | |
case 17: | |
data.ji16 = buf; | |
break; | |
case 18: | |
data.ji17 = buf; | |
break; | |
case 19: | |
data.ji18 = buf; | |
break; | |
case 20: | |
data.ji19 = buf; | |
break; | |
case 21: | |
data.ji20 = buf; | |
break; | |
case 22: | |
data.ji21 = buf; | |
break; | |
case 23: | |
data.ji22 = buf; | |
break; | |
case 24: | |
data.ji23 = buf; | |
break; | |
case 25: | |
data.hun0 = buf; | |
break; | |
case 26: | |
data.hun1 = buf; | |
break; | |
case 27: | |
data.hun2 = buf; | |
break; | |
case 28: | |
data.hun3 = buf; | |
break; | |
case 29: | |
data.hun4 = buf; | |
break; | |
case 30: | |
data.hun5 = buf; | |
break; | |
case 31: | |
data.hun6 = buf; | |
break; | |
case 32: | |
data.hun7 = buf; | |
break; | |
case 33: | |
data.hun8 = buf; | |
break; | |
case 34: | |
data.hun9 = buf; | |
break; | |
case 35: | |
data.hun10 = buf; | |
break; | |
case 36: | |
data.hun20 = buf; | |
break; | |
case 37: | |
data.hun30 = buf; | |
break; | |
case 38: | |
data.hun40 = buf; | |
break; | |
case 39: | |
data.hun50 = buf; | |
break; | |
case 40: | |
data.hun = buf; | |
break; | |
case 41: | |
data.am = buf; | |
break; | |
case 42: | |
data.pm = buf; | |
break; | |
default: | |
break; | |
} | |
if (datetime.Hour > 12) { | |
checkap = datetime.Hour - 12; | |
} | |
else if (datetime.Hour <= 12) { | |
checkap = datetime.Hour; | |
} | |
switch (checkap) { | |
case 1: | |
data.ampm = data.ji0; | |
break; | |
case 2: | |
data.ampm = data.ji1; | |
break; | |
case 3: | |
data.ampm = data.ji2; | |
break; | |
case 4: | |
data.ampm = data.ji3; | |
break; | |
case 5: | |
data.ampm = data.ji4; | |
break; | |
case 6: | |
data.ampm = data.ji5; | |
break; | |
case 7: | |
data.ampm = data.ji6; | |
break; | |
case 8: | |
data.ampm = data.ji7; | |
break; | |
case 9: | |
data.ampm = data.ji8; | |
break; | |
case 10: | |
data.ampm = data.ji9; | |
break; | |
case 11: | |
data.ampm = data.ji10; | |
break; | |
case 12: | |
data.ampm = data.ji11; | |
break; | |
case 13: | |
data.ampm = data.ji12; | |
break; | |
default: | |
break; | |
} | |
} | |
// YET wavファイル再生 | |
static void playsound(string time, string minute10, string minute1) | |
{ | |
string timedata = path + @"\voice\" + voicename + @"\" + time; | |
string minute10data = path + @"\voice\" + voicename + @"\" + minute10; | |
string minute1data = path + @"\voice\" + voicename + @"\" + minute1; | |
string hundata = path + @"\voice\" + voicename + @"\" + data.hun; | |
string amdata = path + @"\voice\" + voicename + @"\" + data.am; | |
string pmdata = path + @"\voice\" + voicename + @"\" + data.pm; | |
if (timeplayer != null || m10player != null || m1player != null || hunplayer != null) | |
{ | |
stop(); | |
} | |
timeplayer = new SoundPlayer(timedata); | |
m10player = new SoundPlayer(minute10data); | |
m1player = new SoundPlayer(minute1data); | |
hunplayer = new SoundPlayer(hundata); | |
amplayer = new SoundPlayer(amdata); | |
pmplayer = new SoundPlayer(pmdata); | |
//timeplayer.PlaySync(); | |
Sound.PlayAndWait(timedata); | |
// 10分未満 | |
if (minute10 != "none") | |
{ | |
//m10player.PlaySync(); | |
Sound.PlayAndWait(minute10data); | |
} | |
if (minute1 != "none") //10分,20分,…じゃない場合 | |
{ | |
//m1player.PlaySync(); | |
Sound.PlayAndWait(minute1data); | |
} | |
else | |
{ //10分,20分,…の場合 | |
//hunplayer.PlaySync(); | |
Sound.PlayAndWait(hundata); | |
} | |
} | |
// OK wavファイル再生停止 | |
static void stop() | |
{ | |
if (timeplayer != null) | |
{ | |
timeplayer.Stop(); | |
timeplayer.Dispose(); | |
timeplayer = null; | |
} | |
if (m10player != null) | |
{ | |
m10player.Stop(); | |
m10player.Dispose(); | |
m10player = null; | |
} | |
if (m1player != null) | |
{ | |
m1player.Stop(); | |
m1player.Dispose(); | |
m1player = null; | |
} | |
if (hunplayer != null) | |
{ | |
hunplayer.Stop(); | |
hunplayer.Dispose(); | |
hunplayer = null; | |
} | |
} | |
// OK wavファイル選択 | |
static void fileselect(int timedata, int minute) | |
{ | |
string time, minute10, minute1; | |
int tmp = minute; | |
int m10 = 0, m1 = 0; | |
if (half == 1 && timedata > 12) { | |
timedata -= 12; | |
} | |
// 〇〇時の指定 | |
switch (timedata) | |
{ | |
case 0: | |
time = data.ji0; | |
break; | |
case 1: | |
time = data.ji1; | |
break; | |
case 2: | |
time = data.ji2; | |
break; | |
case 3: | |
time = data.ji3; | |
break; | |
case 4: | |
time = data.ji4; | |
break; | |
case 5: | |
time = data.ji5; | |
break; | |
case 6: | |
time = data.ji6; | |
break; | |
case 7: | |
time = data.ji7; | |
break; | |
case 8: | |
time = data.ji8; | |
break; | |
case 9: | |
time = data.ji9; | |
break; | |
case 10: | |
time = data.ji10; | |
break; | |
case 11: | |
time = data.ji11; | |
break; | |
case 12: | |
time = data.ji12; | |
break; | |
case 13: | |
time = data.ji13; | |
break; | |
case 14: | |
time = data.ji14; | |
break; | |
case 15: | |
time = data.ji15; | |
break; | |
case 16: | |
time = data.ji16; | |
break; | |
case 17: | |
time = data.ji17; | |
break; | |
case 18: | |
time = data.ji18; | |
break; | |
case 19: | |
time = data.ji19; | |
break; | |
case 20: | |
time = data.ji20; | |
break; | |
case 21: | |
time = data.ji21; | |
break; | |
case 22: | |
time = data.ji22; | |
break; | |
case 23: | |
time = data.ji23; | |
break; | |
default: | |
time = "none"; | |
break; | |
} | |
while (tmp >= 10) | |
{ | |
tmp -= 10; | |
m10+=10; | |
} | |
m1 = tmp; | |
switch (m1) | |
{ | |
case 0: | |
if (m10 != 0) { | |
minute1 = "none"; | |
} | |
else { | |
minute1 = data.hun0; | |
} | |
break; | |
case 1: | |
minute1 = data.hun1; | |
break; | |
case 2: | |
minute1 = data.hun2; | |
break; | |
case 3: | |
minute1 = data.hun3; | |
break; | |
case 4: | |
minute1 = data.hun4; | |
break; | |
case 5: | |
minute1 = data.hun5; | |
break; | |
case 6: | |
minute1 = data.hun6; | |
break; | |
case 7: | |
minute1 = data.hun7; | |
break; | |
case 8: | |
minute1 = data.hun8; | |
break; | |
case 9: | |
minute1 = data.hun9; | |
break; | |
default: | |
minute1 = "none"; | |
break; | |
} | |
switch (m10) | |
{ | |
case 10: | |
minute10 = data.hun10; | |
break; | |
case 20: | |
minute10 = data.hun20; | |
break; | |
case 30: | |
minute10 = data.hun30; | |
break; | |
case 40: | |
minute10 = data.hun40; | |
break; | |
case 50: | |
minute10 = data.hun50; | |
break; | |
default: | |
minute10 = "none"; | |
break; | |
} | |
//MessageBox.Show("time="+time+"\nminute10="+minute10+"\nminute1="+minute1, "報告", MessageBoxButtons.OK, MessageBoxIcon.Error); | |
playsound(time, minute10, minute1); | |
//Console.WriteLine("time={0}\nminute10={1}\nminute1={2}", time, minute10, minute1); | |
} | |
// ウィンドウを隠す | |
private void button5_Click(object sender, EventArgs e) | |
{ | |
this.ShowInTaskbar = false; | |
this.Visible = false; | |
notifyIcon1.Visible = true; | |
} | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment