Skip to content

Commit

Permalink
feat: Mercury GL E-Ink audio (#1913)
Browse files Browse the repository at this point in the history
* Added audio SSML to screen data response on gl einks with audio configured.

* Updated screens_config.

* Tweaked data so we always include the key even if there is no audio.
  • Loading branch information
cmaddox5 authored Nov 7, 2023
1 parent 0f03c50 commit 0172e14
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 8 deletions.
4 changes: 2 additions & 2 deletions lib/screens/v2/screen_audio_data.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ defmodule Screens.V2.ScreenAudioData do
alias Screens.V2.ScreenData.Parameters
alias Screens.V2.WidgetInstance
alias ScreensConfig.Screen
alias ScreensConfig.V2.{Audio, BusShelter, PreFare}
alias ScreensConfig.V2.{Audio, BusShelter, GlEink, PreFare}

@type screen_id :: String.t()

Expand All @@ -22,7 +22,7 @@ defmodule Screens.V2.ScreenAudioData do
{:ok, now} = DateTime.shift_zone(now, "America/New_York")

case config do
%Screen{app_params: %app{}} when app not in [BusShelter, PreFare] ->
%Screen{app_params: %app{}} when app not in [BusShelter, PreFare, GlEink] ->
:error

%Screen{app_params: %_app{audio: audio}} ->
Expand Down
35 changes: 30 additions & 5 deletions lib/screens_web/controllers/v2/screen_api_controller.ex
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
defmodule ScreensWeb.V2.ScreenApiController do
use ScreensWeb, :controller

alias Phoenix.View
alias Screens.Config.State
alias Screens.LogScreenData
alias Screens.Util
alias Screens.V2.ScreenData
alias ScreensConfig.Screen
alias Screens.V2.{ScreenAudioData, ScreenData}

plug(:check_config)

Expand All @@ -24,6 +26,7 @@ defmodule ScreensWeb.V2.ScreenApiController do
is_screen = ScreensWeb.UserAgent.is_screen_conn?(conn, screen_id)
screen_side = params["screen_side"]
triptych_pane = params["pane"]
screen = Screens.Config.State.screen(screen_id)

LogScreenData.log_data_request(
screen_id,
Expand Down Expand Up @@ -75,19 +78,41 @@ defmodule ScreensWeb.V2.ScreenApiController do
screen_side
)

json(
conn,
ScreenData.by_screen_id(screen_id,
screen_data =
screen_id
|> ScreenData.by_screen_id(
logging_options: %{
is_real_screen: is_screen,
screen_id: screen_id,
triptych_pane: triptych_pane
}
)
)
|> put_audio_data(screen_id, screen)

json(conn, screen_data)
end
end

defp put_audio_data(screen_data, screen_id, %Screen{app_id: :gl_eink_v2}) do
audio_data = fetch_ssml(screen_id) || ""

Map.put(screen_data, :audio_data, audio_data)
end

defp put_audio_data(screen_data, _, _), do: screen_data

defp fetch_ssml(screen_id) do
widget_audio_data = ScreenAudioData.by_screen_id(screen_id)

render_ssml(widget_audio_data: widget_audio_data)
end

defp render_ssml(widget_audio_data: []), do: nil

defp render_ssml(template_assigns) do
View.render_to_string(ScreensWeb.V2.AudioView, "index.ssml", template_assigns)
end

def show_dup(conn, params), do: show(conn, params)

def show_triptych(conn, %{"player_name" => player_name} = params) do
Expand Down
2 changes: 1 addition & 1 deletion mix.lock
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
"plug_crypto": {:hex, :plug_crypto, "1.2.5", "918772575e48e81e455818229bf719d4ab4181fcbf7f85b68a35620f78d89ced", [:mix], [], "hexpm", "26549a1d6345e2172eb1c233866756ae44a9609bd33ee6f99147ab3fd87fd842"},
"ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"},
"retry": {:hex, :retry, "0.16.0", "bda95a342de242088b2a68e4e826fd2a61f080b5fb2b596bec898e26520d262c", [:mix], [], "hexpm", "bebaa63ebf7c9ebc2741fcdbbda62cf49734a8740ce0a80708b669a595e6be8e"},
"screens_config": {:git, "https://github.com/mbta/screens-config-lib.git", "ef78fcc9beb7279b55d165ed30d2459b6a1063b8", []},
"screens_config": {:git, "https://github.com/mbta/screens-config-lib.git", "92a21f530990c110aa4d442a4eda0cae3c80034a", []},
"sentry": {:hex, :sentry, "8.0.6", "c8de1bf0523bc120ec37d596c55260901029ecb0994e7075b0973328779ceef7", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.6", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, "~> 2.3", [hex: :plug_cowboy, repo: "hexpm", optional: true]}], "hexpm", "051a2d0472162f3137787c7c9d6e6e4ef239de9329c8c45b1f1bf1e9379e1883"},
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"},
"stream_data": {:hex, :stream_data, "0.5.0", "b27641e58941685c75b353577dc602c9d2c12292dd84babf506c2033cd97893e", [:mix], [], "hexpm", "012bd2eec069ada4db3411f9115ccafa38540a3c78c4c0349f151fc761b9e271"},
Expand Down

0 comments on commit 0172e14

Please sign in to comment.