diff options
Diffstat (limited to 'vendor/github.com/pion/sdp/v3/direction.go')
-rw-r--r-- | vendor/github.com/pion/sdp/v3/direction.go | 59 |
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 + } +} |