Mockup video and program
commit
3a9baaa0ad
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
|
/android/
|
||||||
|
|
@ -0,0 +1,203 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
# Name of the browser
|
||||||
|
const browser_name = "browser"
|
||||||
|
|
||||||
|
# Page with sound
|
||||||
|
# "https://www.programmes-radio.com/fr/stream-e8BxeoRhsz9jY9mXXRiFTE/ecouter-KPJK"
|
||||||
|
const RADIO_URL = "http://streaming.radio.co/s9378c22ee/listen"
|
||||||
|
const HOME_URL = "https://www.google.com/"
|
||||||
|
|
||||||
|
# Memorize if the mouse was pressed
|
||||||
|
@onready var mouse_pressed : bool = false
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Home button pressed: get the browser node and load a new page.
|
||||||
|
# ==============================================================================
|
||||||
|
func _on_Home_pressed():
|
||||||
|
var browser = $CEF.get_node(browser_name)
|
||||||
|
if browser == null:
|
||||||
|
$Panel/Label.set_text("Failed getting Godot node " + browser_name)
|
||||||
|
return
|
||||||
|
browser.load_url(HOME_URL)
|
||||||
|
pass
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Go to previously visited page
|
||||||
|
# ==============================================================================
|
||||||
|
func _on_Prev_pressed():
|
||||||
|
var browser = $CEF.get_node(browser_name)
|
||||||
|
if browser == null:
|
||||||
|
$Panel/Label.set_text("Failed getting Godot node " + browser_name)
|
||||||
|
return
|
||||||
|
browser.previous_page()
|
||||||
|
pass
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Go to next page
|
||||||
|
# ==============================================================================
|
||||||
|
func _on_Next_pressed():
|
||||||
|
var browser = $CEF.get_node(browser_name)
|
||||||
|
if browser == null:
|
||||||
|
$Panel/Label.set_text("Failed getting Godot node " + browser_name)
|
||||||
|
return
|
||||||
|
browser.next_page()
|
||||||
|
pass
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Callback when a page has ended to load: we print a message
|
||||||
|
# ==============================================================================
|
||||||
|
func _on_page_loaded(node):
|
||||||
|
$CEF/Panel/Label.set_text(node.name + ": page " + node.get_url() + " loaded")
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Callback when a page has ended to load with failure.
|
||||||
|
# Display a load error message using a data: URI.
|
||||||
|
# ==============================================================================
|
||||||
|
func _on_page_failed_loading(err_code, err_msg, node):
|
||||||
|
if err_code == -3:
|
||||||
|
return
|
||||||
|
push_error("The browser " + node.name + " failed loading " + \
|
||||||
|
node.get_url() + ": " + err_msg)
|
||||||
|
pass
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# On new URL entered
|
||||||
|
# ==============================================================================
|
||||||
|
func _on_TextEdit_text_changed(new_text):
|
||||||
|
var browser = $CEF.get_node(browser_name)
|
||||||
|
if browser == null:
|
||||||
|
$CEF/Panel/Label.set_text("Failed getting Godot node " + browser_name)
|
||||||
|
return
|
||||||
|
browser.load_url(new_text)
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Get mouse events and broadcast them to CEF
|
||||||
|
# ==============================================================================
|
||||||
|
func _on_TextureRect_gui_input(event):
|
||||||
|
var browser = $CEF.get_node(browser_name)
|
||||||
|
if browser == null:
|
||||||
|
$Panel/Label.set_text("Failed getting Godot node " + browser_name)
|
||||||
|
return
|
||||||
|
if event is InputEventMouseButton:
|
||||||
|
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
|
||||||
|
browser.set_mouse_wheel_vertical(2)
|
||||||
|
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
|
||||||
|
browser.set_mouse_wheel_vertical(-2)
|
||||||
|
elif event.button_index == MOUSE_BUTTON_LEFT:
|
||||||
|
mouse_pressed = event.pressed
|
||||||
|
if mouse_pressed:
|
||||||
|
browser.set_mouse_left_down()
|
||||||
|
else:
|
||||||
|
browser.set_mouse_left_up()
|
||||||
|
elif event.button_index == MOUSE_BUTTON_RIGHT:
|
||||||
|
mouse_pressed = event.pressed
|
||||||
|
if mouse_pressed:
|
||||||
|
browser.set_mouse_right_down()
|
||||||
|
else:
|
||||||
|
browser.set_mouse_right_up()
|
||||||
|
else:
|
||||||
|
mouse_pressed = event.pressed
|
||||||
|
if mouse_pressed:
|
||||||
|
browser.set_mouse_middle_down()
|
||||||
|
else:
|
||||||
|
browser.set_mouse_middle_up()
|
||||||
|
elif event is InputEventMouseMotion:
|
||||||
|
if mouse_pressed == true :
|
||||||
|
browser.set_mouse_left_down()
|
||||||
|
browser.set_mouse_moved(event.position.x, event.position.y)
|
||||||
|
pass
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Make the CEF browser reacts from keyboard events.
|
||||||
|
# ==============================================================================
|
||||||
|
func _input(event):
|
||||||
|
var browser = $CEF.get_node(browser_name)
|
||||||
|
if browser == null:
|
||||||
|
$Panel/Label.set_text("Failed getting Godot node " + browser_name)
|
||||||
|
return
|
||||||
|
if event is InputEventKey:
|
||||||
|
browser.set_key_pressed(
|
||||||
|
event.unicode if event.unicode != 0 else event.keycode, # Godot3: event.scancode,
|
||||||
|
event.pressed, event.shift_pressed, event.alt_pressed, event.is_command_or_control_pressed())
|
||||||
|
pass
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# Create a single briwser named "browser_name" that is attached as child node to $CEF.
|
||||||
|
# ==============================================================================
|
||||||
|
func _ready():
|
||||||
|
print("These are the CEF's")
|
||||||
|
|
||||||
|
print($CEF/Panel)
|
||||||
|
|
||||||
|
print($CEF)
|
||||||
|
print(typeof($CEF))
|
||||||
|
# See API.md for more details. CEF Configuration is:
|
||||||
|
# resource_path := {"artifacts", CEF_ARTIFACTS_FOLDER}
|
||||||
|
# resource_path := {"exported_artifacts", application_real_path()}
|
||||||
|
# {"incognito":false}
|
||||||
|
# {"cache_path", resource_path / "cache"}
|
||||||
|
# {"root_cache_path", resource_path / "cache"}
|
||||||
|
# {"browser_subprocess_path", resource_path / SUBPROCESS_NAME }
|
||||||
|
# {"log_file", resource_path / "debug.log"}
|
||||||
|
# {log_severity", "warning"}
|
||||||
|
# {"remote_debugging_port", 7777}
|
||||||
|
# {"exception_stack_size", 5}
|
||||||
|
# {"enable_media_stream", false}
|
||||||
|
#
|
||||||
|
# Configurate CEF. In incognito mode cache directories not used and in-memory
|
||||||
|
# caches are used instead and no data is persisted to disk.
|
||||||
|
#
|
||||||
|
# artifacts: allows path such as "build" or "res://cef_artifacts/". Note that "res://"
|
||||||
|
# will use ProjectSettings.globalize_path but exported projects don't support globalize_path:
|
||||||
|
# https://docs.godotengine.org/en/3.5/classes/class_projectsettings.html#class-projectsettings-method-globalize-path
|
||||||
|
|
||||||
|
|
||||||
|
if !$CEF.initialize({"incognito":true, "locale":"en-US"}):
|
||||||
|
var error = $CEF.get_error()
|
||||||
|
push_error($CEF.get_error())
|
||||||
|
push_error("CEF initialization failed: " + error)
|
||||||
|
get_tree().quit()
|
||||||
|
return
|
||||||
|
print("CEF version: " + $CEF.get_full_version())
|
||||||
|
|
||||||
|
# Wait one frame for the texture rect to get its size
|
||||||
|
await get_tree().process_frame
|
||||||
|
|
||||||
|
# See API.md for more details. Browser configuration is:
|
||||||
|
# {"frame_rate", 30}
|
||||||
|
# {"javascript", true}
|
||||||
|
# {"javascript_close_windows", false}
|
||||||
|
# {"javascript_access_clipboard", false}
|
||||||
|
# {"javascript_dom_paste", false}
|
||||||
|
# {"image_loading", true}
|
||||||
|
# {"databases", true}
|
||||||
|
# {"webgl", true}
|
||||||
|
var browser = $CEF.create_browser(RADIO_URL, $CEF/Panel/TextureRect, {"javascript":true})
|
||||||
|
browser.name = browser_name
|
||||||
|
browser.connect("on_page_loaded", _on_page_loaded)
|
||||||
|
browser.connect("on_page_failed_loading", _on_page_failed_loading)
|
||||||
|
browser.set_zoom_level(0.05)
|
||||||
|
|
||||||
|
# 3D sound
|
||||||
|
get_tree().get_root().print_tree_pretty()
|
||||||
|
var player = get_node("/root/GUIin3D/Node3D/Control/CEF/Panel/AudioStreamPlayer2D")
|
||||||
|
player.stream = AudioStreamGenerator.new()
|
||||||
|
player.stream.set_buffer_length(1)
|
||||||
|
player.playing = true
|
||||||
|
browser.audio_stream = player.get_stream_playback()
|
||||||
|
pass
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# $CEF is periodically updated
|
||||||
|
# ==============================================================================
|
||||||
|
func _process(_delta):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _on_texture_rect_gui_input(event: InputEvent) -> void:
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
func TextEdit_text_changed() -> void:
|
||||||
|
pass # Replace with function body.
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1 @@
|
||||||
|
{"profile_network_context_service":{"http_cache_finch_experiment_groups":"None None None None"},"updateclientdata":{"apps":{"oimompecagnajdejgnnjijobebaeigek":{"cohort":"1:288r:","cohortname":"4.10.2830.0 to Linux (M116+)","dlrc":6480,"fp":"1.440875847b5cd49226587533608d33de7de4e906f446a63828cc3321a37db13e","installdate":6479,"max_pv":"0.0.0.0","pf":"bb42e117-f535-4a90-b1b7-f76b73e65a26","pv":"4.10.2830.0"}}}}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1 @@
|
||||||
|
14310458625147186186
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
fedora-7754
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
/tmp/.org.chromium.Chromium.q2qPVF/SingletonSocket
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Google LLC and its affiliates ("Google") own all legal right, title and
|
||||||
|
interest in and to the content decryption module software ("Software") and
|
||||||
|
related documentation, including any intellectual property rights in the
|
||||||
|
Software. You may not use, modify, sell, or otherwise distribute the Software
|
||||||
|
without a separate license agreement with Google. The Software is not open
|
||||||
|
source software.
|
||||||
|
|
||||||
|
If you are interested in licensing the Software, please contact
|
||||||
|
www.widevine.com
|
||||||
1
chromiummockup/cef_artifacts/cache/WidevineCdm/4.10.2830.0/_metadata/verified_contents.json
vendored
Normal file
1
chromiummockup/cef_artifacts/cache/WidevineCdm/4.10.2830.0/_metadata/verified_contents.json
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJMSUNFTlNFIiwicm9vdF9oYXNoIjoicjdVVTVDYVZsQ05MTXNoenVpelR6SWlTNkRhR0VUZTFNYVFLRWpLQ0RGayJ9LHsicGF0aCI6Il9wbGF0Zm9ybV9zcGVjaWZpYy9saW51eF94NjQvbGlid2lkZXZpbmVjZG0uc28iLCJyb290X2hhc2giOiJWRUVUVDdsNGlSMUJRbGxoWEZ4R1VCY2VIQ0xjOWJzYUdmc0swSjV5bk9vIn0seyJwYXRoIjoibWFuaWZlc3QuanNvbiIsInJvb3RfaGFzaCI6ImJkcXBfOGpRSjJIc0FjeHh1RmpwSmhqdVk4OWp6M2F0REhIdUhnU3IzaHcifV0sImZvcm1hdCI6InRyZWVoYXNoIiwiaGFzaF9ibG9ja19zaXplIjo0MDk2fV0sIml0ZW1faWQiOiJvaW1vbXBlY2FnbmFqZGVqZ25uamlqb2JlYmFlaWdlayIsIml0ZW1fdmVyc2lvbiI6IjQuMTAuMjgzMC4wIiwicHJvdG9jb2xfdmVyc2lvbiI6MX0","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"osSyZ2MjWgrIcTETnhRu8MxCjVcrTT83atZkEoFzn2TIZfqC0lBzAz3pHaxzrxMDC80bzO2erzZtuYZqQ_Y7F4pRSLU3LnaQMjOfVc3zF8jAtpUIGVODALu85MrwfNS9AcDuSS22LB9CoanmKjX9A6Uk9OfL02YFOK88hzmAzkY"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"FCFfT17WSoc0WS2F5iH3Il3-9OjUicFuPbX6Uc0BtcRemj_5WaFZCBwu1mYnY8EfKcHrWarOTGw_otnVh95uYK-k5rhKFbJfEOq6EbEhBMCAMmj3MbBRgjiQ0kfr04dH_d8oZXQ3789zZSwVMqgnmpgl3Anjss6X1T_fNMDvqDsJIDyMdHpSkBZlTyWfQiiR89vSX5dMw2YA4WSqe-k99i5BFpK8EZAZPJvobq6hubEoHEDJaktts1dym3zHqNQP-t_ElIXVjPBW8jHWJ8h_VWYk-28zacUGWMQqdmRTpHSbAIWQirxWlHKU-oHLmem2Idsh4sLyYv0oGo3-VY4lIg"}]}}]
|
||||||
Binary file not shown.
1
chromiummockup/cef_artifacts/cache/WidevineCdm/4.10.2830.0/manifest.fingerprint
vendored
Normal file
1
chromiummockup/cef_artifacts/cache/WidevineCdm/4.10.2830.0/manifest.fingerprint
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
1.440875847b5cd49226587533608d33de7de4e906f446a63828cc3321a37db13e
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"manifest_version": 2,
|
||||||
|
"update_url": "https://clients2.google.com/service/update2/crx",
|
||||||
|
"name": "WidevineCdm",
|
||||||
|
"description": "Widevine Content Decryption Module",
|
||||||
|
"version": "4.10.2830.0",
|
||||||
|
"minimum_chrome_version": "68.0.3430.0",
|
||||||
|
"x-cdm-module-versions": "4",
|
||||||
|
"x-cdm-interface-versions": "10",
|
||||||
|
"x-cdm-host-versions": "10",
|
||||||
|
"x-cdm-codecs": "vp8,vp09,avc1,av01",
|
||||||
|
"x-cdm-persistent-license-support": false,
|
||||||
|
"x-cdm-supported-encryption-schemes": [
|
||||||
|
"cenc",
|
||||||
|
"cbcs"
|
||||||
|
],
|
||||||
|
"icons": {
|
||||||
|
"16": "imgs/icon-128x128.png",
|
||||||
|
"128": "imgs/icon-128x128.png"
|
||||||
|
},
|
||||||
|
"platforms": [
|
||||||
|
{
|
||||||
|
"os": "linux",
|
||||||
|
"arch": "x64",
|
||||||
|
"sub_package_path": "_platform_specific/linux_x64/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"os": "linux",
|
||||||
|
"arch": "arm64",
|
||||||
|
"sub_package_path": "_platform_specific/linux_arm64/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
1
chromiummockup/cef_artifacts/cache/WidevineCdm/latest-component-updated-widevine-cdm
vendored
Normal file
1
chromiummockup/cef_artifacts/cache/WidevineCdm/latest-component-updated-widevine-cdm
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"Path":"/home/gutsuwatsu/chromiummockup/cef_artifacts/cache/WidevineCdm/4.10.2830.0"}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,17 @@
|
||||||
|
[configuration]
|
||||||
|
entry_symbol = "gdcef_library_init"
|
||||||
|
compatibility_minimum = 4.1
|
||||||
|
|
||||||
|
[libraries]
|
||||||
|
linux.x86_64.debug = "res://cef_artifacts/libgdcef.so"
|
||||||
|
linux.x86_64.release = "res://cef_artifacts/libgdcef.so"
|
||||||
|
linux.x86_32.debug = "res://cef_artifacts/libgdcef.so"
|
||||||
|
linux.x86_32.release = "res://cef_artifacts/libgdcef.so"
|
||||||
|
|
||||||
|
windows.x86_64.debug = "res://cef_artifacts/libgdcef.dll"
|
||||||
|
windows.x86_64.release = "res://cef_artifacts/libgdcef.dll"
|
||||||
|
windows.x86_32.debug = "res://cef_artifacts/libgdcef.dll"
|
||||||
|
windows.x86_32.release = "res://cef_artifacts/libgdcef.dll"
|
||||||
|
|
||||||
|
macos.debug = "res://cef_artifacts/Frameworks/Chromium\ Embedded\ Framework.framework/Libraries/libgdcef.dylib"
|
||||||
|
macos.release = "res://cef_artifacts/Frameworks/Chromium\ Embedded\ Framework.framework/Libraries/libgdcef.dylib"
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue