summaryrefslogtreecommitdiff
path: root/vendor/github.com/pion/sdp/v3/direction.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pion/sdp/v3/direction.go')
-rw-r--r--vendor/github.com/pion/sdp/v3/direction.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/vendor/github.com/pion/sdp/v3/direction.go b/vendor/github.com/pion/sdp/v3/direction.go
new file mode 100644
index 0000000..19ea92d
--- /dev/null
+++ b/vendor/github.com/pion/sdp/v3/direction.go
@@ -0,0 +1,59 @@
+package sdp
+
+import "errors"
+
+// Direction is a marker for transmission directon of an endpoint
+type Direction int
+
+const (
+ // DirectionSendRecv is for bidirectional communication
+ DirectionSendRecv Direction = iota + 1
+ // DirectionSendOnly is for outgoing communication
+ DirectionSendOnly
+ // DirectionRecvOnly is for incoming communication
+ DirectionRecvOnly
+ // DirectionInactive is for no communication
+ DirectionInactive
+)
+
+const (
+ directionSendRecvStr = "sendrecv"
+ directionSendOnlyStr = "sendonly"
+ directionRecvOnlyStr = "recvonly"
+ directionInactiveStr = "inactive"
+ directionUnknownStr = ""
+)
+
+var errDirectionString = errors.New("invalid direction string")
+
+// NewDirection defines a procedure for creating a new direction from a raw
+// string.
+func NewDirection(raw string) (Direction, error) {
+ switch raw {
+ case directionSendRecvStr:
+ return DirectionSendRecv, nil
+ case directionSendOnlyStr:
+ return DirectionSendOnly, nil
+ case directionRecvOnlyStr:
+ return DirectionRecvOnly, nil
+ case directionInactiveStr:
+ return DirectionInactive, nil
+ default:
+ return Direction(unknown), errDirectionString
+ }
+}
+
+func (t Direction) String() string {
+ switch t {
+ case DirectionSendRecv:
+ return directionSendRecvStr
+ case DirectionSendOnly:
+ return directionSendOnlyStr
+ case DirectionRecvOnly:
+ return directionRecvOnlyStr
+ case DirectionInactive:
+ return directionInactiveStr
+ default:
+ return directionUnknownStr
+ }
+}