Skip to content

Commit 3b70a65

Browse files
committed
screencapturekit: Add bindings for screencapturekit
1 parent 93bf217 commit 3b70a65

15 files changed

+1109
-1
lines changed

macos/_examples/screencap/main.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"errors"
6+
"fmt"
7+
"os"
8+
"os/signal"
9+
10+
"github.com/progrium/macdriver/dispatch"
11+
"github.com/progrium/macdriver/macos/coremedia"
12+
"github.com/progrium/macdriver/macos/foundation"
13+
"github.com/progrium/macdriver/macos/screencapturekit"
14+
)
15+
16+
func main() {
17+
streamOutputHandler := &streamHandler{}
18+
19+
sc := screencapturekit.NewStreamConfiguration()
20+
cf := screencapturekit.NewContentFilter()
21+
s := screencapturekit.NewStreamWithFilterConfigurationDelegate(cf, sc, streamOutputHandler)
22+
23+
var dispatchQueue dispatch.Queue
24+
dispatchQueue = dispatch.MainQueue()
25+
err := foundation.Error{}
26+
ok := s.AddStreamOutputTypeSampleHandlerQueueError(streamOutputHandler, screencapturekit.StreamOutputTypeScreen, dispatchQueue, err)
27+
if !ok {
28+
fmt.Println("s.AddStreamOutputTypeSampleHandlerQueueError", err)
29+
}
30+
31+
fmt.Println("s.StartCaptureWithCompletionHandler")
32+
s.StartCaptureWithCompletionHandler(func(err foundation.Error) {
33+
fmt.Println("s.StartCaptureWithCompletionHandler", err)
34+
})
35+
36+
// wait until ctrl-c:
37+
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
38+
defer stop()
39+
<-ctx.Done()
40+
}
41+
42+
type streamHandler struct {
43+
}
44+
45+
var _ screencapturekit.PStreamOutput = (*streamHandler)(nil)
46+
var _ screencapturekit.PStreamDelegate = (*streamHandler)(nil)
47+
48+
// StreamOutput methods
49+
50+
func (sh *streamHandler) HasStreamDidOutputSampleBufferOfType() bool {
51+
panic(errors.New("*streamHandler.HasStreamDidOutputSampleBufferOfType not implemented"))
52+
}
53+
54+
func (sh *streamHandler) StreamDidOutputSampleBufferOfType(s screencapturekit.Stream, buf coremedia.SampleBufferRef, out screencapturekit.StreamOutputType) {
55+
panic(errors.New("*streamHandler.StreamDidOutputSampleBufferOfType not implemented"))
56+
}
57+
58+
// StreamDelegate methods
59+
60+
func (sh *streamHandler) StreamDidStopWithError(s screencapturekit.Stream, err foundation.Error) {
61+
fmt.Println("StreamDidStopWithError", err)
62+
}
63+
func (sh *streamHandler) HasStreamDidStopWithError() bool {
64+
fmt.Println("HasStreamDidStopWithError")
65+
return true
66+
}
3.5 MB
Binary file not shown.

macos/screencapturekit/content_filter.gen.go

Lines changed: 82 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

macos/screencapturekit/display.gen.go

Lines changed: 91 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

macos/screencapturekit/doc.gen.go

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

macos/screencapturekit/enumtypes.gen.go

Lines changed: 64 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Code generated by DarwinKit. DO NOT EDIT.
2+
3+
#import "ScreenCaptureKit/ScreenCaptureKit.h"
4+
5+
void importScreenCaptureKitProtocols() {
6+
id o;
7+
o = @protocol(SCStreamDelegate);
8+
o = @protocol(SCStreamOutput);
9+
}

macos/screencapturekit/running_application.gen.go

Lines changed: 72 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)