refactor(configuration): centralize constants

This commit is contained in:
wryk 2019-03-15 19:07:26 +01:00
parent 388a1f4bb5
commit c762f35fde
3 changed files with 18 additions and 12 deletions

4
src/constants.js Normal file
View file

@ -0,0 +1,4 @@
export const GIF_WIDTH = 200
export const GIF_HEIGHT = GIF_WIDTH
export const GIF_FRAME_RATE = 10
export const GIF_PALETTE_SIZE = 255

View file

@ -1,12 +1,14 @@
import {
GIF_WIDTH,
GIF_HEIGHT,
GIF_FRAME_RATE
} from '/constants.js'
import { import {
makeRectangle, makeRectangle,
crop crop
} from '/services/rectangle.js' } from '/services/rectangle.js'
const FRAMES_PER_SECOND = 10
const WIDTH = 200
const HEIGHT = WIDTH
export function capture (commit, mediaStream, duration) { export function capture (commit, mediaStream, duration) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const video = document.createElement('video') const video = document.createElement('video')
@ -15,18 +17,18 @@ export function capture (commit, mediaStream, duration) {
video.setAttribute('webkit-playsinline', '') video.setAttribute('webkit-playsinline', '')
const canvas = document.createElement('canvas') const canvas = document.createElement('canvas')
canvas.width = WIDTH canvas.width = GIF_WIDTH
canvas.height = HEIGHT canvas.height = GIF_HEIGHT
const canvasContext = canvas.getContext('2d') const canvasContext = canvas.getContext('2d')
const totalFrames = duration / 1000 * FRAMES_PER_SECOND const totalFrames = duration / 1000 * GIF_FRAME_RATE
if (totalFrames < 1) { if (totalFrames < 1) {
resolve([]) resolve([])
} }
const delayTime = 1000 / FRAMES_PER_SECOND const delayTime = 1000 / GIF_FRAME_RATE
video.srcObject = mediaStream video.srcObject = mediaStream
@ -67,8 +69,8 @@ export function capture (commit, mediaStream, duration) {
resolve({ resolve({
imageDataList, imageDataList,
imageWidth: WIDTH, imageWidth: GIF_WIDTH,
imageHeight: HEIGHT, imageHeight: GIF_HEIGHT,
delayTime delayTime
}) })
} }

View file

@ -4,7 +4,7 @@ import pEvent from 'p-event'
import { write } from '/services/encode-core.js' import { write } from '/services/encode-core.js'
import { promisesProgress, calcProgress } from '/services/util.js' import { promisesProgress, calcProgress } from '/services/util.js'
const PALETTE_SIZE = 255 import { GIF_PALETTE_SIZE } from '/constants.js'
export function encode ({ imageDataList, imageWidth, imageHeight, delayTime }) { export function encode ({ imageDataList, imageWidth, imageHeight, delayTime }) {
const emitter = new EventEmitter() const emitter = new EventEmitter()
@ -31,7 +31,7 @@ export function encode ({ imageDataList, imageWidth, imageHeight, delayTime }) {
worker.postMessage({ worker.postMessage({
imageData, imageData,
paletteSize: PALETTE_SIZE paletteSize: GIF_PALETTE_SIZE
}) })
}) })