From b8e7df198d5eabbf8c0d82f4aee86a38168d8d71 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 20 Feb 2020 06:08:49 +0900 Subject: [PATCH] Improve sound --- locales/ja-JP.yml | 1 + src/client/app.vue | 4 +- src/client/assets/sounds/syuilo/popo.mp3 | Bin 0 -> 18240 bytes src/client/assets/sounds/syuilo/triple.mp3 | Bin 0 -> 18240 bytes src/client/components/timeline.vue | 6 +- src/client/init.ts | 99 +++++++++++++++++++++ src/client/mios.ts | 94 +------------------ src/client/pages/messaging-room.vue | 5 +- src/client/pages/preferences/index.vue | 12 +++ src/client/store.ts | 1 + 10 files changed, 117 insertions(+), 105 deletions(-) create mode 100644 src/client/assets/sounds/syuilo/popo.mp3 create mode 100644 src/client/assets/sounds/syuilo/triple.mp3 diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index d09a769a3b..da255351e4 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -437,6 +437,7 @@ _sfx: notification: "通知" chat: "チャット" chatBg: "チャット(バックグラウンド)" + antenna: "アンテナ受信" _ago: unknown: "謎" diff --git a/src/client/app.vue b/src/client/app.vue index 34e2dbf7fb..7f97b6cf47 100644 --- a/src/client/app.vue +++ b/src/client/app.vue @@ -565,9 +565,7 @@ export default Vue.extend({ }); } - const audio = new Audio(`/assets/sounds/${this.$store.state.device.sfxNotification}.mp3`); - audio.volume = this.$store.state.device.sfxVolume; - audio.play(); + this.$root.sound('notification'); }, onMousedown(e) { diff --git a/src/client/assets/sounds/syuilo/popo.mp3 b/src/client/assets/sounds/syuilo/popo.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a2a1605bbb49142e9637b4b79493c80358661a45 GIT binary patch literal 18240 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 VIopl2953Wk0N007z0Y5D*F literal 0 HcmV?d00001 diff --git a/src/client/assets/sounds/syuilo/triple.mp3 b/src/client/assets/sounds/syuilo/triple.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..54ab974d469c0f94361c278d86532a44479b9bb6 GIT binary patch literal 18240 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 { if (cb) vm.$once('closed', cb); (vm as any).focus(); }, + sound(type: string) { + const sound = this.$store.state.device['sfx' + type.substr(0, 1).toUpperCase() + type.substr(1)]; + if (sound == null) return; + const audio = new Audio(`/assets/sounds/${sound}.mp3`); + audio.volume = this.$store.state.device.sfxVolume; + audio.play(); + } }, router: router, render: createEl => createEl(App) @@ -198,4 +205,96 @@ os.init(async () => { // マウント app.$mount('#app'); + + if (app.$store.getters.isSignedIn) { + const main = os.stream.useSharedConnection('main'); + + // 自分の情報が更新されたとき + main.on('meUpdated', i => { + app.$store.dispatch('mergeMe', i); + }); + + main.on('readAllNotifications', () => { + app.$store.dispatch('mergeMe', { + hasUnreadNotification: false + }); + }); + + main.on('unreadNotification', () => { + app.$store.dispatch('mergeMe', { + hasUnreadNotification: true + }); + }); + + main.on('unreadMention', () => { + app.$store.dispatch('mergeMe', { + hasUnreadMentions: true + }); + }); + + main.on('readAllUnreadMentions', () => { + app.$store.dispatch('mergeMe', { + hasUnreadMentions: false + }); + }); + + main.on('unreadSpecifiedNote', () => { + app.$store.dispatch('mergeMe', { + hasUnreadSpecifiedNotes: true + }); + }); + + main.on('readAllUnreadSpecifiedNotes', () => { + app.$store.dispatch('mergeMe', { + hasUnreadSpecifiedNotes: false + }); + }); + + main.on('readAllMessagingMessages', () => { + app.$store.dispatch('mergeMe', { + hasUnreadMessagingMessage: false + }); + }); + + main.on('unreadMessagingMessage', () => { + app.$store.dispatch('mergeMe', { + hasUnreadMessagingMessage: true + }); + + app.sound('chatBg'); + }); + + main.on('readAllAntennas', () => { + app.$store.dispatch('mergeMe', { + hasUnreadAntenna: false + }); + }); + + main.on('unreadAntenna', () => { + app.$store.dispatch('mergeMe', { + hasUnreadAntenna: true + }); + + app.sound('antenna'); + }); + + main.on('readAllAnnouncements', () => { + app.$store.dispatch('mergeMe', { + hasUnreadAnnouncement: false + }); + }); + + main.on('clientSettingUpdated', x => { + app.$store.commit('settings/set', { + key: x.key, + value: x.value + }); + }); + + // トークンが再生成されたとき + // このままではMisskeyが利用できないので強制的にサインアウトさせる + main.on('myTokenRegenerated', () => { + os.signout(); + }); + } }); diff --git a/src/client/mios.ts b/src/client/mios.ts index e0eb99769e..a29dcd8550 100644 --- a/src/client/mios.ts +++ b/src/client/mios.ts @@ -3,7 +3,7 @@ import Vue from 'vue'; import { EventEmitter } from 'eventemitter3'; import initStore from './store'; -import { apiUrl, version, locale } from './config'; +import { apiUrl, version } from './config'; import Progress from './scripts/loading'; import Stream from './scripts/stream'; @@ -142,98 +142,6 @@ export default class MiOS extends EventEmitter { @autobind private initStream() { this.stream = new Stream(this); - - if (this.store.getters.isSignedIn) { - const main = this.stream.useSharedConnection('main'); - - // 自分の情報が更新されたとき - main.on('meUpdated', i => { - this.store.dispatch('mergeMe', i); - }); - - main.on('readAllNotifications', () => { - this.store.dispatch('mergeMe', { - hasUnreadNotification: false - }); - }); - - main.on('unreadNotification', () => { - this.store.dispatch('mergeMe', { - hasUnreadNotification: true - }); - }); - - main.on('unreadMention', () => { - this.store.dispatch('mergeMe', { - hasUnreadMentions: true - }); - }); - - main.on('readAllUnreadMentions', () => { - this.store.dispatch('mergeMe', { - hasUnreadMentions: false - }); - }); - - main.on('unreadSpecifiedNote', () => { - this.store.dispatch('mergeMe', { - hasUnreadSpecifiedNotes: true - }); - }); - - main.on('readAllUnreadSpecifiedNotes', () => { - this.store.dispatch('mergeMe', { - hasUnreadSpecifiedNotes: false - }); - }); - - main.on('readAllMessagingMessages', () => { - this.store.dispatch('mergeMe', { - hasUnreadMessagingMessage: false - }); - }); - - main.on('unreadMessagingMessage', () => { - this.store.dispatch('mergeMe', { - hasUnreadMessagingMessage: true - }); - - const audio = new Audio(`/assets/sounds/${this.store.state.device.sfxChatBg}.mp3`); - audio.volume = this.store.state.device.sfxVolume; - audio.play(); - }); - - main.on('readAllAntennas', () => { - this.store.dispatch('mergeMe', { - hasUnreadAntenna: false - }); - }); - - main.on('unreadAntenna', () => { - this.store.dispatch('mergeMe', { - hasUnreadAntenna: true - }); - }); - - main.on('readAllAnnouncements', () => { - this.store.dispatch('mergeMe', { - hasUnreadAnnouncement: false - }); - }); - - main.on('clientSettingUpdated', x => { - this.store.commit('settings/set', { - key: x.key, - value: x.value - }); - }); - - // トークンが再生成されたとき - // このままではMisskeyが利用できないので強制的にサインアウトさせる - main.on('myTokenRegenerated', () => { - this.signout(); - }); - } } /** diff --git a/src/client/pages/messaging-room.vue b/src/client/pages/messaging-room.vue index aa0c4c93b8..7f7e77fc14 100644 --- a/src/client/pages/messaging-room.vue +++ b/src/client/pages/messaging-room.vue @@ -184,10 +184,7 @@ export default Vue.extend({ }, onMessage(message) { - // サウンドを再生する - const audio = new Audio(`/assets/sounds/${this.$store.state.device.sfxChat}.mp3`); - audio.volume = this.$store.state.device.sfxVolume; - audio.play(); + this.$root.sound('chat'); const isBottom = this.isBottom(); diff --git a/src/client/pages/preferences/index.vue b/src/client/pages/preferences/index.vue index 9d57ddad58..34dcbd8254 100644 --- a/src/client/pages/preferences/index.vue +++ b/src/client/pages/preferences/index.vue @@ -37,6 +37,11 @@ + + + + + @@ -97,6 +102,8 @@ const sounds = [ 'syuilo/pope1', 'syuilo/pope2', 'syuilo/waon', + 'syuilo/popo', + 'syuilo/triple', 'aisha/1', 'aisha/2', 'aisha/3', @@ -196,6 +203,11 @@ export default Vue.extend({ get() { return this.$store.state.device.sfxChatBg; }, set(value) { this.$store.commit('device/set', { key: 'sfxChatBg', value }); } }, + + sfxAntenna: { + get() { return this.$store.state.device.sfxAntenna; }, + set(value) { this.$store.commit('device/set', { key: 'sfxAntenna', value }); } + }, }, watch: { diff --git a/src/client/store.ts b/src/client/store.ts index 1a26bc82d1..3064cfdec7 100644 --- a/src/client/store.ts +++ b/src/client/store.ts @@ -47,6 +47,7 @@ const defaultDeviceSettings = { sfxNotification: 'syuilo/pope2', sfxChat: 'syuilo/pope1', sfxChatBg: 'syuilo/waon', + sfxAntenna: 'syuilo/triple', userData: {}, };