diff --git a/broadcast/pcm_out.raw b/.dockerignore old mode 100755 new mode 100644 similarity index 100% rename from broadcast/pcm_out.raw rename to .dockerignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/broadcast/.gitignore b/broadcast/.gitignore new file mode 100644 index 0000000..8491ab9 --- /dev/null +++ b/broadcast/.gitignore @@ -0,0 +1 @@ +broadcast diff --git a/broadcast/external/goicy b/broadcast/external/goicy deleted file mode 160000 index f76a17f..0000000 --- a/broadcast/external/goicy +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f76a17f16bb08d8ca7a94cee2b76f6ab8c34a89b diff --git a/broadcast/go.mod b/broadcast/go.mod index 3396b67..2e9004a 100644 --- a/broadcast/go.mod +++ b/broadcast/go.mod @@ -1,3 +1,8 @@ module git.abbiamoundominio.org/unit/broadcast go 1.15 + +require ( + github.com/sunicy/go-lame v0.0.0-20200422031049-1c192eaafa39 + layeh.com/gumble v0.0.0-20200818122324-146f9205029b +) diff --git a/broadcast/go.sum b/broadcast/go.sum new file mode 100644 index 0000000..9c5a9e5 --- /dev/null +++ b/broadcast/go.sum @@ -0,0 +1,9 @@ +github.com/dchote/go-openal v0.0.0-20171116030048-f4a9a141d372/go.mod h1:74z+CYu2/mx4N+mcIS/rsvfAxBPBV9uv8zRAnwyFkdI= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/sunicy/go-lame v0.0.0-20200422031049-1c192eaafa39 h1:P/6L4pZMkHutxyefALLAiXCPkcD+5NcvJRGayZmtBmY= +github.com/sunicy/go-lame v0.0.0-20200422031049-1c192eaafa39/go.mod h1:H5mJP3sFKpUGaeckgSaMVXcTgnSgImhx54qyQXbpTVY= +layeh.com/gopus v0.0.0-20161224163843-0ebf989153aa h1:WNU4LYsgD2UHxgKgB36mL6iMAMOvr127alafSlgBbiA= +layeh.com/gopus v0.0.0-20161224163843-0ebf989153aa/go.mod h1:AOef7vHz0+v4sWwJnr0jSyHiX/1NgsMoaxl+rEPz/I0= +layeh.com/gumble v0.0.0-20200818122324-146f9205029b h1:Kne6wkHqbqrygRsqs5XUNhSs84DFG5TYMeCkCbM56sY= +layeh.com/gumble v0.0.0-20200818122324-146f9205029b/go.mod h1:tWPVA9ZAfImNwabjcd9uDE+Mtz0Hfs7a7G3vxrnrwyc= diff --git a/broadcast/main.go b/broadcast/main.go index be11da0..e891c97 100644 --- a/broadcast/main.go +++ b/broadcast/main.go @@ -25,38 +25,26 @@ type AudioListener struct { func (audiolistener AudioListener) OnAudioStream(e *gumble.AudioStreamEvent) { fmt.Printf("Received AudioStreamEvent from %s\n", e.User.Name) - // fmt.Printf("%+v\n", e.User.Name) - // fmt.Printf(audio.Sender.Name) - go ReadPacket(e.C) } -func PcmToMp3(pcmFileName, mp3FileName string) { - pcmFile, _ := os.OpenFile(pcmFileName, os.O_RDONLY, 0555) - mp3File, _ := os.OpenFile(mp3FileName, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755) - defer mp3File.Close() - wr, err := lame.NewWriter(mp3File) - if err != nil { - panic("cannot create lame writer, err: " + err.Error()) +// func PcmToMp3(pcmFileName, mp3FileName string) { +// pcmFile, _ := os.OpenFile(pcmFileName, os.O_RDONLY, 0555) +// mp3File, _ := os.OpenFile(mp3FileName, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755) +// defer mp3File.Close() +// wr, err := lame.NewWriter(mp3File) +// if err != nil { +// panic("cannot create lame writer, err: " + err.Error()) - } - io.Copy(wr, pcmFile) - wr.Close() +// } +// io.Copy(wr, pcmFile) +// wr.Close() -} +// } type AudioEncoder struct { } -// func (e AudioEncoder) Encode(pcm []int16, mframeSize, maxDataBytes int) ([]byte, error) { -// TODO: WRITE THIS ENCODER AND WRITE THE OUTPUTS TO SOME FILE (RECORDING) -// return []byte, nil -// } -func (e AudioEncoder) ID() { -} -func (e AudioEncoder) Reset() { -} - func ReadPacket(ch <-chan *gumble.AudioPacket) { // receive-only channel pcm_out, _ := os.OpenFile("pcm_out.raw", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755) defer pcm_out.Close() @@ -90,8 +78,6 @@ func main() { panic(err) } - // var message TextMessage - //gumble.AudioListener fmt.Printf("Channels:\n") for idx, channel := range client.Channels { diff --git a/broadcast/mumble/mumble-server.ini b/broadcast/mumble/mumble-server.ini deleted file mode 100644 index b3795c2..0000000 --- a/broadcast/mumble/mumble-server.ini +++ /dev/null @@ -1,199 +0,0 @@ -# Murmur configuration file. -# -# General notes: -# * Settings in this file are default settings and many of them can be overridden -# with virtual server specific configuration via the Ice or DBus interface. -# * Due to the way this configuration file is read some rules have to be -# followed when specifying variable values (as in variable = value): -# * Make sure to quote the value when using commas in strings or passwords. -# NOT variable = super,secret BUT variable = "super,secret" -# * Make sure to escape special characters like '\' or '"' correctly -# NOT variable = """ BUT variable = "\"" -# NOT regex = \w* BUT regex = \\w* - -# Path to database. If blank, will search for -# murmur.sqlite in default locations or create it if not found. -database=/data/mumble-server.sqlite - -# If you wish to use something other than SQLite, you'll need to set the name -# of the database above, and also uncomment the below. -# Sticking with SQLite is strongly recommended, as it's the most well tested -# and by far the fastest solution. -# -#dbDriver=QMYSQL -#dbUsername= -#dbPassword= -#dbHost= -#dbPort= -#dbPrefix=murmur_ -#dbOpts= - -# Murmur defaults to not using D-Bus. If you wish to use dbus, which is one of the -# RPC methods available in Murmur, please specify so here. -# -dbus=system - -# Alternate D-Bus service name. Only use if you are running distinct -# murmurd processes connected to the same D-Bus daemon. -#dbusservice=net.sourceforge.mumble.murmur - -# If you want to use ZeroC Ice to communicate with Murmur, you need -# to specify the endpoint to use. Since there is no authentication -# with ICE, you should only use it if you trust all the users who have -# shell access to your machine. -# Please see the ICE documentation on how to specify endpoints. -ice="tcp -h 127.0.0.1 -p 6502" - -# Ice primarily uses local sockets. This means anyone who has a -# user account on your machine can connect to the Ice services. -# You can set a plaintext "secret" on the Ice connection, and -# any script attempting to access must then have this secret -# (as context with name "secret"). -# Access is split in read (look only) and write (modify) -# operations. Write access always includes read access, -# unless read is explicitly denied (see note below). -# -# Note that if this is uncommented and with empty content, -# access will be denied. - -#icesecretread= -icesecretwrite= - -# How many login attempts do we tolerate from one IP -# inside a given timeframe before we ban the connection? -# Note that this is global (shared between all virtual servers), and that -# it counts both successfull and unsuccessfull connection attempts. -# Set either Attempts or Timeframe to 0 to disable. -#autobanAttempts = 10 -#autobanTimeframe = 120 -#autobanTime = 300 - -# Specifies the file Murmur should log to. By default, Murmur -# logs to the file 'murmur.log'. If you leave this field blank -# on Unix-like systems, Murmur will force itself into foreground -# mode which logs to the console. -logfile=/data/mumble-server.log - -# If set, Murmur will write its process ID to this file -# when running in daemon mode (when the -fg flag is not -# specified on the command line). Only available on -# Unix-like systems. -pidfile=/var/run/mumble-server/mumble-server.pid - -# The below will be used as defaults for new configured servers. -# If you're just running one server (the default), it's easier to -# configure it here than through D-Bus or Ice. -# -# Welcome message sent to clients when they connect. -welcometext="
Welcome to this server running Murmur.
Enjoy your stay!
" - -# Port to bind TCP and UDP sockets to. -port=64738 - -# Specific IP or hostname to bind to. -# If this is left blank (default), Murmur will bind to all available addresses. -#host= - -# Password to join server. -serverpassword= - -# Maximum bandwidth (in bits per second) clients are allowed -# to send speech at. -bandwidth=72000 - -# Maximum number of concurrent clients allowed. -users=100 - -# Amount of users with Opus support needed to force Opus usage, in percent. -# 0 = Always enable Opus, 100 = enable Opus if it's supported by all clients. -#opusthreshold=100 - -# Maximum depth of channel nesting. Note that some databases like MySQL using -# InnoDB will fail when operating on deeply nested channels. -#channelnestinglimit=10 - -# Regular expression used to validate channel names. -# (Note that you have to escape backslashes with \ ) -#channelname=[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+ - -# Regular expression used to validate user names. -# (Note that you have to escape backslashes with \ ) -#username=[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+ - -# Maximum length of text messages in characters. 0 for no limit. -#textmessagelength=5000 - -# Maximum length of text messages in characters, with image data. 0 for no limit. -#imagemessagelength=131072 - -# Allow clients to use HTML in messages, user comments and channel descriptions? -#allowhtml=true - -# Murmur retains the per-server log entries in an internal database which -# allows it to be accessed over D-Bus/ICE. -# How many days should such entries be kept? -# Set to 0 to keep forever, or -1 to disable logging to the DB. -#logdays=31 - -# To enable public server registration, the serverpassword must be blank, and -# this must all be filled out. -# The password here is used to create a registry for the server name; subsequent -# updates will need the same password. Don't lose your password. -# The URL is your own website, and only set the registerHostname for static IP -# addresses. -# Only uncomment the 'registerName' parameter if you wish to give your "Root" channel a custom name. -# -#registerName=Mumble Server -#registerPassword=secret -#registerUrl=https://www.mumble.info/ -#registerHostname= - -# If this option is enabled, the server will announce its presence via the -# bonjour service discovery protocol. To change the name announced by bonjour -# adjust the registerName variable. -# See http://developer.apple.com/networking/bonjour/index.html for more information -# about bonjour. -#bonjour=True - -# If you have a proper SSL certificate, you can provide the filenames here. -# Otherwise, Murmur will create it's own certificate automatically. -#sslCert= -#sslKey= - -# The sslCiphers option chooses the cipher suites to make available for use -# in SSL/TLS. This option is server-wide, and cannot be set on a -# per-virtual-server basis. -# -# This option is specified using OpenSSL cipher list notation (see -# https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT). -# -# It is recommended that you try your cipher string using 'openssl ciphers ' -# before setting it here, to get a feel for which cipher suites you will get. -# -# After setting this option, it is recommend that you inspect your Murmur log -# to ensure that Murmur is using the cipher suites that you expected it to. -# -# Note: Changing this option may impact the backwards compatibility of your -# Murmur server, and can remove the ability for older Mumble clients to be able -# to connect to it. -#sslCiphers=EECDH+AESGCM:AES256-SHA:AES128-SHA - -# If Murmur is started as root, which user should it switch to? -# This option is ignored if Murmur isn't started with root privileges. -uname=mumble-server - -# If this options is enabled, only clients which have a certificate are allowed -# to connect. -#certrequired=False - -# If enabled, clients are sent information about the servers version and operating -# system. -#sendversion=True - -# You can configure any of the configuration options for Ice here. We recommend -# leave the defaults as they are. -# Please note that this section has to be last in the configuration file. -# -[Ice] -Ice.Warn.UnknownProperties=1 -Ice.MessageSizeMax=65536 diff --git a/mumble-audio-player/main.go b/mumble-audio-player/main.go deleted file mode 100644 index acd98c5..0000000 --- a/mumble-audio-player/main.go +++ /dev/null @@ -1,54 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "os" - "path/filepath" - - "layeh.com/gumble/gumble" - "layeh.com/gumble/gumbleffmpeg" - "layeh.com/gumble/gumbleutil" - _ "layeh.com/gumble/opus" -) - -func main() { - files := make(map[string]string) - var stream *gumbleffmpeg.Stream - - flag.Usage = func() { - fmt.Fprintf(os.Stderr, "Usage of %s: [flags] [audio files...]\n", os.Args[0]) - flag.PrintDefaults() - } - - gumbleutil.Main(gumbleutil.AutoBitrate, gumbleutil.Listener{ - Connect: func(e *gumble.ConnectEvent) { - for _, file := range flag.Args() { - key := filepath.Base(file) - files[key] = file - } - - fmt.Printf("audio player loaded! (%d files)\n", len(files)) - }, - - TextMessage: func(e *gumble.TextMessageEvent) { - fmt.Printf(e.Message) - if e.Sender == nil { - return - } - file, ok := files[e.Message] - if !ok { - return - } - if stream != nil && stream.State() == gumbleffmpeg.StatePlaying { - return - } - stream = gumbleffmpeg.New(e.Client, gumbleffmpeg.SourceFile(file)) - if err := stream.Play(); err != nil { - fmt.Printf("%s\n", err) - } else { - fmt.Printf("Playing %s\n", file) - } - }, - }) -} diff --git a/mumble-audio-player/mumble-audio-player b/mumble-audio-player/mumble-audio-player deleted file mode 100755 index da6bf9d..0000000 Binary files a/mumble-audio-player/mumble-audio-player and /dev/null differ diff --git a/mumble-audio-player/run_player.sh b/mumble-audio-player/run_player.sh deleted file mode 100755 index 2a06023..0000000 --- a/mumble-audio-player/run_player.sh +++ /dev/null @@ -1 +0,0 @@ -./mumble-audio-player -insecure -server zaphoda:64738 -username bitume diff --git a/mumbleclient.go b/mumbleclient.go deleted file mode 100644 index bd20844..0000000 --- a/mumbleclient.go +++ /dev/null @@ -1,29 +0,0 @@ -package main - -import ( - "fmt" - - "layeh.com/gumble/gumble" - "layeh.com/gumble/gumbleutil" - // _ "layeh.com/gumble/opus" -) - -func main() { - - config := gumble.NewConfig() - config.Username = "gumble-test" - - config.Attach(gumbleutil.Listener{ - TextMessage: func(e *gumble.TextMessageEvent) { - fmt.Printf("Received text message: %s\n", e.Message) - }, - }) - - _, err := gumble.Dial("parla.abbiamoundominio.org:64738", config) - if err != nil { - panic(err) - - } - // var message TextMessage - -}