Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumblekit.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore8
-rw-r--r--.gitmodules9
m---------3rdparty/celt0
-rw-r--r--3rdparty/celtbuild/CELT.xcodeproj/project.pbxproj450
-rw-r--r--3rdparty/celtbuild/config.h1
m---------3rdparty/protobuf0
-rwxr-xr-x3rdparty/protobufbuild/ProtocolBuffers.xcodeproj/project.pbxproj844
m---------3rdparty/speex0
-rw-r--r--3rdparty/speexbuild/Speex.xcodeproj/project.pbxproj575
-rw-r--r--3rdparty/speexbuild/config.h3
-rw-r--r--3rdparty/speexdspbuild/SpeexDSP.xcodeproj/project.pbxproj293
-rw-r--r--3rdparty/speexdspbuild/config.h3
-rw-r--r--LICENSE29
-rw-r--r--MumbleKit.xcodeproj/project.pbxproj664
-rw-r--r--README42
-rw-r--r--proto/Descriptor.pb.h1404
-rw-r--r--proto/Descriptor.pb.m5815
-rw-r--r--proto/Mumble.pb.h2774
-rw-r--r--proto/Mumble.pb.m11061
-rw-r--r--proto/Mumble.proto276
-rw-r--r--proto/Mumble.proto.objc2
-rw-r--r--proto/ObjectivecDescriptor.pb.h109
-rw-r--r--proto/ObjectivecDescriptor.pb.m253
-rw-r--r--proto/README39
-rwxr-xr-xproto/build-protoc.sh4
-rwxr-xr-xproto/update-proto.sh31
-rw-r--r--src/MKAudio.m199
-rw-r--r--src/MKAudioInput.m396
-rw-r--r--src/MKAudioOutput.m280
-rw-r--r--src/MKAudioOutputSpeech.m339
-rw-r--r--src/MKAudioOutputUser.m87
-rw-r--r--src/MKChannel.m173
-rw-r--r--src/MKConnection.m599
-rw-r--r--src/MKCryptState.m87
-rw-r--r--src/MKPacketDataStream.m325
-rw-r--r--src/MKReadWriteLock.m129
-rw-r--r--src/MKServerModel.m253
-rw-r--r--src/MKServices.m54
-rw-r--r--src/MKUser.m138
-rw-r--r--src/MumbleKit.pch7
-rw-r--r--src/MumbleKit/MKAudio.h57
-rw-r--r--src/MumbleKit/MKAudioInput.h90
-rw-r--r--src/MumbleKit/MKAudioOutput.h65
-rw-r--r--src/MumbleKit/MKAudioOutputSpeech.h83
-rw-r--r--src/MumbleKit/MKAudioOutputUser.h54
-rw-r--r--src/MumbleKit/MKChannel.h91
-rw-r--r--src/MumbleKit/MKConnection.h156
-rw-r--r--src/MumbleKit/MKCryptState.h55
-rw-r--r--src/MumbleKit/MKPacketDataStream.h88
-rw-r--r--src/MumbleKit/MKReadWriteLock.h48
-rw-r--r--src/MumbleKit/MKServerModel.h83
-rw-r--r--src/MumbleKit/MKServices.h35
-rw-r--r--src/MumbleKit/MKUser.h98
-rw-r--r--src/MumbleKit/MKUtils.h31
-rw-r--r--src/NSInvocation(MumbleKitAdditions).h37
-rw-r--r--src/NSInvocation(MumbleKitAdditions).m61
56 files changed, 28887 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2ef92e4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+build/*
+3rdparty/speexbuild/build/*
+3rdparty/speexdspbuild/build/*
+3rdparty/protobufbuild/build/*
+3rdparty/celtbuild/build/*
+.DS_Store
+*.pbxuser
+*.mode1v3
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..a2c6b1a
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,9 @@
+[submodule "3rdparty/speex"]
+ path = 3rdparty/speex
+ url = git://git.xiph.org/speex.git/
+[submodule "3rdparty/celt"]
+ path = 3rdparty/celt
+ url = git://git.xiph.org/celt.git/
+[submodule "3rdparty/protobuf"]
+ path = 3rdparty/protobuf
+ url = git://github.com/mkrautz/protobuf-objc-2.2.0-mirror.git
diff --git a/3rdparty/celt b/3rdparty/celt
new file mode 160000
+Subproject dc8a6eee433ef2cf8866d7bfe051c331d6607a8
diff --git a/3rdparty/celtbuild/CELT.xcodeproj/project.pbxproj b/3rdparty/celtbuild/CELT.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..68b45c0
--- /dev/null
+++ b/3rdparty/celtbuild/CELT.xcodeproj/project.pbxproj
@@ -0,0 +1,450 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2872664710F0FFD300DD4D54 /* bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872660A10F0FFD300DD4D54 /* bands.c */; };
+ 2872664810F0FFD300DD4D54 /* bands.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872660B10F0FFD300DD4D54 /* bands.h */; };
+ 2872664B10F0FFD300DD4D54 /* celt_header.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872660E10F0FFD300DD4D54 /* celt_header.h */; };
+ 2872664C10F0FFD300DD4D54 /* celt_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872660F10F0FFD300DD4D54 /* celt_types.h */; };
+ 2872664D10F0FFD300DD4D54 /* celt.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661010F0FFD300DD4D54 /* celt.c */; };
+ 2872664E10F0FFD300DD4D54 /* celt.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661110F0FFD300DD4D54 /* celt.h */; };
+ 2872664F10F0FFD300DD4D54 /* cwrs.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661210F0FFD300DD4D54 /* cwrs.c */; };
+ 2872665010F0FFD300DD4D54 /* cwrs.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661310F0FFD300DD4D54 /* cwrs.h */; };
+ 2872665210F0FFD300DD4D54 /* ecintrin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661510F0FFD300DD4D54 /* ecintrin.h */; };
+ 2872665310F0FFD300DD4D54 /* entcode.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661610F0FFD300DD4D54 /* entcode.c */; };
+ 2872665410F0FFD300DD4D54 /* entcode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661710F0FFD300DD4D54 /* entcode.h */; };
+ 2872665510F0FFD300DD4D54 /* entdec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661810F0FFD300DD4D54 /* entdec.c */; };
+ 2872665610F0FFD300DD4D54 /* entdec.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661910F0FFD300DD4D54 /* entdec.h */; };
+ 2872665710F0FFD300DD4D54 /* entenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872661A10F0FFD300DD4D54 /* entenc.c */; };
+ 2872665810F0FFD300DD4D54 /* entenc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661B10F0FFD300DD4D54 /* entenc.h */; };
+ 2872665B10F0FFD300DD4D54 /* fixed_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661E10F0FFD300DD4D54 /* fixed_debug.h */; };
+ 2872665C10F0FFD300DD4D54 /* fixed_generic.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872661F10F0FFD300DD4D54 /* fixed_generic.h */; };
+ 2872665D10F0FFD300DD4D54 /* float_cast.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662010F0FFD300DD4D54 /* float_cast.h */; };
+ 2872665E10F0FFD300DD4D54 /* header.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662110F0FFD300DD4D54 /* header.c */; };
+ 2872665F10F0FFD300DD4D54 /* kfft_double.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662210F0FFD300DD4D54 /* kfft_double.h */; };
+ 2872666110F0FFD300DD4D54 /* kfft_single.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662410F0FFD300DD4D54 /* kfft_single.h */; };
+ 2872666210F0FFD300DD4D54 /* kiss_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662510F0FFD300DD4D54 /* kiss_fft.c */; };
+ 2872666310F0FFD300DD4D54 /* kiss_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662610F0FFD300DD4D54 /* kiss_fft.h */; };
+ 2872666410F0FFD300DD4D54 /* kiss_fftr.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662710F0FFD300DD4D54 /* kiss_fftr.c */; };
+ 2872666510F0FFD300DD4D54 /* kiss_fftr.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662810F0FFD300DD4D54 /* kiss_fftr.h */; };
+ 2872666610F0FFD300DD4D54 /* laplace.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662910F0FFD300DD4D54 /* laplace.c */; };
+ 2872666710F0FFD300DD4D54 /* laplace.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662A10F0FFD300DD4D54 /* laplace.h */; };
+ 2872666810F0FFD300DD4D54 /* mathops.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662D10F0FFD300DD4D54 /* mathops.h */; };
+ 2872666910F0FFD300DD4D54 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872662E10F0FFD300DD4D54 /* mdct.c */; };
+ 2872666A10F0FFD300DD4D54 /* mdct.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872662F10F0FFD300DD4D54 /* mdct.h */; };
+ 2872666B10F0FFD300DD4D54 /* mfrngcod.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663010F0FFD300DD4D54 /* mfrngcod.h */; };
+ 2872666E10F0FFD300DD4D54 /* modes.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663310F0FFD300DD4D54 /* modes.c */; };
+ 2872666F10F0FFD300DD4D54 /* modes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663410F0FFD300DD4D54 /* modes.h */; };
+ 2872667010F0FFD300DD4D54 /* os_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663510F0FFD300DD4D54 /* os_support.h */; };
+ 2872667110F0FFD300DD4D54 /* pitch.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663610F0FFD300DD4D54 /* pitch.c */; };
+ 2872667210F0FFD300DD4D54 /* pitch.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663710F0FFD300DD4D54 /* pitch.h */; };
+ 2872667410F0FFD300DD4D54 /* psy.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663910F0FFD300DD4D54 /* psy.c */; };
+ 2872667510F0FFD300DD4D54 /* psy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663A10F0FFD300DD4D54 /* psy.h */; };
+ 2872667610F0FFD300DD4D54 /* quant_bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663B10F0FFD300DD4D54 /* quant_bands.c */; };
+ 2872667710F0FFD300DD4D54 /* quant_bands.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872663C10F0FFD300DD4D54 /* quant_bands.h */; };
+ 2872667810F0FFD300DD4D54 /* rangedec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663D10F0FFD300DD4D54 /* rangedec.c */; };
+ 2872667910F0FFD300DD4D54 /* rangeenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663E10F0FFD300DD4D54 /* rangeenc.c */; };
+ 2872667A10F0FFD300DD4D54 /* rate.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872663F10F0FFD300DD4D54 /* rate.c */; };
+ 2872667B10F0FFD300DD4D54 /* rate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872664010F0FFD300DD4D54 /* rate.h */; };
+ 2872667C10F0FFD300DD4D54 /* stack_alloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872664110F0FFD300DD4D54 /* stack_alloc.h */; };
+ 2872667E10F0FFD300DD4D54 /* vq.c in Sources */ = {isa = PBXBuildFile; fileRef = 2872664310F0FFD300DD4D54 /* vq.c */; };
+ 2872667F10F0FFD300DD4D54 /* vq.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872664410F0FFD300DD4D54 /* vq.h */; };
+ 2872668110F0FFF300DD4D54 /* arch.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872668010F0FFF300DD4D54 /* arch.h */; };
+ 2872668310F1000900DD4D54 /* _kiss_fft_guts.h in Headers */ = {isa = PBXBuildFile; fileRef = 2872668210F1000900DD4D54 /* _kiss_fft_guts.h */; };
+ 287266FE10F1021E00DD4D54 /* c64_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 287266FA10F1021E00DD4D54 /* c64_fft.h */; };
+ 287266FF10F1021E00DD4D54 /* fixed_c5x.h in Headers */ = {isa = PBXBuildFile; fileRef = 287266FB10F1021E00DD4D54 /* fixed_c5x.h */; };
+ 2872670010F1021E00DD4D54 /* fixed_c6x.h in Headers */ = {isa = PBXBuildFile; fileRef = 287266FC10F1021E00DD4D54 /* fixed_c6x.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 2872660A10F0FFD300DD4D54 /* bands.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bands.c; path = ../celt/libcelt/bands.c; sourceTree = SOURCE_ROOT; };
+ 2872660B10F0FFD300DD4D54 /* bands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bands.h; path = ../celt/libcelt/bands.h; sourceTree = SOURCE_ROOT; };
+ 2872660E10F0FFD300DD4D54 /* celt_header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = celt_header.h; path = ../celt/libcelt/celt_header.h; sourceTree = SOURCE_ROOT; };
+ 2872660F10F0FFD300DD4D54 /* celt_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = celt_types.h; path = ../celt/libcelt/celt_types.h; sourceTree = SOURCE_ROOT; };
+ 2872661010F0FFD300DD4D54 /* celt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = celt.c; path = ../celt/libcelt/celt.c; sourceTree = SOURCE_ROOT; };
+ 2872661110F0FFD300DD4D54 /* celt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = celt.h; path = ../celt/libcelt/celt.h; sourceTree = SOURCE_ROOT; };
+ 2872661210F0FFD300DD4D54 /* cwrs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cwrs.c; path = ../celt/libcelt/cwrs.c; sourceTree = SOURCE_ROOT; };
+ 2872661310F0FFD300DD4D54 /* cwrs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cwrs.h; path = ../celt/libcelt/cwrs.h; sourceTree = SOURCE_ROOT; };
+ 2872661410F0FFD300DD4D54 /* dump_modes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dump_modes.c; path = ../celt/libcelt/dump_modes.c; sourceTree = SOURCE_ROOT; };
+ 2872661510F0FFD300DD4D54 /* ecintrin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ecintrin.h; path = ../celt/libcelt/ecintrin.h; sourceTree = SOURCE_ROOT; };
+ 2872661610F0FFD300DD4D54 /* entcode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = entcode.c; path = ../celt/libcelt/entcode.c; sourceTree = SOURCE_ROOT; };
+ 2872661710F0FFD300DD4D54 /* entcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = entcode.h; path = ../celt/libcelt/entcode.h; sourceTree = SOURCE_ROOT; };
+ 2872661810F0FFD300DD4D54 /* entdec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = entdec.c; path = ../celt/libcelt/entdec.c; sourceTree = SOURCE_ROOT; };
+ 2872661910F0FFD300DD4D54 /* entdec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = entdec.h; path = ../celt/libcelt/entdec.h; sourceTree = SOURCE_ROOT; };
+ 2872661A10F0FFD300DD4D54 /* entenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = entenc.c; path = ../celt/libcelt/entenc.c; sourceTree = SOURCE_ROOT; };
+ 2872661B10F0FFD300DD4D54 /* entenc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = entenc.h; path = ../celt/libcelt/entenc.h; sourceTree = SOURCE_ROOT; };
+ 2872661E10F0FFD300DD4D54 /* fixed_debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_debug.h; path = ../celt/libcelt/fixed_debug.h; sourceTree = SOURCE_ROOT; };
+ 2872661F10F0FFD300DD4D54 /* fixed_generic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_generic.h; path = ../celt/libcelt/fixed_generic.h; sourceTree = SOURCE_ROOT; };
+ 2872662010F0FFD300DD4D54 /* float_cast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = float_cast.h; path = ../celt/libcelt/float_cast.h; sourceTree = SOURCE_ROOT; };
+ 2872662110F0FFD300DD4D54 /* header.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = header.c; path = ../celt/libcelt/header.c; sourceTree = SOURCE_ROOT; };
+ 2872662210F0FFD300DD4D54 /* kfft_double.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kfft_double.h; path = ../celt/libcelt/kfft_double.h; sourceTree = SOURCE_ROOT; };
+ 2872662310F0FFD300DD4D54 /* kfft_single.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kfft_single.c; path = ../celt/libcelt/kfft_single.c; sourceTree = SOURCE_ROOT; };
+ 2872662410F0FFD300DD4D54 /* kfft_single.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kfft_single.h; path = ../celt/libcelt/kfft_single.h; sourceTree = SOURCE_ROOT; };
+ 2872662510F0FFD300DD4D54 /* kiss_fft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kiss_fft.c; path = ../celt/libcelt/kiss_fft.c; sourceTree = SOURCE_ROOT; };
+ 2872662610F0FFD300DD4D54 /* kiss_fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kiss_fft.h; path = ../celt/libcelt/kiss_fft.h; sourceTree = SOURCE_ROOT; };
+ 2872662710F0FFD300DD4D54 /* kiss_fftr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kiss_fftr.c; path = ../celt/libcelt/kiss_fftr.c; sourceTree = SOURCE_ROOT; };
+ 2872662810F0FFD300DD4D54 /* kiss_fftr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kiss_fftr.h; path = ../celt/libcelt/kiss_fftr.h; sourceTree = SOURCE_ROOT; };
+ 2872662910F0FFD300DD4D54 /* laplace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = laplace.c; path = ../celt/libcelt/laplace.c; sourceTree = SOURCE_ROOT; };
+ 2872662A10F0FFD300DD4D54 /* laplace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = laplace.h; path = ../celt/libcelt/laplace.h; sourceTree = SOURCE_ROOT; };
+ 2872662D10F0FFD300DD4D54 /* mathops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mathops.h; path = ../celt/libcelt/mathops.h; sourceTree = SOURCE_ROOT; };
+ 2872662E10F0FFD300DD4D54 /* mdct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mdct.c; path = ../celt/libcelt/mdct.c; sourceTree = SOURCE_ROOT; };
+ 2872662F10F0FFD300DD4D54 /* mdct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = ../celt/libcelt/mdct.h; sourceTree = SOURCE_ROOT; };
+ 2872663010F0FFD300DD4D54 /* mfrngcod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mfrngcod.h; path = ../celt/libcelt/mfrngcod.h; sourceTree = SOURCE_ROOT; };
+ 2872663110F0FFD300DD4D54 /* mfrngdec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mfrngdec.c; path = ../celt/libcelt/mfrngdec.c; sourceTree = SOURCE_ROOT; };
+ 2872663210F0FFD300DD4D54 /* mfrngenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mfrngenc.c; path = ../celt/libcelt/mfrngenc.c; sourceTree = SOURCE_ROOT; };
+ 2872663310F0FFD300DD4D54 /* modes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = modes.c; path = ../celt/libcelt/modes.c; sourceTree = SOURCE_ROOT; };
+ 2872663410F0FFD300DD4D54 /* modes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = modes.h; path = ../celt/libcelt/modes.h; sourceTree = SOURCE_ROOT; };
+ 2872663510F0FFD300DD4D54 /* os_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_support.h; path = ../celt/libcelt/os_support.h; sourceTree = SOURCE_ROOT; };
+ 2872663610F0FFD300DD4D54 /* pitch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pitch.c; path = ../celt/libcelt/pitch.c; sourceTree = SOURCE_ROOT; };
+ 2872663710F0FFD300DD4D54 /* pitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pitch.h; path = ../celt/libcelt/pitch.h; sourceTree = SOURCE_ROOT; };
+ 2872663810F0FFD300DD4D54 /* plc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = plc.c; path = ../celt/libcelt/plc.c; sourceTree = SOURCE_ROOT; };
+ 2872663910F0FFD300DD4D54 /* psy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psy.c; path = ../celt/libcelt/psy.c; sourceTree = SOURCE_ROOT; };
+ 2872663A10F0FFD300DD4D54 /* psy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psy.h; path = ../celt/libcelt/psy.h; sourceTree = SOURCE_ROOT; };
+ 2872663B10F0FFD300DD4D54 /* quant_bands.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = quant_bands.c; path = ../celt/libcelt/quant_bands.c; sourceTree = SOURCE_ROOT; };
+ 2872663C10F0FFD300DD4D54 /* quant_bands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = quant_bands.h; path = ../celt/libcelt/quant_bands.h; sourceTree = SOURCE_ROOT; };
+ 2872663D10F0FFD300DD4D54 /* rangedec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rangedec.c; path = ../celt/libcelt/rangedec.c; sourceTree = SOURCE_ROOT; };
+ 2872663E10F0FFD300DD4D54 /* rangeenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rangeenc.c; path = ../celt/libcelt/rangeenc.c; sourceTree = SOURCE_ROOT; };
+ 2872663F10F0FFD300DD4D54 /* rate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rate.c; path = ../celt/libcelt/rate.c; sourceTree = SOURCE_ROOT; };
+ 2872664010F0FFD300DD4D54 /* rate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rate.h; path = ../celt/libcelt/rate.h; sourceTree = SOURCE_ROOT; };
+ 2872664110F0FFD300DD4D54 /* stack_alloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stack_alloc.h; path = ../celt/libcelt/stack_alloc.h; sourceTree = SOURCE_ROOT; };
+ 2872664210F0FFD300DD4D54 /* testcelt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testcelt.c; path = ../celt/libcelt/testcelt.c; sourceTree = SOURCE_ROOT; };
+ 2872664310F0FFD300DD4D54 /* vq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vq.c; path = ../celt/libcelt/vq.c; sourceTree = SOURCE_ROOT; };
+ 2872664410F0FFD300DD4D54 /* vq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq.h; path = ../celt/libcelt/vq.h; sourceTree = SOURCE_ROOT; };
+ 2872668010F0FFF300DD4D54 /* arch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arch.h; path = ../celt/libcelt/arch.h; sourceTree = SOURCE_ROOT; };
+ 2872668210F1000900DD4D54 /* _kiss_fft_guts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = _kiss_fft_guts.h; path = ../celt/libcelt/_kiss_fft_guts.h; sourceTree = SOURCE_ROOT; };
+ 287266F910F1021E00DD4D54 /* c64_fft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = c64_fft.c; path = ../celt/libcelt/c64_fft.c; sourceTree = SOURCE_ROOT; };
+ 287266FA10F1021E00DD4D54 /* c64_fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = c64_fft.h; path = ../celt/libcelt/c64_fft.h; sourceTree = SOURCE_ROOT; };
+ 287266FB10F1021E00DD4D54 /* fixed_c5x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_c5x.h; path = ../celt/libcelt/fixed_c5x.h; sourceTree = SOURCE_ROOT; };
+ 287266FC10F1021E00DD4D54 /* fixed_c6x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_c6x.h; path = ../celt/libcelt/fixed_c6x.h; sourceTree = SOURCE_ROOT; };
+ D2AAC07E0554694100DB518D /* libCELT.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libCELT.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D2AAC07C0554694100DB518D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 034768DFFF38A50411DB9C8B /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D2AAC07E0554694100DB518D /* libCELT.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 0867D691FE84028FC02AAC07 /* CELT */ = {
+ isa = PBXGroup;
+ children = (
+ 287265EB10F0FFA200DD4D54 /* Source */,
+ 034768DFFF38A50411DB9C8B /* Products */,
+ );
+ name = CELT;
+ sourceTree = "<group>";
+ };
+ 287265EB10F0FFA200DD4D54 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 287266F910F1021E00DD4D54 /* c64_fft.c */,
+ 287266FA10F1021E00DD4D54 /* c64_fft.h */,
+ 287266FB10F1021E00DD4D54 /* fixed_c5x.h */,
+ 287266FC10F1021E00DD4D54 /* fixed_c6x.h */,
+ 2872668210F1000900DD4D54 /* _kiss_fft_guts.h */,
+ 2872668010F0FFF300DD4D54 /* arch.h */,
+ 2872660A10F0FFD300DD4D54 /* bands.c */,
+ 2872660B10F0FFD300DD4D54 /* bands.h */,
+ 2872660E10F0FFD300DD4D54 /* celt_header.h */,
+ 2872660F10F0FFD300DD4D54 /* celt_types.h */,
+ 2872661010F0FFD300DD4D54 /* celt.c */,
+ 2872661110F0FFD300DD4D54 /* celt.h */,
+ 2872661210F0FFD300DD4D54 /* cwrs.c */,
+ 2872661310F0FFD300DD4D54 /* cwrs.h */,
+ 2872661410F0FFD300DD4D54 /* dump_modes.c */,
+ 2872661510F0FFD300DD4D54 /* ecintrin.h */,
+ 2872661610F0FFD300DD4D54 /* entcode.c */,
+ 2872661710F0FFD300DD4D54 /* entcode.h */,
+ 2872661810F0FFD300DD4D54 /* entdec.c */,
+ 2872661910F0FFD300DD4D54 /* entdec.h */,
+ 2872661A10F0FFD300DD4D54 /* entenc.c */,
+ 2872661B10F0FFD300DD4D54 /* entenc.h */,
+ 2872661E10F0FFD300DD4D54 /* fixed_debug.h */,
+ 2872661F10F0FFD300DD4D54 /* fixed_generic.h */,
+ 2872662010F0FFD300DD4D54 /* float_cast.h */,
+ 2872662110F0FFD300DD4D54 /* header.c */,
+ 2872662210F0FFD300DD4D54 /* kfft_double.h */,
+ 2872662310F0FFD300DD4D54 /* kfft_single.c */,
+ 2872662410F0FFD300DD4D54 /* kfft_single.h */,
+ 2872662510F0FFD300DD4D54 /* kiss_fft.c */,
+ 2872662610F0FFD300DD4D54 /* kiss_fft.h */,
+ 2872662710F0FFD300DD4D54 /* kiss_fftr.c */,
+ 2872662810F0FFD300DD4D54 /* kiss_fftr.h */,
+ 2872662910F0FFD300DD4D54 /* laplace.c */,
+ 2872662A10F0FFD300DD4D54 /* laplace.h */,
+ 2872662D10F0FFD300DD4D54 /* mathops.h */,
+ 2872662E10F0FFD300DD4D54 /* mdct.c */,
+ 2872662F10F0FFD300DD4D54 /* mdct.h */,
+ 2872663010F0FFD300DD4D54 /* mfrngcod.h */,
+ 2872663110F0FFD300DD4D54 /* mfrngdec.c */,
+ 2872663210F0FFD300DD4D54 /* mfrngenc.c */,
+ 2872663310F0FFD300DD4D54 /* modes.c */,
+ 2872663410F0FFD300DD4D54 /* modes.h */,
+ 2872663510F0FFD300DD4D54 /* os_support.h */,
+ 2872663610F0FFD300DD4D54 /* pitch.c */,
+ 2872663710F0FFD300DD4D54 /* pitch.h */,
+ 2872663810F0FFD300DD4D54 /* plc.c */,
+ 2872663910F0FFD300DD4D54 /* psy.c */,
+ 2872663A10F0FFD300DD4D54 /* psy.h */,
+ 2872663B10F0FFD300DD4D54 /* quant_bands.c */,
+ 2872663C10F0FFD300DD4D54 /* quant_bands.h */,
+ 2872663D10F0FFD300DD4D54 /* rangedec.c */,
+ 2872663E10F0FFD300DD4D54 /* rangeenc.c */,
+ 2872663F10F0FFD300DD4D54 /* rate.c */,
+ 2872664010F0FFD300DD4D54 /* rate.h */,
+ 2872664110F0FFD300DD4D54 /* stack_alloc.h */,
+ 2872664210F0FFD300DD4D54 /* testcelt.c */,
+ 2872664310F0FFD300DD4D54 /* vq.c */,
+ 2872664410F0FFD300DD4D54 /* vq.h */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D2AAC07A0554694100DB518D /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2872664810F0FFD300DD4D54 /* bands.h in Headers */,
+ 2872664B10F0FFD300DD4D54 /* celt_header.h in Headers */,
+ 2872664C10F0FFD300DD4D54 /* celt_types.h in Headers */,
+ 2872664E10F0FFD300DD4D54 /* celt.h in Headers */,
+ 2872665010F0FFD300DD4D54 /* cwrs.h in Headers */,
+ 2872665210F0FFD300DD4D54 /* ecintrin.h in Headers */,
+ 2872665410F0FFD300DD4D54 /* entcode.h in Headers */,
+ 2872665610F0FFD300DD4D54 /* entdec.h in Headers */,
+ 2872665810F0FFD300DD4D54 /* entenc.h in Headers */,
+ 2872665B10F0FFD300DD4D54 /* fixed_debug.h in Headers */,
+ 2872665C10F0FFD300DD4D54 /* fixed_generic.h in Headers */,
+ 2872665D10F0FFD300DD4D54 /* float_cast.h in Headers */,
+ 2872665F10F0FFD300DD4D54 /* kfft_double.h in Headers */,
+ 2872666110F0FFD300DD4D54 /* kfft_single.h in Headers */,
+ 2872666310F0FFD300DD4D54 /* kiss_fft.h in Headers */,
+ 2872666510F0FFD300DD4D54 /* kiss_fftr.h in Headers */,
+ 2872666710F0FFD300DD4D54 /* laplace.h in Headers */,
+ 2872666810F0FFD300DD4D54 /* mathops.h in Headers */,
+ 2872666A10F0FFD300DD4D54 /* mdct.h in Headers */,
+ 2872666B10F0FFD300DD4D54 /* mfrngcod.h in Headers */,
+ 2872666F10F0FFD300DD4D54 /* modes.h in Headers */,
+ 2872667010F0FFD300DD4D54 /* os_support.h in Headers */,
+ 2872667210F0FFD300DD4D54 /* pitch.h in Headers */,
+ 2872667510F0FFD300DD4D54 /* psy.h in Headers */,
+ 2872667710F0FFD300DD4D54 /* quant_bands.h in Headers */,
+ 2872667B10F0FFD300DD4D54 /* rate.h in Headers */,
+ 2872667C10F0FFD300DD4D54 /* stack_alloc.h in Headers */,
+ 2872667F10F0FFD300DD4D54 /* vq.h in Headers */,
+ 2872668110F0FFF300DD4D54 /* arch.h in Headers */,
+ 2872668310F1000900DD4D54 /* _kiss_fft_guts.h in Headers */,
+ 287266FE10F1021E00DD4D54 /* c64_fft.h in Headers */,
+ 287266FF10F1021E00DD4D54 /* fixed_c5x.h in Headers */,
+ 2872670010F1021E00DD4D54 /* fixed_c6x.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D2AAC07D0554694100DB518D /* CELT */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "CELT" */;
+ buildPhases = (
+ D2AAC07A0554694100DB518D /* Headers */,
+ D2AAC07B0554694100DB518D /* Sources */,
+ D2AAC07C0554694100DB518D /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = CELT;
+ productName = CELT;
+ productReference = D2AAC07E0554694100DB518D /* libCELT.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 0867D690FE84028FC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "CELT" */;
+ compatibilityVersion = "Xcode 3.1";
+ hasScannedForEncodings = 1;
+ mainGroup = 0867D691FE84028FC02AAC07 /* CELT */;
+ productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D2AAC07D0554694100DB518D /* CELT */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D2AAC07B0554694100DB518D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2872664710F0FFD300DD4D54 /* bands.c in Sources */,
+ 2872664D10F0FFD300DD4D54 /* celt.c in Sources */,
+ 2872664F10F0FFD300DD4D54 /* cwrs.c in Sources */,
+ 2872665310F0FFD300DD4D54 /* entcode.c in Sources */,
+ 2872665510F0FFD300DD4D54 /* entdec.c in Sources */,
+ 2872665710F0FFD300DD4D54 /* entenc.c in Sources */,
+ 2872665E10F0FFD300DD4D54 /* header.c in Sources */,
+ 2872666210F0FFD300DD4D54 /* kiss_fft.c in Sources */,
+ 2872666410F0FFD300DD4D54 /* kiss_fftr.c in Sources */,
+ 2872666610F0FFD300DD4D54 /* laplace.c in Sources */,
+ 2872666910F0FFD300DD4D54 /* mdct.c in Sources */,
+ 2872666E10F0FFD300DD4D54 /* modes.c in Sources */,
+ 2872667110F0FFD300DD4D54 /* pitch.c in Sources */,
+ 2872667410F0FFD300DD4D54 /* psy.c in Sources */,
+ 2872667610F0FFD300DD4D54 /* quant_bands.c in Sources */,
+ 2872667810F0FFD300DD4D54 /* rangedec.c in Sources */,
+ 2872667910F0FFD300DD4D54 /* rangeenc.c in Sources */,
+ 2872667A10F0FFD300DD4D54 /* rate.c in Sources */,
+ 2872667E10F0FFD300DD4D54 /* vq.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 1DEB921F08733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ COPY_PHASE_STRIP = NO;
+ DSTROOT = /tmp/CELT.dst;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_FAST_MATH = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
+ GCC_PREFIX_HEADER = "";
+ GCC_THUMB_SUPPORT = NO;
+ GCC_UNROLL_LOOPS = YES;
+ INSTALL_PATH = /usr/local/lib;
+ OTHER_CFLAGS = "-fsingle-precision-constant";
+ "OTHER_CFLAGS[arch=armv7]" = (
+ "-mfpu=neon",
+ "-mfloat-abi=softfp",
+ "-mcpu=cortex-a8",
+ );
+ "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)";
+ PRODUCT_NAME = CELT;
+ };
+ name = Debug;
+ };
+ 1DEB922008733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ DSTROOT = /tmp/CELT.dst;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_FAST_MATH = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
+ GCC_PREFIX_HEADER = "";
+ GCC_THUMB_SUPPORT = NO;
+ GCC_UNROLL_LOOPS = YES;
+ INSTALL_PATH = /usr/local/lib;
+ OTHER_CFLAGS = "-fsingle-precision-constant";
+ "OTHER_CFLAGS[arch=armv7]" = (
+ "-mfpu=neon",
+ "-mfloat-abi=softfp",
+ "-mcpu=cortex-a8",
+ );
+ "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)";
+ PRODUCT_NAME = CELT;
+ };
+ name = Release;
+ };
+ 1DEB922308733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_ENABLE_SYMBOL_SEPARATION = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "";
+ OTHER_LDFLAGS = "-ObjC";
+ PREBINDING = NO;
+ PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+ SDKROOT = iphoneos3.1.2;
+ USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/** ${PROJECT_DIR}/../celt/libcelt//**";
+ };
+ name = Debug;
+ };
+ 1DEB922408733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_ENABLE_SYMBOL_SEPARATION = NO;
+ GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "";
+ OTHER_LDFLAGS = "-ObjC";
+ PREBINDING = NO;
+ PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+ SDKROOT = iphoneos3.1.2;
+ USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/** ${PROJECT_DIR}/../celt/libcelt//**";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "CELT" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB921F08733DC00010E9CD /* Debug */,
+ 1DEB922008733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "CELT" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB922308733DC00010E9CD /* Debug */,
+ 1DEB922408733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
diff --git a/3rdparty/celtbuild/config.h b/3rdparty/celtbuild/config.h
new file mode 100644
index 0000000..dffdd24
--- /dev/null
+++ b/3rdparty/celtbuild/config.h
@@ -0,0 +1 @@
+#define FLOATING_POINT
diff --git a/3rdparty/protobuf b/3rdparty/protobuf
new file mode 160000
+Subproject f9a8bf63d403e8a6d2fc5629d3f27b05ffea93c
diff --git a/3rdparty/protobufbuild/ProtocolBuffers.xcodeproj/project.pbxproj b/3rdparty/protobufbuild/ProtocolBuffers.xcodeproj/project.pbxproj
new file mode 100755
index 0000000..aca9b96
--- /dev/null
+++ b/3rdparty/protobufbuild/ProtocolBuffers.xcodeproj/project.pbxproj
@@ -0,0 +1,844 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1000000000000000000003C9 /* AbstractMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000003C8 /* AbstractMessage.m */; };
+ 1000000000000000000003CA /* AbstractMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000003C8 /* AbstractMessage.m */; };
+ 1000000000000000000003CD /* AbstractMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000003CC /* AbstractMessage_Builder.m */; };
+ 1000000000000000000003CE /* AbstractMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000003CC /* AbstractMessage_Builder.m */; };
+ 10000000000000000000069C /* CodedInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000069A /* CodedInputStream.m */; };
+ 10000000000000000000069D /* CodedInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000069A /* CodedInputStream.m */; };
+ 1000000000000000000006A0 /* CodedInputStreamTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000069F /* CodedInputStreamTests.m */; };
+ 1000000000000000000006A3 /* CodedOuputStreamTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000006A2 /* CodedOuputStreamTests.m */; };
+ 1000000000000000000006A6 /* CodedOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000006A5 /* CodedOutputStream.m */; };
+ 1000000000000000000006A7 /* CodedOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000006A5 /* CodedOutputStream.m */; };
+ 1000000000000000000007AD /* ConcreteExtensionField.h in Headers */ = {isa = PBXBuildFile; fileRef = 1000000000000000000007AC /* ConcreteExtensionField.h */; };
+ 1000000000000000000007B0 /* ConcreteExtensionField.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000007AE /* ConcreteExtensionField.m */; };
+ 1000000000000000000007B1 /* ConcreteExtensionField.m in Sources */ = {isa = PBXBuildFile; fileRef = 1000000000000000000007AE /* ConcreteExtensionField.m */; };
+ 10000000000000000000081B /* CoreTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000081A /* CoreTests.m */; };
+ 100000000000000000000A0C /* ExtendableMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A0B /* ExtendableMessage.m */; };
+ 100000000000000000000A0D /* ExtendableMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A0B /* ExtendableMessage.m */; };
+ 100000000000000000000A0F /* ExtendableMessage_Builder.h in Headers */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A0E /* ExtendableMessage_Builder.h */; };
+ 100000000000000000000A11 /* ExtendableMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A10 /* ExtendableMessage_Builder.m */; };
+ 100000000000000000000A12 /* ExtendableMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A10 /* ExtendableMessage_Builder.m */; };
+ 100000000000000000000A14 /* ExtensionField.h in Headers */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A13 /* ExtensionField.h */; };
+ 100000000000000000000A18 /* ExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A16 /* ExtensionRegistry.m */; };
+ 100000000000000000000A19 /* ExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A16 /* ExtensionRegistry.m */; };
+ 100000000000000000000A78 /* Field.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A77 /* Field.m */; };
+ 100000000000000000000A79 /* Field.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000A77 /* Field.m */; };
+ 100000000000000000000AC2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 100000000000000000000AAF /* Foundation.framework */; };
+ 100000000000000000000AC3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 100000000000000000000AAF /* Foundation.framework */; };
+ 100000000000000000000BA6 /* GeneratedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BA5 /* GeneratedMessage.m */; };
+ 100000000000000000000BA7 /* GeneratedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BA5 /* GeneratedMessage.m */; };
+ 100000000000000000000BAA /* GeneratedMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BA9 /* GeneratedMessageTests.m */; };
+ 100000000000000000000BAD /* GeneratedMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BAC /* GeneratedMessage_Builder.m */; };
+ 100000000000000000000BAE /* GeneratedMessage_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000BAC /* GeneratedMessage_Builder.m */; };
+ 100000000000000000000E31 /* Main.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000E30 /* Main.m */; };
+ 100000000000000000000E9C /* MessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000E9B /* MessageTests.m */; };
+ 100000000000000000000E9D /* MessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000E9B /* MessageTests.m */; };
+ 100000000000000000000F08 /* MicroTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F07 /* MicroTest.m */; };
+ 100000000000000000000F3F /* MutableExtensionRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F3E /* MutableExtensionRegistry.h */; };
+ 100000000000000000000F42 /* MutableExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F40 /* MutableExtensionRegistry.m */; };
+ 100000000000000000000F43 /* MutableExtensionRegistry.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F40 /* MutableExtensionRegistry.m */; };
+ 100000000000000000000F46 /* MutableField.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F45 /* MutableField.m */; };
+ 100000000000000000000F47 /* MutableField.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000000F45 /* MutableField.m */; };
+ 1000000000000000000016A9 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1000000000000000000016A8 /* SenTestingKit.framework */; };
+ 1000000000000000000016AA /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1000000000000000000016A8 /* SenTestingKit.framework */; };
+ 10000000000000000000172C /* SmallBlockInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 10000000000000000000172B /* SmallBlockInputStream.m */; };
+ 100000000000000000001A83 /* TestUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001A82 /* TestUtilities.m */; };
+ 100000000000000000001A84 /* TestUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001A82 /* TestUtilities.m */; };
+ 100000000000000000001A8F /* TextFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001A8E /* TextFormat.m */; };
+ 100000000000000000001A90 /* TextFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001A8E /* TextFormat.m */; };
+ 100000000000000000001C1C /* Unittest.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C1A /* Unittest.pb.m */; };
+ 100000000000000000001C1D /* Unittest.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C1A /* Unittest.pb.m */; };
+ 100000000000000000001C20 /* UnittestEmbedOptimizeFor.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C1F /* UnittestEmbedOptimizeFor.pb.m */; };
+ 100000000000000000001C24 /* UnittestImport.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C22 /* UnittestImport.pb.m */; };
+ 100000000000000000001C25 /* UnittestImport.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C22 /* UnittestImport.pb.m */; };
+ 100000000000000000001C28 /* UnittestMset.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C27 /* UnittestMset.pb.m */; };
+ 100000000000000000001C2B /* UnittestOptimizeFor.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C2A /* UnittestOptimizeFor.pb.m */; };
+ 100000000000000000001C2F /* UnknownFieldSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C2D /* UnknownFieldSet.m */; };
+ 100000000000000000001C30 /* UnknownFieldSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C2D /* UnknownFieldSet.m */; };
+ 100000000000000000001C34 /* UnknownFieldSetTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C32 /* UnknownFieldSetTest.m */; };
+ 100000000000000000001C35 /* UnknownFieldSetTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C32 /* UnknownFieldSetTest.m */; };
+ 100000000000000000001C38 /* UnknownFieldSet_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C37 /* UnknownFieldSet_Builder.m */; };
+ 100000000000000000001C39 /* UnknownFieldSet_Builder.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C37 /* UnknownFieldSet_Builder.m */; };
+ 100000000000000000001C62 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C5F /* Utilities.m */; };
+ 100000000000000000001C63 /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C5F /* Utilities.m */; };
+ 100000000000000000001C66 /* UtilitiesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C65 /* UtilitiesTests.m */; };
+ 100000000000000000001C96 /* WireFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C95 /* WireFormat.m */; };
+ 100000000000000000001C97 /* WireFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C95 /* WireFormat.m */; };
+ 100000000000000000001C9A /* WireFormatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C99 /* WireFormatTests.m */; };
+ 100000000000000000001C9B /* WireFormatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 100000000000000000001C99 /* WireFormatTests.m */; };
+ 100000000000000000001ED1 /* libProtocolBuffers.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 100000000000000000001ECF /* libProtocolBuffers.a */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 100000000000000000001221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 100000000000000000001487 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 100000000000000000001489;
+ remoteInfo = ProtocolBuffers;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 1000000000000000000003C7 /* AbstractMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractMessage.h; sourceTree = "<group>"; };
+ 1000000000000000000003C8 /* AbstractMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AbstractMessage.m; sourceTree = "<group>"; };
+ 1000000000000000000003CB /* AbstractMessage_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractMessage_Builder.h; sourceTree = "<group>"; };
+ 1000000000000000000003CC /* AbstractMessage_Builder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AbstractMessage_Builder.m; sourceTree = "<group>"; };
+ 100000000000000000000586 /* Bootstrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Bootstrap.h; path = Classes/Bootstrap.h; sourceTree = "<group>"; };
+ 100000000000000000000699 /* CodedInputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodedInputStream.h; sourceTree = "<group>"; };
+ 10000000000000000000069A /* CodedInputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CodedInputStream.m; sourceTree = "<group>"; };
+ 10000000000000000000069E /* CodedInputStreamTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CodedInputStreamTests.h; path = ../protobuf/objectivec/Tests/CodedInputStreamTests.h; sourceTree = "<group>"; };
+ 10000000000000000000069F /* CodedInputStreamTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CodedInputStreamTests.m; path = ../protobuf/objectivec/Tests/CodedInputStreamTests.m; sourceTree = "<group>"; };
+ 1000000000000000000006A1 /* CodedOuputStreamTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CodedOuputStreamTests.h; path = ../protobuf/objectivec/Tests/CodedOuputStreamTests.h; sourceTree = "<group>"; };
+ 1000000000000000000006A2 /* CodedOuputStreamTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CodedOuputStreamTests.m; path = ../protobuf/objectivec/Tests/CodedOuputStreamTests.m; sourceTree = "<group>"; };
+ 1000000000000000000006A4 /* CodedOutputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodedOutputStream.h; sourceTree = "<group>"; };
+ 1000000000000000000006A5 /* CodedOutputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CodedOutputStream.m; sourceTree = "<group>"; };
+ 1000000000000000000007A4 /* CommandLineTests.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CommandLineTests.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1000000000000000000007AC /* ConcreteExtensionField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConcreteExtensionField.h; sourceTree = "<group>"; };
+ 1000000000000000000007AE /* ConcreteExtensionField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConcreteExtensionField.m; sourceTree = "<group>"; };
+ 100000000000000000000819 /* CoreTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CoreTests.h; path = ../protobuf/objectivec/Tests/CoreTests.h; sourceTree = "<group>"; };
+ 10000000000000000000081A /* CoreTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CoreTests.m; path = ../protobuf/objectivec/Tests/CoreTests.m; sourceTree = "<group>"; };
+ 100000000000000000000A0A /* ExtendableMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtendableMessage.h; sourceTree = "<group>"; };
+ 100000000000000000000A0B /* ExtendableMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExtendableMessage.m; sourceTree = "<group>"; };
+ 100000000000000000000A0E /* ExtendableMessage_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtendableMessage_Builder.h; sourceTree = "<group>"; };
+ 100000000000000000000A10 /* ExtendableMessage_Builder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExtendableMessage_Builder.m; sourceTree = "<group>"; };
+ 100000000000000000000A13 /* ExtensionField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtensionField.h; sourceTree = "<group>"; };
+ 100000000000000000000A15 /* ExtensionRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtensionRegistry.h; sourceTree = "<group>"; };
+ 100000000000000000000A16 /* ExtensionRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExtensionRegistry.m; sourceTree = "<group>"; };
+ 100000000000000000000A76 /* Field.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Field.h; sourceTree = "<group>"; };
+ 100000000000000000000A77 /* Field.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Field.m; sourceTree = "<group>"; };
+ 100000000000000000000A9D /* ForwardDeclarations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ForwardDeclarations.h; path = Classes/ForwardDeclarations.h; sourceTree = "<group>"; };
+ 100000000000000000000AAF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 100000000000000000000BA4 /* GeneratedMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeneratedMessage.h; sourceTree = "<group>"; };
+ 100000000000000000000BA5 /* GeneratedMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedMessage.m; sourceTree = "<group>"; };
+ 100000000000000000000BA8 /* GeneratedMessageTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GeneratedMessageTests.h; path = ../protobuf/objectivec/Tests/GeneratedMessageTests.h; sourceTree = "<group>"; };
+ 100000000000000000000BA9 /* GeneratedMessageTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GeneratedMessageTests.m; path = ../protobuf/objectivec/Tests/GeneratedMessageTests.m; sourceTree = "<group>"; };
+ 100000000000000000000BAB /* GeneratedMessage_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeneratedMessage_Builder.h; sourceTree = "<group>"; };
+ 100000000000000000000BAC /* GeneratedMessage_Builder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedMessage_Builder.m; sourceTree = "<group>"; };
+ 100000000000000000000E30 /* Main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Main.m; sourceTree = "<group>"; };
+ 100000000000000000000E96 /* Message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Message.h; sourceTree = "<group>"; };
+ 100000000000000000000E9A /* MessageTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MessageTests.h; path = ../protobuf/objectivec/Tests/MessageTests.h; sourceTree = "<group>"; };
+ 100000000000000000000E9B /* MessageTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MessageTests.m; path = ../protobuf/objectivec/Tests/MessageTests.m; sourceTree = "<group>"; };
+ 100000000000000000000EBE /* Message_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Message_Builder.h; sourceTree = "<group>"; };
+ 100000000000000000000F06 /* MicroTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MicroTest.h; path = ../protobuf/objectivec/Tests/MicroTest.h; sourceTree = "<group>"; };
+ 100000000000000000000F07 /* MicroTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MicroTest.m; path = ../protobuf/objectivec/Tests/MicroTest.m; sourceTree = "<group>"; };
+ 100000000000000000000F3E /* MutableExtensionRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutableExtensionRegistry.h; sourceTree = "<group>"; };
+ 100000000000000000000F40 /* MutableExtensionRegistry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MutableExtensionRegistry.m; sourceTree = "<group>"; };
+ 100000000000000000000F44 /* MutableField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutableField.h; sourceTree = "<group>"; };
+ 100000000000000000000F45 /* MutableField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MutableField.m; sourceTree = "<group>"; };
+ 10000000000000000000148A /* ProtocolBuffers-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "ProtocolBuffers-Info.plist"; path = "../protobuf/objectivec/ProtocolBuffers-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
+ 10000000000000000000148C /* ProtocolBuffers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProtocolBuffers.h; path = Classes/ProtocolBuffers.h; sourceTree = "<group>"; };
+ 10000000000000000000148F /* ProtocolBuffers_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProtocolBuffers_Prefix.pch; sourceTree = "<group>"; };
+ 1000000000000000000016A8 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
+ 10000000000000000000172A /* SmallBlockInputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SmallBlockInputStream.h; path = ../protobuf/objectivec/Tests/SmallBlockInputStream.h; sourceTree = "<group>"; };
+ 10000000000000000000172B /* SmallBlockInputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SmallBlockInputStream.m; path = ../protobuf/objectivec/Tests/SmallBlockInputStream.m; sourceTree = "<group>"; };
+ 100000000000000000001A81 /* TestUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestUtilities.h; path = ../protobuf/objectivec/Tests/TestUtilities.h; sourceTree = "<group>"; };
+ 100000000000000000001A82 /* TestUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestUtilities.m; path = ../protobuf/objectivec/Tests/TestUtilities.m; sourceTree = "<group>"; };
+ 100000000000000000001A8D /* TextFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextFormat.h; sourceTree = "<group>"; };
+ 100000000000000000001A8E /* TextFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextFormat.m; sourceTree = "<group>"; };
+ 100000000000000000001C13 /* UnitTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "UnitTests-Info.plist"; path = "../protobuf/objectivec/UnitTests-Info.plist"; sourceTree = "<group>"; };
+ 100000000000000000001C15 /* UnitTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 100000000000000000001C19 /* Unittest.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Unittest.pb.h; path = ../protobuf/objectivec/Tests/Unittest.pb.h; sourceTree = "<group>"; };
+ 100000000000000000001C1A /* Unittest.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Unittest.pb.m; path = ../protobuf/objectivec/Tests/Unittest.pb.m; sourceTree = "<group>"; };
+ 100000000000000000001C1E /* UnittestEmbedOptimizeFor.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnittestEmbedOptimizeFor.pb.h; path = ../protobuf/objectivec/Tests/UnittestEmbedOptimizeFor.pb.h; sourceTree = "<group>"; };
+ 100000000000000000001C1F /* UnittestEmbedOptimizeFor.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnittestEmbedOptimizeFor.pb.m; path = ../protobuf/objectivec/Tests/UnittestEmbedOptimizeFor.pb.m; sourceTree = "<group>"; };
+ 100000000000000000001C21 /* UnittestImport.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnittestImport.pb.h; path = ../protobuf/objectivec/Tests/UnittestImport.pb.h; sourceTree = "<group>"; };
+ 100000000000000000001C22 /* UnittestImport.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnittestImport.pb.m; path = ../protobuf/objectivec/Tests/UnittestImport.pb.m; sourceTree = "<group>"; };
+ 100000000000000000001C26 /* UnittestMset.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnittestMset.pb.h; path = ../protobuf/objectivec/Tests/UnittestMset.pb.h; sourceTree = "<group>"; };
+ 100000000000000000001C27 /* UnittestMset.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnittestMset.pb.m; path = ../protobuf/objectivec/Tests/UnittestMset.pb.m; sourceTree = "<group>"; };
+ 100000000000000000001C29 /* UnittestOptimizeFor.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnittestOptimizeFor.pb.h; path = ../protobuf/objectivec/Tests/UnittestOptimizeFor.pb.h; sourceTree = "<group>"; };
+ 100000000000000000001C2A /* UnittestOptimizeFor.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnittestOptimizeFor.pb.m; path = ../protobuf/objectivec/Tests/UnittestOptimizeFor.pb.m; sourceTree = "<group>"; };
+ 100000000000000000001C2C /* UnknownFieldSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnknownFieldSet.h; sourceTree = "<group>"; };
+ 100000000000000000001C2D /* UnknownFieldSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnknownFieldSet.m; sourceTree = "<group>"; };
+ 100000000000000000001C31 /* UnknownFieldSetTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnknownFieldSetTest.h; path = ../protobuf/objectivec/Tests/UnknownFieldSetTest.h; sourceTree = "<group>"; };
+ 100000000000000000001C32 /* UnknownFieldSetTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UnknownFieldSetTest.m; path = ../protobuf/objectivec/Tests/UnknownFieldSetTest.m; sourceTree = "<group>"; };
+ 100000000000000000001C36 /* UnknownFieldSet_Builder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnknownFieldSet_Builder.h; sourceTree = "<group>"; };
+ 100000000000000000001C37 /* UnknownFieldSet_Builder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnknownFieldSet_Builder.m; sourceTree = "<group>"; };
+ 100000000000000000001C5C /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
+ 100000000000000000001C5F /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
+ 100000000000000000001C64 /* UtilitiesTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UtilitiesTests.h; path = ../protobuf/objectivec/Tests/UtilitiesTests.h; sourceTree = "<group>"; };
+ 100000000000000000001C65 /* UtilitiesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UtilitiesTests.m; path = ../protobuf/objectivec/Tests/UtilitiesTests.m; sourceTree = "<group>"; };
+ 100000000000000000001C94 /* WireFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WireFormat.h; sourceTree = "<group>"; };
+ 100000000000000000001C95 /* WireFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WireFormat.m; sourceTree = "<group>"; };
+ 100000000000000000001C98 /* WireFormatTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WireFormatTests.h; path = ../protobuf/objectivec/Tests/WireFormatTests.h; sourceTree = "<group>"; };
+ 100000000000000000001C99 /* WireFormatTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WireFormatTests.m; path = ../protobuf/objectivec/Tests/WireFormatTests.m; sourceTree = "<group>"; };
+ 100000000000000000001ECF /* libProtocolBuffers.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libProtocolBuffers.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 100000000000000000000B8A /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 100000000000000000001ED1 /* libProtocolBuffers.a in Frameworks */,
+ 1000000000000000000016A9 /* SenTestingKit.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 100000000000000000000B8C /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1000000000000000000016AA /* SenTestingKit.framework in Frameworks */,
+ 100000000000000000000AC3 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 100000000000000000000B8D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 100000000000000000000AC2 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 100000000000000000000694 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ 100000000000000000000A1A /* Extensions */,
+ 100000000000000000000A7A /* Fields */,
+ 100000000000000000000BA3 /* GeneratedMessage */,
+ 100000000000000000000BFD /* IO */,
+ 100000000000000000000EBF /* Messages */,
+ 100000000000000000001C5C /* Utilities.h */,
+ 100000000000000000001C5F /* Utilities.m */,
+ 100000000000000000000E30 /* Main.m */,
+ );
+ name = Classes;
+ path = ../protobuf/objectivec/Classes;
+ sourceTree = "<group>";
+ };
+ 10000000000000000000087A /* CustomTemplate */ = {
+ isa = PBXGroup;
+ children = (
+ 100000000000000000001A86 /* Tests */,
+ 100000000000000000000694 /* Classes */,
+ 10000000000000000000108F /* Other Sources */,
+ 1000000000000000000015EC /* Resources */,
+ 100000000000000000000B8B /* Frameworks */,
+ 100000000000000000001469 /* Products */,
+ );
+ name = CustomTemplate;
+ sourceTree = "<group>";
+ };
+ 100000000000000000000A1A /* Extensions */ = {
+ isa = PBXGroup;
+ children = (
+ 1000000000000000000007AC /* ConcreteExtensionField.h */,
+ 100000000000000000000A0A /* ExtendableMessage.h */,
+ 100000000000000000000A0E /* ExtendableMessage_Builder.h */,
+ 100000000000000000000A13 /* ExtensionField.h */,
+ 100000000000000000000A15 /* ExtensionRegistry.h */,
+ 100000000000000000000F3E /* MutableExtensionRegistry.h */,
+ 1000000000000000000007AE /* ConcreteExtensionField.m */,
+ 100000000000000000000A0B /* ExtendableMessage.m */,
+ 100000000000000000000A10 /* ExtendableMessage_Builder.m */,
+ 100000000000000000000A16 /* ExtensionRegistry.m */,
+ 100000000000000000000F40 /* MutableExtensionRegistry.m */,
+ );
+ name = Extensions;
+ sourceTree = "<group>";
+ };
+ 100000000000000000000A7A /* Fields */ = {
+ isa = PBXGroup;
+ children = (
+ 100000000000000000000A76 /* Field.h */,
+ 100000000000000000000F44 /* MutableField.h */,
+ 100000000000000000001C2C /* UnknownFieldSet.h */,
+ 100000000000000000001C36 /* UnknownFieldSet_Builder.h */,
+ 100000000000000000000A77 /* Field.m */,
+ 100000000000000000000F45 /* MutableField.m */,
+ 100000000000000000001C2D /* UnknownFieldSet.m */,
+ 100000000000000000001C37 /* UnknownFieldSet_Builder.m */,
+ );
+ name = Fields;
+ sourceTree = "<group>";
+ };
+ 100000000000000000000B8B /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1000000000000000000016A8 /* SenTestingKit.framework */,
+ 100000000000000000000AAF /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 100000000000000000000BA3 /* GeneratedMessage */ = {
+ isa = PBXGroup;
+ children = (
+ 100000000000000000000BA4 /* GeneratedMessage.h */,
+ 100000000000000000000BAB /* GeneratedMessage_Builder.h */,
+ 100000000000000000000BA5 /* GeneratedMessage.m */,
+ 100000000000000000000BAC /* GeneratedMessage_Builder.m */,
+ );
+ name = GeneratedMessage;
+ sourceTree = "<group>";
+ };
+ 100000000000000000000BFD /* IO */ = {
+ isa = PBXGroup;
+ children = (
+ 100000000000000000000699 /* CodedInputStream.h */,
+ 1000000000000000000006A4 /* CodedOutputStream.h */,
+ 100000000000000000001A8D /* TextFormat.h */,
+ 100000000000000000001C94 /* WireFormat.h */,
+ 10000000000000000000069A /* CodedInputStream.m */,
+ 1000000000000000000006A5 /* CodedOutputStream.m */,
+ 100000000000000000001A8E /* TextFormat.m */,
+ 100000000000000000001C95 /* WireFormat.m */,
+ );
+ name = IO;
+ sourceTree = "<group>";
+ };
+ 100000000000000000000EBF /* Messages */ = {
+ isa = PBXGroup;
+ children = (
+ 1000000000000000000003C7 /* AbstractMessage.h */,
+ 1000000000000000000003CB /* AbstractMessage_Builder.h */,
+ 100000000000000000000E96 /* Message.h */,
+ 100000000000000000000EBE /* Message_Builder.h */,
+ 1000000000000000000003C8 /* AbstractMessage.m */,
+ 1000000000000000000003CC /* AbstractMessage_Builder.m */,
+ );
+ name = Messages;
+ sourceTree = "<group>";
+ };
+ 10000000000000000000108F /* Other Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 10000000000000000000148F /* ProtocolBuffers_Prefix.pch */,
+ 100000000000000000000586 /* Bootstrap.h */,
+ 100000000000000000000A9D /* ForwardDeclarations.h */,
+ 10000000000000000000148C /* ProtocolBuffers.h */,
+ );
+ name = "Other Sources";
+ path = ../protobuf/objectivec;
+ sourceTree = "<group>";
+ };
+ 100000000000000000001469 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 100000000000000000001ECF /* libProtocolBuffers.a */,
+ 100000000000000000001C15 /* UnitTests.octest */,
+ 1000000000000000000007A4 /* CommandLineTests.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 1000000000000000000015EC /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 10000000000000000000148A /* ProtocolBuffers-Info.plist */,
+ 100000000000000000001C13 /* UnitTests-Info.plist */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 100000000000000000001A86 /* Tests */ = {
+ isa = PBXGroup;
+ children = (
+ 10000000000000000000069E /* CodedInputStreamTests.h */,
+ 1000000000000000000006A1 /* CodedOuputStreamTests.h */,
+ 100000000000000000000819 /* CoreTests.h */,
+ 100000000000000000000BA8 /* GeneratedMessageTests.h */,
+ 100000000000000000000E9A /* MessageTests.h */,
+ 100000000000000000000F06 /* MicroTest.h */,
+ 10000000000000000000172A /* SmallBlockInputStream.h */,
+ 100000000000000000001A81 /* TestUtilities.h */,
+ 100000000000000000001C19 /* Unittest.pb.h */,
+ 100000000000000000001C1E /* UnittestEmbedOptimizeFor.pb.h */,
+ 100000000000000000001C21 /* UnittestImport.pb.h */,
+ 100000000000000000001C26 /* UnittestMset.pb.h */,
+ 100000000000000000001C29 /* UnittestOptimizeFor.pb.h */,
+ 100000000000000000001C31 /* UnknownFieldSetTest.h */,
+ 100000000000000000001C64 /* UtilitiesTests.h */,
+ 100000000000000000001C98 /* WireFormatTests.h */,
+ 10000000000000000000069F /* CodedInputStreamTests.m */,
+ 1000000000000000000006A2 /* CodedOuputStreamTests.m */,
+ 10000000000000000000081A /* CoreTests.m */,
+ 100000000000000000000BA9 /* GeneratedMessageTests.m */,
+ 100000000000000000000E9B /* MessageTests.m */,
+ 100000000000000000000F07 /* MicroTest.m */,
+ 10000000000000000000172B /* SmallBlockInputStream.m */,
+ 100000000000000000001A82 /* TestUtilities.m */,
+ 100000000000000000001C1A /* Unittest.pb.m */,
+ 100000000000000000001C1F /* UnittestEmbedOptimizeFor.pb.m */,
+ 100000000000000000001C22 /* UnittestImport.pb.m */,
+ 100000000000000000001C27 /* UnittestMset.pb.m */,
+ 100000000000000000001C2A /* UnittestOptimizeFor.pb.m */,
+ 100000000000000000001C32 /* UnknownFieldSetTest.m */,
+ 100000000000000000001C65 /* UtilitiesTests.m */,
+ 100000000000000000001C99 /* WireFormatTests.m */,
+ );
+ name = Tests;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 100000000000000000000BD4 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 100000000000000000000F3F /* MutableExtensionRegistry.h in Headers */,
+ 100000000000000000000A14 /* ExtensionField.h in Headers */,
+ 100000000000000000000A0F /* ExtendableMessage_Builder.h in Headers */,
+ 1000000000000000000007AD /* ConcreteExtensionField.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 1000000000000000000007A2 /* CommandLineTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1000000000000000000005F8 /* Build configuration list for PBXNativeTarget "CommandLineTests" */;
+ buildPhases = (
+ 1000000000000000000015F6 /* Resources */,
+ 1000000000000000000017DA /* Sources */,
+ 100000000000000000000B8C /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = CommandLineTests;
+ productName = CommandLineTests;
+ productReference = 1000000000000000000007A4 /* CommandLineTests.app */;
+ productType = "com.apple.product-type.application";
+ };
+ 100000000000000000001489 /* ProtocolBuffers */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 100000000000000000000605 /* Build configuration list for PBXNativeTarget "ProtocolBuffers" */;
+ buildPhases = (
+ 100000000000000000000BD4 /* Headers */,
+ 100000000000000000001791 /* Sources */,
+ 100000000000000000000B8D /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = ProtocolBuffers;
+ productName = "ProtocolBuffers-iPhoneDevice";
+ productReference = 100000000000000000001ECF /* libProtocolBuffers.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+ 100000000000000000001C12 /* UnitTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 100000000000000000000611 /* Build configuration list for PBXNativeTarget "UnitTests" */;
+ buildPhases = (
+ 1000000000000000000015F7 /* Resources */,
+ 1000000000000000000017DB /* Sources */,
+ 100000000000000000000B8A /* Frameworks */,
+ 10000000000000000000170D /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 100000000000000000001388 /* PBXTargetDependency */,
+ );
+ name = UnitTests;
+ productName = UnitTests;
+ productReference = 100000000000000000001C15 /* UnitTests.octest */;
+ productType = "com.apple.product-type.bundle";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 100000000000000000001487 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 10000000000000000000065D /* Build configuration list for PBXProject "ProtocolBuffers" */;
+ compatibilityVersion = "Xcode 3.1";
+ hasScannedForEncodings = 1;
+ mainGroup = 10000000000000000000087A /* CustomTemplate */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 100000000000000000001489 /* ProtocolBuffers */,
+ 100000000000000000001C12 /* UnitTests */,
+ 1000000000000000000007A2 /* CommandLineTests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 1000000000000000000015F6 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1000000000000000000015F7 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 10000000000000000000170D /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 100000000000000000001791 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1000000000000000000003C9 /* AbstractMessage.m in Sources */,
+ 1000000000000000000003CD /* AbstractMessage_Builder.m in Sources */,
+ 10000000000000000000069D /* CodedInputStream.m in Sources */,
+ 1000000000000000000006A6 /* CodedOutputStream.m in Sources */,
+ 100000000000000000000A0C /* ExtendableMessage.m in Sources */,
+ 100000000000000000000A19 /* ExtensionRegistry.m in Sources */,
+ 100000000000000000000A78 /* Field.m in Sources */,
+ 100000000000000000000BA6 /* GeneratedMessage.m in Sources */,
+ 100000000000000000000BAD /* GeneratedMessage_Builder.m in Sources */,
+ 100000000000000000000F46 /* MutableField.m in Sources */,
+ 100000000000000000001A8F /* TextFormat.m in Sources */,
+ 100000000000000000001C30 /* UnknownFieldSet.m in Sources */,
+ 100000000000000000001C38 /* UnknownFieldSet_Builder.m in Sources */,
+ 100000000000000000001C62 /* Utilities.m in Sources */,
+ 100000000000000000001C96 /* WireFormat.m in Sources */,
+ 100000000000000000000F43 /* MutableExtensionRegistry.m in Sources */,
+ 100000000000000000000A11 /* ExtendableMessage_Builder.m in Sources */,
+ 1000000000000000000007B1 /* ConcreteExtensionField.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1000000000000000000017DA /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 100000000000000000001C9B /* WireFormatTests.m in Sources */,
+ 100000000000000000001A84 /* TestUtilities.m in Sources */,
+ 100000000000000000001C34 /* UnknownFieldSetTest.m in Sources */,
+ 100000000000000000001C24 /* UnittestImport.pb.m in Sources */,
+ 100000000000000000001C1C /* Unittest.pb.m in Sources */,
+ 100000000000000000000E9D /* MessageTests.m in Sources */,
+ 1000000000000000000003CA /* AbstractMessage.m in Sources */,
+ 1000000000000000000003CE /* AbstractMessage_Builder.m in Sources */,
+ 10000000000000000000069C /* CodedInputStream.m in Sources */,
+ 1000000000000000000006A7 /* CodedOutputStream.m in Sources */,
+ 100000000000000000000A0D /* ExtendableMessage.m in Sources */,
+ 100000000000000000000A18 /* ExtensionRegistry.m in Sources */,
+ 100000000000000000000A79 /* Field.m in Sources */,
+ 100000000000000000000BA7 /* GeneratedMessage.m in Sources */,
+ 100000000000000000000BAE /* GeneratedMessage_Builder.m in Sources */,
+ 100000000000000000000F47 /* MutableField.m in Sources */,
+ 100000000000000000001A90 /* TextFormat.m in Sources */,
+ 100000000000000000001C2F /* UnknownFieldSet.m in Sources */,
+ 100000000000000000001C39 /* UnknownFieldSet_Builder.m in Sources */,
+ 100000000000000000001C63 /* Utilities.m in Sources */,
+ 100000000000000000001C97 /* WireFormat.m in Sources */,
+ 100000000000000000000F42 /* MutableExtensionRegistry.m in Sources */,
+ 100000000000000000000A12 /* ExtendableMessage_Builder.m in Sources */,
+ 1000000000000000000007B0 /* ConcreteExtensionField.m in Sources */,
+ 100000000000000000000E31 /* Main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1000000000000000000017DB /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1000000000000000000006A0 /* CodedInputStreamTests.m in Sources */,
+ 1000000000000000000006A3 /* CodedOuputStreamTests.m in Sources */,
+ 10000000000000000000081B /* CoreTests.m in Sources */,
+ 100000000000000000000BAA /* GeneratedMessageTests.m in Sources */,
+ 100000000000000000000E9C /* MessageTests.m in Sources */,
+ 100000000000000000000F08 /* MicroTest.m in Sources */,
+ 10000000000000000000172C /* SmallBlockInputStream.m in Sources */,
+ 100000000000000000001A83 /* TestUtilities.m in Sources */,
+ 100000000000000000001C1D /* Unittest.pb.m in Sources */,
+ 100000000000000000001C20 /* UnittestEmbedOptimizeFor.pb.m in Sources */,
+ 100000000000000000001C25 /* UnittestImport.pb.m in Sources */,
+ 100000000000000000001C28 /* UnittestMset.pb.m in Sources */,
+ 100000000000000000001C2B /* UnittestOptimizeFor.pb.m in Sources */,
+ 100000000000000000001C35 /* UnknownFieldSetTest.m in Sources */,
+ 100000000000000000001C66 /* UtilitiesTests.m in Sources */,
+ 100000000000000000001C9A /* WireFormatTests.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 100000000000000000001388 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 100000000000000000001489 /* ProtocolBuffers */;
+ targetProxy = 100000000000000000001221 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 100000000000000000000993 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h";
+ INFOPLIST_FILE = "UnitTests-Info.plist";
+ INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Cocoa,
+ "-framework",
+ SenTestingKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = UnitTests;
+ SDKROOT = "";
+ WRAPPER_EXTENSION = octest;
+ };
+ name = Debug;
+ };
+ 100000000000000000000995 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_FAST_MATH = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREFIX_HEADER = "${PROJECT_DIR}/../protobuf/objectivec/ProtocolBuffers_Prefix.pch";
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_UNROLL_LOOPS = YES;
+ ONLY_ACTIVE_ARCH = NO;
+ VALID_ARCHS = "i386 armv6 armv7";
+ };
+ name = Debug;
+ };
+ 100000000000000000000997 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
+ );
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = ProtocolBuffers_Prefix.pch;
+ GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+ INFOPLIST_FILE = "UnitTests-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ "-ObjC",
+ "-framework",
+ SenTestingKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = CommandLineTests;
+ SDKROOT = macosx10.5;
+ };
+ name = Debug;
+ };
+ 100000000000000000000998 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = ProtocolBuffers_Prefix.pch;
+ GCC_TREAT_WARNINGS_AS_ERRORS = YES;
+ GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_MISSING_PARENTHESES = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-all_load",
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = "$(PROJECT_NAME)";
+ SDKROOT = iphonesimulator3.0;
+ };
+ name = Debug;
+ };
+ 1000000000000000000015CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(DEVELOPER_FRAMEWORKS_DIR)\"",
+ );
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = ProtocolBuffers_Prefix.pch;
+ GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+ INFOPLIST_FILE = "UnitTests-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ "-ObjC",
+ "-framework",
+ SenTestingKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = CommandLineTests;
+ SDKROOT = macosx10.5;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ 1000000000000000000015CF /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h";
+ INFOPLIST_FILE = "UnitTests-Info.plist";
+ INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Cocoa,
+ "-framework",
+ SenTestingKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = UnitTests;
+ WRAPPER_EXTENSION = octest;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+ 1000000000000000000015D0 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_FAST_MATH = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREFIX_HEADER = "${PROJECT_DIR}/../protobuf/objectivec/ProtocolBuffers_Prefix.pch";
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_UNROLL_LOOPS = YES;
+ ONLY_ACTIVE_ARCH = NO;
+ VALID_ARCHS = "i386 armv6 armv7";
+ };
+ name = Release;
+ };
+ 1000000000000000000015D1 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = ProtocolBuffers_Prefix.pch;
+ GCC_TREAT_WARNINGS_AS_ERRORS = YES;
+ GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_MISSING_PARENTHESES = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ OTHER_LDFLAGS = (
+ "-ObjC",
+ "-all_load",
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = "$(PROJECT_NAME)";
+ SDKROOT = iphonesimulator3.0;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1000000000000000000005F8 /* Build configuration list for PBXNativeTarget "CommandLineTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 100000000000000000000997 /* Debug */,
+ 1000000000000000000015CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 100000000000000000000605 /* Build configuration list for PBXNativeTarget "ProtocolBuffers" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 100000000000000000000995 /* Debug */,
+ 1000000000000000000015D0 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 100000000000000000000611 /* Build configuration list for PBXNativeTarget "UnitTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 100000000000000000000993 /* Debug */,
+ 1000000000000000000015CF /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 10000000000000000000065D /* Build configuration list for PBXProject "ProtocolBuffers" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 100000000000000000000998 /* Debug */,
+ 1000000000000000000015D1 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 100000000000000000001487 /* Project object */;
+}
diff --git a/3rdparty/speex b/3rdparty/speex
new file mode 160000
+Subproject a6d05eb5ff9d5062852cdf7df574bec728921ef
diff --git a/3rdparty/speexbuild/Speex.xcodeproj/project.pbxproj b/3rdparty/speexbuild/Speex.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..8f4e635
--- /dev/null
+++ b/3rdparty/speexbuild/Speex.xcodeproj/project.pbxproj
@@ -0,0 +1,575 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2888698810F165260060BD16 /* _kiss_fft_guts.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692710F165260060BD16 /* _kiss_fft_guts.h */; };
+ 2888698910F165260060BD16 /* arch.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692810F165260060BD16 /* arch.h */; };
+ 2888698A10F165260060BD16 /* bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692910F165260060BD16 /* bfin.h */; };
+ 2888698B10F165260060BD16 /* bits.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888692A10F165260060BD16 /* bits.c */; };
+ 2888698D10F165260060BD16 /* cb_search_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692C10F165260060BD16 /* cb_search_arm4.h */; };
+ 2888698E10F165260060BD16 /* cb_search_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692D10F165260060BD16 /* cb_search_bfin.h */; };
+ 2888698F10F165260060BD16 /* cb_search_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888692E10F165260060BD16 /* cb_search_sse.h */; };
+ 2888699010F165260060BD16 /* cb_search.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888692F10F165260060BD16 /* cb_search.c */; };
+ 2888699110F165260060BD16 /* cb_search.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693010F165260060BD16 /* cb_search.h */; };
+ 2888699310F165260060BD16 /* exc_5_64_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693210F165260060BD16 /* exc_5_64_table.c */; };
+ 2888699410F165260060BD16 /* exc_5_256_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693310F165260060BD16 /* exc_5_256_table.c */; };
+ 2888699510F165260060BD16 /* exc_8_128_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693410F165260060BD16 /* exc_8_128_table.c */; };
+ 2888699610F165260060BD16 /* exc_10_16_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693510F165260060BD16 /* exc_10_16_table.c */; };
+ 2888699710F165260060BD16 /* exc_10_32_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693610F165260060BD16 /* exc_10_32_table.c */; };
+ 2888699810F165260060BD16 /* exc_20_32_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693710F165260060BD16 /* exc_20_32_table.c */; };
+ 2888699A10F165260060BD16 /* fftwrap.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693910F165260060BD16 /* fftwrap.h */; };
+ 2888699C10F165260060BD16 /* filterbank.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693B10F165260060BD16 /* filterbank.h */; };
+ 2888699D10F165260060BD16 /* filters_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693C10F165260060BD16 /* filters_arm4.h */; };
+ 2888699E10F165260060BD16 /* filters_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693D10F165260060BD16 /* filters_bfin.h */; };
+ 2888699F10F165260060BD16 /* filters_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888693E10F165260060BD16 /* filters_sse.h */; };
+ 288869A010F165260060BD16 /* filters.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888693F10F165260060BD16 /* filters.c */; };
+ 288869A110F165260060BD16 /* filters.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694010F165260060BD16 /* filters.h */; };
+ 288869A210F165260060BD16 /* fixed_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694110F165260060BD16 /* fixed_arm4.h */; };
+ 288869A310F165260060BD16 /* fixed_arm5e.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694210F165260060BD16 /* fixed_arm5e.h */; };
+ 288869A410F165260060BD16 /* fixed_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694310F165260060BD16 /* fixed_bfin.h */; };
+ 288869A510F165260060BD16 /* fixed_debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694410F165260060BD16 /* fixed_debug.h */; };
+ 288869A610F165260060BD16 /* fixed_generic.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694510F165260060BD16 /* fixed_generic.h */; };
+ 288869A710F165260060BD16 /* gain_table_lbr.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694610F165260060BD16 /* gain_table_lbr.c */; };
+ 288869A810F165260060BD16 /* gain_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694710F165260060BD16 /* gain_table.c */; };
+ 288869A910F165260060BD16 /* hexc_10_32_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694810F165260060BD16 /* hexc_10_32_table.c */; };
+ 288869AA10F165260060BD16 /* hexc_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694910F165260060BD16 /* hexc_table.c */; };
+ 288869AB10F165260060BD16 /* high_lsp_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694A10F165260060BD16 /* high_lsp_tables.c */; };
+ 288869AD10F165260060BD16 /* kiss_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694C10F165260060BD16 /* kiss_fft.c */; };
+ 288869AE10F165260060BD16 /* kiss_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694D10F165260060BD16 /* kiss_fft.h */; };
+ 288869AF10F165260060BD16 /* kiss_fftr.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888694E10F165260060BD16 /* kiss_fftr.c */; };
+ 288869B010F165260060BD16 /* kiss_fftr.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888694F10F165260060BD16 /* kiss_fftr.h */; };
+ 288869B110F165260060BD16 /* lpc_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695010F165260060BD16 /* lpc_bfin.h */; };
+ 288869B210F165260060BD16 /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888695110F165260060BD16 /* lpc.c */; };
+ 288869B310F165260060BD16 /* lpc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695210F165260060BD16 /* lpc.h */; };
+ 288869B410F165260060BD16 /* lsp_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695310F165260060BD16 /* lsp_bfin.h */; };
+ 288869B510F165260060BD16 /* lsp_tables_nb.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888695410F165260060BD16 /* lsp_tables_nb.c */; };
+ 288869B610F165260060BD16 /* lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888695510F165260060BD16 /* lsp.c */; };
+ 288869B710F165260060BD16 /* lsp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695610F165260060BD16 /* lsp.h */; };
+ 288869B810F165260060BD16 /* ltp_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695710F165260060BD16 /* ltp_arm4.h */; };
+ 288869B910F165260060BD16 /* ltp_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695810F165260060BD16 /* ltp_bfin.h */; };
+ 288869BA10F165260060BD16 /* ltp_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695910F165260060BD16 /* ltp_sse.h */; };
+ 288869BB10F165260060BD16 /* ltp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888695A10F165260060BD16 /* ltp.c */; };
+ 288869BC10F165260060BD16 /* ltp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695B10F165260060BD16 /* ltp.h */; };
+ 288869BD10F165260060BD16 /* math_approx.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695D10F165260060BD16 /* math_approx.h */; };
+ 288869BF10F165260060BD16 /* misc_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888695F10F165260060BD16 /* misc_bfin.h */; };
+ 288869C010F165260060BD16 /* modes_wb.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696010F165260060BD16 /* modes_wb.c */; };
+ 288869C110F165260060BD16 /* modes.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696110F165260060BD16 /* modes.c */; };
+ 288869C210F165260060BD16 /* modes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696210F165260060BD16 /* modes.h */; };
+ 288869C310F165260060BD16 /* nb_celp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696310F165260060BD16 /* nb_celp.c */; };
+ 288869C410F165260060BD16 /* nb_celp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696410F165260060BD16 /* nb_celp.h */; };
+ 288869C510F165260060BD16 /* os_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696510F165260060BD16 /* os_support.h */; };
+ 288869C710F165260060BD16 /* pseudofloat.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696710F165260060BD16 /* pseudofloat.h */; };
+ 288869C810F165260060BD16 /* quant_lsp_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696810F165260060BD16 /* quant_lsp_bfin.h */; };
+ 288869C910F165260060BD16 /* quant_lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696910F165260060BD16 /* quant_lsp.c */; };
+ 288869CA10F165260060BD16 /* quant_lsp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696A10F165260060BD16 /* quant_lsp.h */; };
+ 288869CB10F165260060BD16 /* resample_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696B10F165260060BD16 /* resample_sse.h */; };
+ 288869CD10F165260060BD16 /* sb_celp.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696D10F165260060BD16 /* sb_celp.c */; };
+ 288869CE10F165260060BD16 /* sb_celp.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888696E10F165260060BD16 /* sb_celp.h */; };
+ 288869CF10F165260060BD16 /* scal.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888696F10F165260060BD16 /* scal.c */; };
+ 288869D110F165260060BD16 /* smallft.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888697110F165260060BD16 /* smallft.h */; };
+ 288869D210F165260060BD16 /* speex_callbacks.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697210F165260060BD16 /* speex_callbacks.c */; };
+ 288869D310F165260060BD16 /* speex_header.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697310F165260060BD16 /* speex_header.c */; };
+ 288869D410F165260060BD16 /* speex.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697410F165260060BD16 /* speex.c */; };
+ 288869D510F165260060BD16 /* stack_alloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888697510F165260060BD16 /* stack_alloc.h */; };
+ 288869D610F165260060BD16 /* stereo.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697610F165260060BD16 /* stereo.c */; };
+ 288869DE10F165260060BD16 /* vbr.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888697E10F165260060BD16 /* vbr.c */; };
+ 288869DF10F165260060BD16 /* vbr.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888697F10F165260060BD16 /* vbr.h */; };
+ 288869E010F165260060BD16 /* vorbis_psy.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888698010F165260060BD16 /* vorbis_psy.c */; };
+ 288869E110F165260060BD16 /* vorbis_psy.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698110F165260060BD16 /* vorbis_psy.h */; };
+ 288869E210F165260060BD16 /* vq_arm4.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698210F165260060BD16 /* vq_arm4.h */; };
+ 288869E310F165260060BD16 /* vq_bfin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698310F165260060BD16 /* vq_bfin.h */; };
+ 288869E410F165260060BD16 /* vq_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698410F165260060BD16 /* vq_sse.h */; };
+ 288869E510F165260060BD16 /* vq.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888698510F165260060BD16 /* vq.c */; };
+ 288869E610F165260060BD16 /* vq.h in Headers */ = {isa = PBXBuildFile; fileRef = 2888698610F165260060BD16 /* vq.h */; };
+ 288869E710F165260060BD16 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 2888698710F165260060BD16 /* window.c */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 2888692710F165260060BD16 /* _kiss_fft_guts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = _kiss_fft_guts.h; path = ../speex/libspeex/_kiss_fft_guts.h; sourceTree = SOURCE_ROOT; };
+ 2888692810F165260060BD16 /* arch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = arch.h; path = ../speex/libspeex/arch.h; sourceTree = SOURCE_ROOT; };
+ 2888692910F165260060BD16 /* bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bfin.h; path = ../speex/libspeex/bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888692A10F165260060BD16 /* bits.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bits.c; path = ../speex/libspeex/bits.c; sourceTree = SOURCE_ROOT; };
+ 2888692B10F165260060BD16 /* buffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = buffer.c; path = ../speex/libspeex/buffer.c; sourceTree = SOURCE_ROOT; };
+ 2888692C10F165260060BD16 /* cb_search_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cb_search_arm4.h; path = ../speex/libspeex/cb_search_arm4.h; sourceTree = SOURCE_ROOT; };
+ 2888692D10F165260060BD16 /* cb_search_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cb_search_bfin.h; path = ../speex/libspeex/cb_search_bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888692E10F165260060BD16 /* cb_search_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cb_search_sse.h; path = ../speex/libspeex/cb_search_sse.h; sourceTree = SOURCE_ROOT; };
+ 2888692F10F165260060BD16 /* cb_search.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cb_search.c; path = ../speex/libspeex/cb_search.c; sourceTree = SOURCE_ROOT; };
+ 2888693010F165260060BD16 /* cb_search.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cb_search.h; path = ../speex/libspeex/cb_search.h; sourceTree = SOURCE_ROOT; };
+ 2888693110F165260060BD16 /* echo_diagnostic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = echo_diagnostic.m; path = ../speex/libspeex/echo_diagnostic.m; sourceTree = SOURCE_ROOT; };
+ 2888693210F165260060BD16 /* exc_5_64_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_5_64_table.c; path = ../speex/libspeex/exc_5_64_table.c; sourceTree = SOURCE_ROOT; };
+ 2888693310F165260060BD16 /* exc_5_256_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_5_256_table.c; path = ../speex/libspeex/exc_5_256_table.c; sourceTree = SOURCE_ROOT; };
+ 2888693410F165260060BD16 /* exc_8_128_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_8_128_table.c; path = ../speex/libspeex/exc_8_128_table.c; sourceTree = SOURCE_ROOT; };
+ 2888693510F165260060BD16 /* exc_10_16_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_10_16_table.c; path = ../speex/libspeex/exc_10_16_table.c; sourceTree = SOURCE_ROOT; };
+ 2888693610F165260060BD16 /* exc_10_32_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_10_32_table.c; path = ../speex/libspeex/exc_10_32_table.c; sourceTree = SOURCE_ROOT; };
+ 2888693710F165260060BD16 /* exc_20_32_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exc_20_32_table.c; path = ../speex/libspeex/exc_20_32_table.c; sourceTree = SOURCE_ROOT; };
+ 2888693810F165260060BD16 /* fftwrap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fftwrap.c; path = ../speex/libspeex/fftwrap.c; sourceTree = SOURCE_ROOT; };
+ 2888693910F165260060BD16 /* fftwrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fftwrap.h; path = ../speex/libspeex/fftwrap.h; sourceTree = SOURCE_ROOT; };
+ 2888693A10F165260060BD16 /* filterbank.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filterbank.c; path = ../speex/libspeex/filterbank.c; sourceTree = SOURCE_ROOT; };
+ 2888693B10F165260060BD16 /* filterbank.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filterbank.h; path = ../speex/libspeex/filterbank.h; sourceTree = SOURCE_ROOT; };
+ 2888693C10F165260060BD16 /* filters_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filters_arm4.h; path = ../speex/libspeex/filters_arm4.h; sourceTree = SOURCE_ROOT; };
+ 2888693D10F165260060BD16 /* filters_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filters_bfin.h; path = ../speex/libspeex/filters_bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888693E10F165260060BD16 /* filters_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filters_sse.h; path = ../speex/libspeex/filters_sse.h; sourceTree = SOURCE_ROOT; };
+ 2888693F10F165260060BD16 /* filters.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filters.c; path = ../speex/libspeex/filters.c; sourceTree = SOURCE_ROOT; };
+ 2888694010F165260060BD16 /* filters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filters.h; path = ../speex/libspeex/filters.h; sourceTree = SOURCE_ROOT; };
+ 2888694110F165260060BD16 /* fixed_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_arm4.h; path = ../speex/libspeex/fixed_arm4.h; sourceTree = SOURCE_ROOT; };
+ 2888694210F165260060BD16 /* fixed_arm5e.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_arm5e.h; path = ../speex/libspeex/fixed_arm5e.h; sourceTree = SOURCE_ROOT; };
+ 2888694310F165260060BD16 /* fixed_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_bfin.h; path = ../speex/libspeex/fixed_bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888694410F165260060BD16 /* fixed_debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_debug.h; path = ../speex/libspeex/fixed_debug.h; sourceTree = SOURCE_ROOT; };
+ 2888694510F165260060BD16 /* fixed_generic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fixed_generic.h; path = ../speex/libspeex/fixed_generic.h; sourceTree = SOURCE_ROOT; };
+ 2888694610F165260060BD16 /* gain_table_lbr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gain_table_lbr.c; path = ../speex/libspeex/gain_table_lbr.c; sourceTree = SOURCE_ROOT; };
+ 2888694710F165260060BD16 /* gain_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gain_table.c; path = ../speex/libspeex/gain_table.c; sourceTree = SOURCE_ROOT; };
+ 2888694810F165260060BD16 /* hexc_10_32_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hexc_10_32_table.c; path = ../speex/libspeex/hexc_10_32_table.c; sourceTree = SOURCE_ROOT; };
+ 2888694910F165260060BD16 /* hexc_table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hexc_table.c; path = ../speex/libspeex/hexc_table.c; sourceTree = SOURCE_ROOT; };
+ 2888694A10F165260060BD16 /* high_lsp_tables.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = high_lsp_tables.c; path = ../speex/libspeex/high_lsp_tables.c; sourceTree = SOURCE_ROOT; };
+ 2888694B10F165260060BD16 /* jitter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jitter.c; path = ../speex/libspeex/jitter.c; sourceTree = SOURCE_ROOT; };
+ 2888694C10F165260060BD16 /* kiss_fft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kiss_fft.c; path = ../speex/libspeex/kiss_fft.c; sourceTree = SOURCE_ROOT; };
+ 2888694D10F165260060BD16 /* kiss_fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kiss_fft.h; path = ../speex/libspeex/kiss_fft.h; sourceTree = SOURCE_ROOT; };
+ 2888694E10F165260060BD16 /* kiss_fftr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = kiss_fftr.c; path = ../speex/libspeex/kiss_fftr.c; sourceTree = SOURCE_ROOT; };
+ 2888694F10F165260060BD16 /* kiss_fftr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kiss_fftr.h; path = ../speex/libspeex/kiss_fftr.h; sourceTree = SOURCE_ROOT; };
+ 2888695010F165260060BD16 /* lpc_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lpc_bfin.h; path = ../speex/libspeex/lpc_bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888695110F165260060BD16 /* lpc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lpc.c; path = ../speex/libspeex/lpc.c; sourceTree = SOURCE_ROOT; };
+ 2888695210F165260060BD16 /* lpc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lpc.h; path = ../speex/libspeex/lpc.h; sourceTree = SOURCE_ROOT; };
+ 2888695310F165260060BD16 /* lsp_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lsp_bfin.h; path = ../speex/libspeex/lsp_bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888695410F165260060BD16 /* lsp_tables_nb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lsp_tables_nb.c; path = ../speex/libspeex/lsp_tables_nb.c; sourceTree = SOURCE_ROOT; };
+ 2888695510F165260060BD16 /* lsp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lsp.c; path = ../speex/libspeex/lsp.c; sourceTree = SOURCE_ROOT; };
+ 2888695610F165260060BD16 /* lsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lsp.h; path = ../speex/libspeex/lsp.h; sourceTree = SOURCE_ROOT; };
+ 2888695710F165260060BD16 /* ltp_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltp_arm4.h; path = ../speex/libspeex/ltp_arm4.h; sourceTree = SOURCE_ROOT; };
+ 2888695810F165260060BD16 /* ltp_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltp_bfin.h; path = ../speex/libspeex/ltp_bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888695910F165260060BD16 /* ltp_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltp_sse.h; path = ../speex/libspeex/ltp_sse.h; sourceTree = SOURCE_ROOT; };
+ 2888695A10F165260060BD16 /* ltp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ltp.c; path = ../speex/libspeex/ltp.c; sourceTree = SOURCE_ROOT; };
+ 2888695B10F165260060BD16 /* ltp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ltp.h; path = ../speex/libspeex/ltp.h; sourceTree = SOURCE_ROOT; };
+ 2888695C10F165260060BD16 /* Makefile.am */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Makefile.am; path = ../speex/libspeex/Makefile.am; sourceTree = SOURCE_ROOT; };
+ 2888695D10F165260060BD16 /* math_approx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = math_approx.h; path = ../speex/libspeex/math_approx.h; sourceTree = SOURCE_ROOT; };
+ 2888695E10F165260060BD16 /* mdf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mdf.c; path = ../speex/libspeex/mdf.c; sourceTree = SOURCE_ROOT; };
+ 2888695F10F165260060BD16 /* misc_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = misc_bfin.h; path = ../speex/libspeex/misc_bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888696010F165260060BD16 /* modes_wb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = modes_wb.c; path = ../speex/libspeex/modes_wb.c; sourceTree = SOURCE_ROOT; };
+ 2888696110F165260060BD16 /* modes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = modes.c; path = ../speex/libspeex/modes.c; sourceTree = SOURCE_ROOT; };
+ 2888696210F165260060BD16 /* modes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = modes.h; path = ../speex/libspeex/modes.h; sourceTree = SOURCE_ROOT; };
+ 2888696310F165260060BD16 /* nb_celp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = nb_celp.c; path = ../speex/libspeex/nb_celp.c; sourceTree = SOURCE_ROOT; };
+ 2888696410F165260060BD16 /* nb_celp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = nb_celp.h; path = ../speex/libspeex/nb_celp.h; sourceTree = SOURCE_ROOT; };
+ 2888696510F165260060BD16 /* os_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_support.h; path = ../speex/libspeex/os_support.h; sourceTree = SOURCE_ROOT; };
+ 2888696610F165260060BD16 /* preprocess.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = preprocess.c; path = ../speex/libspeex/preprocess.c; sourceTree = SOURCE_ROOT; };
+ 2888696710F165260060BD16 /* pseudofloat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pseudofloat.h; path = ../speex/libspeex/pseudofloat.h; sourceTree = SOURCE_ROOT; };
+ 2888696810F165260060BD16 /* quant_lsp_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = quant_lsp_bfin.h; path = ../speex/libspeex/quant_lsp_bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888696910F165260060BD16 /* quant_lsp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = quant_lsp.c; path = ../speex/libspeex/quant_lsp.c; sourceTree = SOURCE_ROOT; };
+ 2888696A10F165260060BD16 /* quant_lsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = quant_lsp.h; path = ../speex/libspeex/quant_lsp.h; sourceTree = SOURCE_ROOT; };
+ 2888696B10F165260060BD16 /* resample_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = resample_sse.h; path = ../speex/libspeex/resample_sse.h; sourceTree = SOURCE_ROOT; };
+ 2888696C10F165260060BD16 /* resample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = resample.c; path = ../speex/libspeex/resample.c; sourceTree = SOURCE_ROOT; };
+ 2888696D10F165260060BD16 /* sb_celp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sb_celp.c; path = ../speex/libspeex/sb_celp.c; sourceTree = SOURCE_ROOT; };
+ 2888696E10F165260060BD16 /* sb_celp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sb_celp.h; path = ../speex/libspeex/sb_celp.h; sourceTree = SOURCE_ROOT; };
+ 2888696F10F165260060BD16 /* scal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = scal.c; path = ../speex/libspeex/scal.c; sourceTree = SOURCE_ROOT; };
+ 2888697010F165260060BD16 /* smallft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = smallft.c; path = ../speex/libspeex/smallft.c; sourceTree = SOURCE_ROOT; };
+ 2888697110F165260060BD16 /* smallft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smallft.h; path = ../speex/libspeex/smallft.h; sourceTree = SOURCE_ROOT; };
+ 2888697210F165260060BD16 /* speex_callbacks.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = speex_callbacks.c; path = ../speex/libspeex/speex_callbacks.c; sourceTree = SOURCE_ROOT; };
+ 2888697310F165260060BD16 /* speex_header.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = speex_header.c; path = ../speex/libspeex/speex_header.c; sourceTree = SOURCE_ROOT; };
+ 2888697410F165260060BD16 /* speex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = speex.c; path = ../speex/libspeex/speex.c; sourceTree = SOURCE_ROOT; };
+ 2888697510F165260060BD16 /* stack_alloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stack_alloc.h; path = ../speex/libspeex/stack_alloc.h; sourceTree = SOURCE_ROOT; };
+ 2888697610F165260060BD16 /* stereo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = stereo.c; path = ../speex/libspeex/stereo.c; sourceTree = SOURCE_ROOT; };
+ 2888697710F165260060BD16 /* testdenoise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testdenoise.c; path = ../speex/libspeex/testdenoise.c; sourceTree = SOURCE_ROOT; };
+ 2888697810F165260060BD16 /* testecho.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testecho.c; path = ../speex/libspeex/testecho.c; sourceTree = SOURCE_ROOT; };
+ 2888697910F165260060BD16 /* testenc_uwb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testenc_uwb.c; path = ../speex/libspeex/testenc_uwb.c; sourceTree = SOURCE_ROOT; };
+ 2888697A10F165260060BD16 /* testenc_wb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testenc_wb.c; path = ../speex/libspeex/testenc_wb.c; sourceTree = SOURCE_ROOT; };
+ 2888697B10F165260060BD16 /* testenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testenc.c; path = ../speex/libspeex/testenc.c; sourceTree = SOURCE_ROOT; };
+ 2888697C10F165260060BD16 /* testjitter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testjitter.c; path = ../speex/libspeex/testjitter.c; sourceTree = SOURCE_ROOT; };
+ 2888697D10F165260060BD16 /* testresample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testresample.c; path = ../speex/libspeex/testresample.c; sourceTree = SOURCE_ROOT; };
+ 2888697E10F165260060BD16 /* vbr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vbr.c; path = ../speex/libspeex/vbr.c; sourceTree = SOURCE_ROOT; };
+ 2888697F10F165260060BD16 /* vbr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vbr.h; path = ../speex/libspeex/vbr.h; sourceTree = SOURCE_ROOT; };
+ 2888698010F165260060BD16 /* vorbis_psy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vorbis_psy.c; path = ../speex/libspeex/vorbis_psy.c; sourceTree = SOURCE_ROOT; };
+ 2888698110F165260060BD16 /* vorbis_psy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vorbis_psy.h; path = ../speex/libspeex/vorbis_psy.h; sourceTree = SOURCE_ROOT; };
+ 2888698210F165260060BD16 /* vq_arm4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq_arm4.h; path = ../speex/libspeex/vq_arm4.h; sourceTree = SOURCE_ROOT; };
+ 2888698310F165260060BD16 /* vq_bfin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq_bfin.h; path = ../speex/libspeex/vq_bfin.h; sourceTree = SOURCE_ROOT; };
+ 2888698410F165260060BD16 /* vq_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq_sse.h; path = ../speex/libspeex/vq_sse.h; sourceTree = SOURCE_ROOT; };
+ 2888698510F165260060BD16 /* vq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vq.c; path = ../speex/libspeex/vq.c; sourceTree = SOURCE_ROOT; };
+ 2888698610F165260060BD16 /* vq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vq.h; path = ../speex/libspeex/vq.h; sourceTree = SOURCE_ROOT; };
+ 2888698710F165260060BD16 /* window.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = window.c; path = ../speex/libspeex/window.c; sourceTree = SOURCE_ROOT; };
+ D2AAC07E0554694100DB518D /* libSpeex.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSpeex.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D2AAC07C0554694100DB518D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 034768DFFF38A50411DB9C8B /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D2AAC07E0554694100DB518D /* libSpeex.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 0867D691FE84028FC02AAC07 /* Speex */ = {
+ isa = PBXGroup;
+ children = (
+ 32C88DFF0371C24200C91783 /* Source */,
+ 034768DFFF38A50411DB9C8B /* Products */,
+ );
+ name = Speex;
+ sourceTree = "<group>";
+ };
+ 32C88DFF0371C24200C91783 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 2888692710F165260060BD16 /* _kiss_fft_guts.h */,
+ 2888692810F165260060BD16 /* arch.h */,
+ 2888692910F165260060BD16 /* bfin.h */,
+ 2888692A10F165260060BD16 /* bits.c */,
+ 2888692B10F165260060BD16 /* buffer.c */,
+ 2888692C10F165260060BD16 /* cb_search_arm4.h */,
+ 2888692D10F165260060BD16 /* cb_search_bfin.h */,
+ 2888692E10F165260060BD16 /* cb_search_sse.h */,
+ 2888692F10F165260060BD16 /* cb_search.c */,
+ 2888693010F165260060BD16 /* cb_search.h */,
+ 2888693110F165260060BD16 /* echo_diagnostic.m */,
+ 2888693210F165260060BD16 /* exc_5_64_table.c */,
+ 2888693310F165260060BD16 /* exc_5_256_table.c */,
+ 2888693410F165260060BD16 /* exc_8_128_table.c */,
+ 2888693510F165260060BD16 /* exc_10_16_table.c */,
+ 2888693610F165260060BD16 /* exc_10_32_table.c */,
+ 2888693710F165260060BD16 /* exc_20_32_table.c */,
+ 2888693810F165260060BD16 /* fftwrap.c */,
+ 2888693910F165260060BD16 /* fftwrap.h */,
+ 2888693A10F165260060BD16 /* filterbank.c */,
+ 2888693B10F165260060BD16 /* filterbank.h */,
+ 2888693C10F165260060BD16 /* filters_arm4.h */,
+ 2888693D10F165260060BD16 /* filters_bfin.h */,
+ 2888693E10F165260060BD16 /* filters_sse.h */,
+ 2888693F10F165260060BD16 /* filters.c */,
+ 2888694010F165260060BD16 /* filters.h */,
+ 2888694110F165260060BD16 /* fixed_arm4.h */,
+ 2888694210F165260060BD16 /* fixed_arm5e.h */,
+ 2888694310F165260060BD16 /* fixed_bfin.h */,
+ 2888694410F165260060BD16 /* fixed_debug.h */,
+ 2888694510F165260060BD16 /* fixed_generic.h */,
+ 2888694610F165260060BD16 /* gain_table_lbr.c */,
+ 2888694710F165260060BD16 /* gain_table.c */,
+ 2888694810F165260060BD16 /* hexc_10_32_table.c */,
+ 2888694910F165260060BD16 /* hexc_table.c */,
+ 2888694A10F165260060BD16 /* high_lsp_tables.c */,
+ 2888694B10F165260060BD16 /* jitter.c */,
+ 2888694C10F165260060BD16 /* kiss_fft.c */,
+ 2888694D10F165260060BD16 /* kiss_fft.h */,
+ 2888694E10F165260060BD16 /* kiss_fftr.c */,
+ 2888694F10F165260060BD16 /* kiss_fftr.h */,
+ 2888695010F165260060BD16 /* lpc_bfin.h */,
+ 2888695110F165260060BD16 /* lpc.c */,
+ 2888695210F165260060BD16 /* lpc.h */,
+ 2888695310F165260060BD16 /* lsp_bfin.h */,
+ 2888695410F165260060BD16 /* lsp_tables_nb.c */,
+ 2888695510F165260060BD16 /* lsp.c */,
+ 2888695610F165260060BD16 /* lsp.h */,
+ 2888695710F165260060BD16 /* ltp_arm4.h */,
+ 2888695810F165260060BD16 /* ltp_bfin.h */,
+ 2888695910F165260060BD16 /* ltp_sse.h */,
+ 2888695A10F165260060BD16 /* ltp.c */,
+ 2888695B10F165260060BD16 /* ltp.h */,
+ 2888695C10F165260060BD16 /* Makefile.am */,
+ 2888695D10F165260060BD16 /* math_approx.h */,
+ 2888695E10F165260060BD16 /* mdf.c */,
+ 2888695F10F165260060BD16 /* misc_bfin.h */,
+ 2888696010F165260060BD16 /* modes_wb.c */,
+ 2888696110F165260060BD16 /* modes.c */,
+ 2888696210F165260060BD16 /* modes.h */,
+ 2888696310F165260060BD16 /* nb_celp.c */,
+ 2888696410F165260060BD16 /* nb_celp.h */,
+ 2888696510F165260060BD16 /* os_support.h */,
+ 2888696610F165260060BD16 /* preprocess.c */,
+ 2888696710F165260060BD16 /* pseudofloat.h */,
+ 2888696810F165260060BD16 /* quant_lsp_bfin.h */,
+ 2888696910F165260060BD16 /* quant_lsp.c */,
+ 2888696A10F165260060BD16 /* quant_lsp.h */,
+ 2888696B10F165260060BD16 /* resample_sse.h */,
+ 2888696C10F165260060BD16 /* resample.c */,
+ 2888696D10F165260060BD16 /* sb_celp.c */,
+ 2888696E10F165260060BD16 /* sb_celp.h */,
+ 2888696F10F165260060BD16 /* scal.c */,
+ 2888697010F165260060BD16 /* smallft.c */,
+ 2888697110F165260060BD16 /* smallft.h */,
+ 2888697210F165260060BD16 /* speex_callbacks.c */,
+ 2888697310F165260060BD16 /* speex_header.c */,
+ 2888697410F165260060BD16 /* speex.c */,
+ 2888697510F165260060BD16 /* stack_alloc.h */,
+ 2888697610F165260060BD16 /* stereo.c */,
+ 2888697710F165260060BD16 /* testdenoise.c */,
+ 2888697810F165260060BD16 /* testecho.c */,
+ 2888697910F165260060BD16 /* testenc_uwb.c */,
+ 2888697A10F165260060BD16 /* testenc_wb.c */,
+ 2888697B10F165260060BD16 /* testenc.c */,
+ 2888697C10F165260060BD16 /* testjitter.c */,
+ 2888697D10F165260060BD16 /* testresample.c */,
+ 2888697E10F165260060BD16 /* vbr.c */,
+ 2888697F10F165260060BD16 /* vbr.h */,
+ 2888698010F165260060BD16 /* vorbis_psy.c */,
+ 2888698110F165260060BD16 /* vorbis_psy.h */,
+ 2888698210F165260060BD16 /* vq_arm4.h */,
+ 2888698310F165260060BD16 /* vq_bfin.h */,
+ 2888698410F165260060BD16 /* vq_sse.h */,
+ 2888698510F165260060BD16 /* vq.c */,
+ 2888698610F165260060BD16 /* vq.h */,
+ 2888698710F165260060BD16 /* window.c */,
+ );
+ name = Source;
+ path = ../speex/libspeex;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D2AAC07A0554694100DB518D /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2888698810F165260060BD16 /* _kiss_fft_guts.h in Headers */,
+ 2888698910F165260060BD16 /* arch.h in Headers */,
+ 2888698A10F165260060BD16 /* bfin.h in Headers */,
+ 2888698D10F165260060BD16 /* cb_search_arm4.h in Headers */,
+ 2888698E10F165260060BD16 /* cb_search_bfin.h in Headers */,
+ 2888698F10F165260060BD16 /* cb_search_sse.h in Headers */,
+ 2888699110F165260060BD16 /* cb_search.h in Headers */,
+ 2888699A10F165260060BD16 /* fftwrap.h in Headers */,
+ 2888699C10F165260060BD16 /* filterbank.h in Headers */,
+ 2888699D10F165260060BD16 /* filters_arm4.h in Headers */,
+ 2888699E10F165260060BD16 /* filters_bfin.h in Headers */,
+ 2888699F10F165260060BD16 /* filters_sse.h in Headers */,
+ 288869A110F165260060BD16 /* filters.h in Headers */,
+ 288869A210F165260060BD16 /* fixed_arm4.h in Headers */,
+ 288869A310F165260060BD16 /* fixed_arm5e.h in Headers */,
+ 288869A410F165260060BD16 /* fixed_bfin.h in Headers */,
+ 288869A510F165260060BD16 /* fixed_debug.h in Headers */,
+ 288869A610F165260060BD16 /* fixed_generic.h in Headers */,
+ 288869AE10F165260060BD16 /* kiss_fft.h in Headers */,
+ 288869B010F165260060BD16 /* kiss_fftr.h in Headers */,
+ 288869B110F165260060BD16 /* lpc_bfin.h in Headers */,
+ 288869B310F165260060BD16 /* lpc.h in Headers */,
+ 288869B410F165260060BD16 /* lsp_bfin.h in Headers */,
+ 288869B710F165260060BD16 /* lsp.h in Headers */,
+ 288869B810F165260060BD16 /* ltp_arm4.h in Headers */,
+ 288869B910F165260060BD16 /* ltp_bfin.h in Headers */,
+ 288869BA10F165260060BD16 /* ltp_sse.h in Headers */,
+ 288869BC10F165260060BD16 /* ltp.h in Headers */,
+ 288869BD10F165260060BD16 /* math_approx.h in Headers */,
+ 288869BF10F165260060BD16 /* misc_bfin.h in Headers */,
+ 288869C210F165260060BD16 /* modes.h in Headers */,
+ 288869C410F165260060BD16 /* nb_celp.h in Headers */,
+ 288869C510F165260060BD16 /* os_support.h in Headers */,
+ 288869C710F165260060BD16 /* pseudofloat.h in Headers */,
+ 288869C810F165260060BD16 /* quant_lsp_bfin.h in Headers */,
+ 288869CA10F165260060BD16 /* quant_lsp.h in Headers */,
+ 288869CB10F165260060BD16 /* resample_sse.h in Headers */,
+ 288869CE10F165260060BD16 /* sb_celp.h in Headers */,
+ 288869D110F165260060BD16 /* smallft.h in Headers */,
+ 288869D510F165260060BD16 /* stack_alloc.h in Headers */,
+ 288869DF10F165260060BD16 /* vbr.h in Headers */,
+ 288869E110F165260060BD16 /* vorbis_psy.h in Headers */,
+ 288869E210F165260060BD16 /* vq_arm4.h in Headers */,
+ 288869E310F165260060BD16 /* vq_bfin.h in Headers */,
+ 288869E410F165260060BD16 /* vq_sse.h in Headers */,
+ 288869E610F165260060BD16 /* vq.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D2AAC07D0554694100DB518D /* Speex */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Speex" */;
+ buildPhases = (
+ D2AAC07A0554694100DB518D /* Headers */,
+ D2AAC07B0554694100DB518D /* Sources */,
+ D2AAC07C0554694100DB518D /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Speex;
+ productName = Speex;
+ productReference = D2AAC07E0554694100DB518D /* libSpeex.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 0867D690FE84028FC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Speex" */;
+ compatibilityVersion = "Xcode 3.1";
+ hasScannedForEncodings = 1;
+ mainGroup = 0867D691FE84028FC02AAC07 /* Speex */;
+ productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D2AAC07D0554694100DB518D /* Speex */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D2AAC07B0554694100DB518D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2888698B10F165260060BD16 /* bits.c in Sources */,
+ 2888699010F165260060BD16 /* cb_search.c in Sources */,
+ 2888699310F165260060BD16 /* exc_5_64_table.c in Sources */,
+ 2888699410F165260060BD16 /* exc_5_256_table.c in Sources */,
+ 2888699510F165260060BD16 /* exc_8_128_table.c in Sources */,
+ 2888699610F165260060BD16 /* exc_10_16_table.c in Sources */,
+ 2888699710F165260060BD16 /* exc_10_32_table.c in Sources */,
+ 2888699810F165260060BD16 /* exc_20_32_table.c in Sources */,
+ 288869A010F165260060BD16 /* filters.c in Sources */,
+ 288869A710F165260060BD16 /* gain_table_lbr.c in Sources */,
+ 288869A810F165260060BD16 /* gain_table.c in Sources */,
+ 288869A910F165260060BD16 /* hexc_10_32_table.c in Sources */,
+ 288869AA10F165260060BD16 /* hexc_table.c in Sources */,
+ 288869AB10F165260060BD16 /* high_lsp_tables.c in Sources */,
+ 288869AD10F165260060BD16 /* kiss_fft.c in Sources */,
+ 288869AF10F165260060BD16 /* kiss_fftr.c in Sources */,
+ 288869B210F165260060BD16 /* lpc.c in Sources */,
+ 288869B510F165260060BD16 /* lsp_tables_nb.c in Sources */,
+ 288869B610F165260060BD16 /* lsp.c in Sources */,
+ 288869BB10F165260060BD16 /* ltp.c in Sources */,
+ 288869C010F165260060BD16 /* modes_wb.c in Sources */,
+ 288869C110F165260060BD16 /* modes.c in Sources */,
+ 288869C310F165260060BD16 /* nb_celp.c in Sources */,
+ 288869C910F165260060BD16 /* quant_lsp.c in Sources */,
+ 288869CD10F165260060BD16 /* sb_celp.c in Sources */,
+ 288869CF10F165260060BD16 /* scal.c in Sources */,
+ 288869D210F165260060BD16 /* speex_callbacks.c in Sources */,
+ 288869D310F165260060BD16 /* speex_header.c in Sources */,
+ 288869D410F165260060BD16 /* speex.c in Sources */,
+ 288869D610F165260060BD16 /* stereo.c in Sources */,
+ 288869DE10F165260060BD16 /* vbr.c in Sources */,
+ 288869E010F165260060BD16 /* vorbis_psy.c in Sources */,
+ 288869E510F165260060BD16 /* vq.c in Sources */,
+ 288869E710F165260060BD16 /* window.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 1DEB921F08733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ COPY_PHASE_STRIP = NO;
+ DSTROOT = /tmp/Speex.dst;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_FAST_MATH = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_THUMB_SUPPORT = NO;
+ GCC_UNROLL_LOOPS = YES;
+ INSTALL_PATH = /usr/local/lib;
+ OTHER_CFLAGS = "-fsingle-precision-constant";
+ "OTHER_CFLAGS[arch=armv7]" = (
+ "-mfpu=neon",
+ "-mfloat-abi=softfp",
+ "-mcpu=cortex-a8",
+ );
+ "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)";
+ PRODUCT_NAME = Speex;
+ };
+ name = Debug;
+ };
+ 1DEB922008733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ DSTROOT = /tmp/Speex.dst;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_FAST_MATH = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_THUMB_SUPPORT = NO;
+ GCC_UNROLL_LOOPS = YES;
+ INSTALL_PATH = /usr/local/lib;
+ OTHER_CFLAGS = "-fsingle-precision-constant";
+ "OTHER_CFLAGS[arch=armv7]" = (
+ "-mfpu=neon",
+ "-mfloat-abi=softfp",
+ "-mcpu=cortex-a8",
+ );
+ "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)";
+ PRODUCT_NAME = Speex;
+ };
+ name = Release;
+ };
+ 1DEB922308733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/include//**";
+ OTHER_LDFLAGS = "-ObjC";
+ PREBINDING = NO;
+ SDKROOT = iphoneos3.1.2;
+ USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/** ${PROJECT_DIR}/../speex/libspeex//**";
+ };
+ name = Debug;
+ };
+ 1DEB922408733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/include//**";
+ OTHER_LDFLAGS = "-ObjC";
+ PREBINDING = NO;
+ SDKROOT = iphoneos3.1.2;
+ USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/** ${PROJECT_DIR}/../speex/libspeex//**";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "Speex" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB921F08733DC00010E9CD /* Debug */,
+ 1DEB922008733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Speex" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB922308733DC00010E9CD /* Debug */,
+ 1DEB922408733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
diff --git a/3rdparty/speexbuild/config.h b/3rdparty/speexbuild/config.h
new file mode 100644
index 0000000..a213890
--- /dev/null
+++ b/3rdparty/speexbuild/config.h
@@ -0,0 +1,3 @@
+#define FLOATING_POINT
+#define USE_SMALLFT
+#define EXPORT
diff --git a/3rdparty/speexdspbuild/SpeexDSP.xcodeproj/project.pbxproj b/3rdparty/speexdspbuild/SpeexDSP.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..c288b3a
--- /dev/null
+++ b/3rdparty/speexdspbuild/SpeexDSP.xcodeproj/project.pbxproj
@@ -0,0 +1,293 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2862FAA710F16ABD00EDDFA1 /* speex_jitter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9710F16ABD00EDDFA1 /* speex_jitter.h */; };
+ 2862FAA810F16ABD00EDDFA1 /* speex_preprocess.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9810F16ABD00EDDFA1 /* speex_preprocess.h */; };
+ 2862FAA910F16ABD00EDDFA1 /* speex_resampler.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9910F16ABD00EDDFA1 /* speex_resampler.h */; };
+ 2862FAAA10F16ABD00EDDFA1 /* speex_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9A10F16ABD00EDDFA1 /* speex_types.h */; };
+ 2862FAAB10F16ABD00EDDFA1 /* speex.h in Headers */ = {isa = PBXBuildFile; fileRef = 2862FA9B10F16ABD00EDDFA1 /* speex.h */; };
+ 28886AA010F167910060BD16 /* fftwrap.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A3F10F167910060BD16 /* fftwrap.c */; };
+ 28886AA110F167910060BD16 /* fftwrap.h in Headers */ = {isa = PBXBuildFile; fileRef = 28886A4010F167910060BD16 /* fftwrap.h */; };
+ 28886AA210F167910060BD16 /* filterbank.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A4110F167910060BD16 /* filterbank.c */; };
+ 28886AA310F167910060BD16 /* filterbank.h in Headers */ = {isa = PBXBuildFile; fileRef = 28886A4210F167910060BD16 /* filterbank.h */; };
+ 28886AB310F167910060BD16 /* jitter.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A5210F167910060BD16 /* jitter.c */; };
+ 28886AC510F167910060BD16 /* mdf.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A6510F167910060BD16 /* mdf.c */; };
+ 28886ACD10F167910060BD16 /* preprocess.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A6D10F167910060BD16 /* preprocess.c */; };
+ 28886AD210F167910060BD16 /* resample_sse.h in Headers */ = {isa = PBXBuildFile; fileRef = 28886A7210F167910060BD16 /* resample_sse.h */; };
+ 28886AD310F167910060BD16 /* resample.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A7310F167910060BD16 /* resample.c */; };
+ 28886AD710F167910060BD16 /* smallft.c in Sources */ = {isa = PBXBuildFile; fileRef = 28886A7710F167910060BD16 /* smallft.c */; };
+ 28886AD810F167910060BD16 /* smallft.h in Headers */ = {isa = PBXBuildFile; fileRef = 28886A7810F167910060BD16 /* smallft.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 2862FA9710F16ABD00EDDFA1 /* speex_jitter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex_jitter.h; path = ../speex/include/speex/speex_jitter.h; sourceTree = SOURCE_ROOT; };
+ 2862FA9810F16ABD00EDDFA1 /* speex_preprocess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex_preprocess.h; path = ../speex/include/speex/speex_preprocess.h; sourceTree = SOURCE_ROOT; };
+ 2862FA9910F16ABD00EDDFA1 /* speex_resampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex_resampler.h; path = ../speex/include/speex/speex_resampler.h; sourceTree = SOURCE_ROOT; };
+ 2862FA9A10F16ABD00EDDFA1 /* speex_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex_types.h; path = ../speex/include/speex/speex_types.h; sourceTree = SOURCE_ROOT; };
+ 2862FA9B10F16ABD00EDDFA1 /* speex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = speex.h; path = ../speex/include/speex/speex.h; sourceTree = SOURCE_ROOT; };
+ 28886A3F10F167910060BD16 /* fftwrap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fftwrap.c; sourceTree = "<group>"; };
+ 28886A4010F167910060BD16 /* fftwrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fftwrap.h; sourceTree = "<group>"; };
+ 28886A4110F167910060BD16 /* filterbank.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = filterbank.c; sourceTree = "<group>"; };
+ 28886A4210F167910060BD16 /* filterbank.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filterbank.h; sourceTree = "<group>"; };
+ 28886A5210F167910060BD16 /* jitter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = jitter.c; sourceTree = "<group>"; };
+ 28886A6510F167910060BD16 /* mdf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mdf.c; sourceTree = "<group>"; };
+ 28886A6D10F167910060BD16 /* preprocess.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = preprocess.c; sourceTree = "<group>"; };
+ 28886A7210F167910060BD16 /* resample_sse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resample_sse.h; sourceTree = "<group>"; };
+ 28886A7310F167910060BD16 /* resample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resample.c; sourceTree = "<group>"; };
+ 28886A7710F167910060BD16 /* smallft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = smallft.c; sourceTree = "<group>"; };
+ 28886A7810F167910060BD16 /* smallft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = smallft.h; sourceTree = "<group>"; };
+ D2AAC07E0554694100DB518D /* libSpeexDSP.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSpeexDSP.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D2AAC07C0554694100DB518D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 034768DFFF38A50411DB9C8B /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ D2AAC07E0554694100DB518D /* libSpeexDSP.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 0867D691FE84028FC02AAC07 /* SpeexDSP */ = {
+ isa = PBXGroup;
+ children = (
+ 2862FA8810F16A3500EDDFA1 /* Headers */,
+ 32C88DFF0371C24200C91783 /* Source */,
+ 034768DFFF38A50411DB9C8B /* Products */,
+ );
+ name = SpeexDSP;
+ sourceTree = "<group>";
+ };
+ 2862FA8810F16A3500EDDFA1 /* Headers */ = {
+ isa = PBXGroup;
+ children = (
+ 2862FA9710F16ABD00EDDFA1 /* speex_jitter.h */,
+ 2862FA9810F16ABD00EDDFA1 /* speex_preprocess.h */,
+ 2862FA9910F16ABD00EDDFA1 /* speex_resampler.h */,
+ 2862FA9A10F16ABD00EDDFA1 /* speex_types.h */,
+ 2862FA9B10F16ABD00EDDFA1 /* speex.h */,
+ );
+ name = Headers;
+ sourceTree = "<group>";
+ };
+ 32C88DFF0371C24200C91783 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 28886A3F10F167910060BD16 /* fftwrap.c */,
+ 28886A4010F167910060BD16 /* fftwrap.h */,
+ 28886A4110F167910060BD16 /* filterbank.c */,
+ 28886A4210F167910060BD16 /* filterbank.h */,
+ 28886A5210F167910060BD16 /* jitter.c */,
+ 28886A6510F167910060BD16 /* mdf.c */,
+ 28886A6D10F167910060BD16 /* preprocess.c */,
+ 28886A7210F167910060BD16 /* resample_sse.h */,
+ 28886A7310F167910060BD16 /* resample.c */,
+ 28886A7710F167910060BD16 /* smallft.c */,
+ 28886A7810F167910060BD16 /* smallft.h */,
+ );
+ name = Source;
+ path = ../speex/libspeex;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D2AAC07A0554694100DB518D /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 28886AA110F167910060BD16 /* fftwrap.h in Headers */,
+ 28886AA310F167910060BD16 /* filterbank.h in Headers */,
+ 28886AD210F167910060BD16 /* resample_sse.h in Headers */,
+ 28886AD810F167910060BD16 /* smallft.h in Headers */,
+ 2862FAA710F16ABD00EDDFA1 /* speex_jitter.h in Headers */,
+ 2862FAA810F16ABD00EDDFA1 /* speex_preprocess.h in Headers */,
+ 2862FAA910F16ABD00EDDFA1 /* speex_resampler.h in Headers */,
+ 2862FAAA10F16ABD00EDDFA1 /* speex_types.h in Headers */,
+ 2862FAAB10F16ABD00EDDFA1 /* speex.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D2AAC07D0554694100DB518D /* SpeexDSP */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "SpeexDSP" */;
+ buildPhases = (
+ D2AAC07A0554694100DB518D /* Headers */,
+ D2AAC07B0554694100DB518D /* Sources */,
+ D2AAC07C0554694100DB518D /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = SpeexDSP;
+ productName = SpeexDSP;
+ productReference = D2AAC07E0554694100DB518D /* libSpeexDSP.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 0867D690FE84028FC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "SpeexDSP" */;
+ compatibilityVersion = "Xcode 3.1";
+ hasScannedForEncodings = 1;
+ mainGroup = 0867D691FE84028FC02AAC07 /* SpeexDSP */;
+ productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ D2AAC07D0554694100DB518D /* SpeexDSP */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D2AAC07B0554694100DB518D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 28886AA010F167910060BD16 /* fftwrap.c in Sources */,
+ 28886AA210F167910060BD16 /* filterbank.c in Sources */,
+ 28886AB310F167910060BD16 /* jitter.c in Sources */,
+ 28886AC510F167910060BD16 /* mdf.c in Sources */,
+ 28886ACD10F167910060BD16 /* preprocess.c in Sources */,
+ 28886AD310F167910060BD16 /* resample.c in Sources */,
+ 28886AD710F167910060BD16 /* smallft.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 1DEB921F08733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ COPY_PHASE_STRIP = NO;
+ DSTROOT = /tmp/SpeexDSP.dst;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_FAST_MATH = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_THUMB_SUPPORT = NO;
+ GCC_UNROLL_LOOPS = YES;
+ HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/include//**";
+ INSTALL_PATH = /usr/local/lib;
+ OTHER_CFLAGS = "-fsingle-precision-constant";
+ "OTHER_CFLAGS[arch=armv7]" = (
+ "-mfpu=neon",
+ "-mfloat-abi=softfp",
+ "-mcpu=cortex-a8",
+ );
+ "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)";
+ PRODUCT_NAME = SpeexDSP;
+ USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/libspeex//** ${PROJECT_DIR}/**";
+ };
+ name = Debug;
+ };
+ 1DEB922008733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ DSTROOT = /tmp/SpeexDSP.dst;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_FAST_MATH = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_THUMB_SUPPORT = NO;
+ GCC_UNROLL_LOOPS = YES;
+ HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/include//**";
+ INSTALL_PATH = /usr/local/lib;
+ OTHER_CFLAGS = "-fsingle-precision-constant";
+ "OTHER_CFLAGS[arch=armv7]" = (
+ "-mfpu=neon",
+ "-mfloat-abi=softfp",
+ "-mcpu=cortex-a8",
+ );
+ "OTHER_CPLUSPLUSFLAGS[arch=armv7]" = "$(OTHER_CFLAGS)";
+ PRODUCT_NAME = SpeexDSP;
+ USER_HEADER_SEARCH_PATHS = "${PROJECT_DIR}/../speex/libspeex//** ${PROJECT_DIR}/**";
+ };
+ name = Release;
+ };
+ 1DEB922308733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ OTHER_LDFLAGS = "-ObjC";
+ PREBINDING = NO;
+ SDKROOT = iphoneos3.1.2;
+ };
+ name = Debug;
+ };
+ 1DEB922408733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ OTHER_LDFLAGS = "-ObjC";
+ PREBINDING = NO;
+ SDKROOT = iphoneos3.1.2;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "SpeexDSP" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB921F08733DC00010E9CD /* Debug */,
+ 1DEB922008733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "SpeexDSP" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB922308733DC00010E9CD /* Debug */,
+ 1DEB922408733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
diff --git a/3rdparty/speexdspbuild/config.h b/3rdparty/speexdspbuild/config.h
new file mode 100644
index 0000000..a213890
--- /dev/null
+++ b/3rdparty/speexdspbuild/config.h
@@ -0,0 +1,3 @@
+#define FLOATING_POINT
+#define USE_SMALLFT
+#define EXPORT
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..41ca99b
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,29 @@
+ Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+ Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/MumbleKit.xcodeproj/project.pbxproj b/MumbleKit.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..c74b4b9
--- /dev/null
+++ b/MumbleKit.xcodeproj/project.pbxproj
@@ -0,0 +1,664 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 287509CF11431A68002885AF /* MKUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 287509CD11431A68002885AF /* MKUtils.h */; };
+ 28750A1D11431BD4002885AF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28750A1C11431BD4002885AF /* AudioToolbox.framework */; };
+ 28750A2111431BD7002885AF /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28750A2011431BD7002885AF /* CFNetwork.framework */; };
+ 28750A3911431C42002885AF /* MKReadWriteLock.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A3811431C42002885AF /* MKReadWriteLock.h */; };
+ 28750A3B11431C50002885AF /* MKReadWriteLock.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A3A11431C50002885AF /* MKReadWriteLock.m */; };
+ 28750A4B11431D2E002885AF /* MKChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4511431D2E002885AF /* MKChannel.m */; };
+ 28750A4C11431D2E002885AF /* MKConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4611431D2E002885AF /* MKConnection.m */; };
+ 28750A4D11431D2E002885AF /* MKCryptState.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4711431D2E002885AF /* MKCryptState.m */; };
+ 28750A4E11431D2E002885AF /* MKPacketDataStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4811431D2E002885AF /* MKPacketDataStream.m */; };
+ 28750A4F11431D2E002885AF /* MKServerModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4911431D2E002885AF /* MKServerModel.m */; };
+ 28750A5011431D2E002885AF /* MKUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 28750A4A11431D2E002885AF /* MKUser.m */; };
+ 28750A5711431D39002885AF /* MKChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5111431D39002885AF /* MKChannel.h */; };
+ 28750A5811431D39002885AF /* MKConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5211431D39002885AF /* MKConnection.h */; };
+ 28750A5911431D39002885AF /* MKCryptState.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5311431D39002885AF /* MKCryptState.h */; };
+ 28750A5A11431D39002885AF /* MKPacketDataStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5411431D39002885AF /* MKPacketDataStream.h */; };
+ 28750A5B11431D39002885AF /* MKServerModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5511431D39002885AF /* MKServerModel.h */; };
+ 28750A5C11431D39002885AF /* MKUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 28750A5611431D39002885AF /* MKUser.h */; };
+ 288A6BBD11500C82008FED5E /* Descriptor.pb.h in Headers */ = {isa = PBXBuildFile; fileRef = 288A6BB611500C82008FED5E /* Descriptor.pb.h */; };
+ 288A6BBE11500C82008FED5E /* Descriptor.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 288A6BB711500C82008FED5E /* Descriptor.pb.m */; };
+ 288A6BBF11500C82008FED5E /* Mumble.pb.h in Headers */ = {isa = PBXBuildFile; fileRef = 288A6BB811500C82008FED5E /* Mumble.pb.h */; };
+ 288A6BC011500C82008FED5E /* Mumble.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 288A6BB911500C82008FED5E /* Mumble.pb.m */; };
+ 288A6BC111500C82008FED5E /* ObjectivecDescriptor.pb.h in Headers */ = {isa = PBXBuildFile; fileRef = 288A6BBB11500C82008FED5E /* ObjectivecDescriptor.pb.h */; };
+ 288A6BC211500C82008FED5E /* ObjectivecDescriptor.pb.m in Sources */ = {isa = PBXBuildFile; fileRef = 288A6BBC11500C82008FED5E /* ObjectivecDescriptor.pb.m */; };
+ 288A6BE011500E06008FED5E /* libSpeexDSP.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 281F0B6511500BB400BAA221 /* libSpeexDSP.a */; };
+ 288A6BE111500E0D008FED5E /* libSpeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 281F0B5C11500BAC00BAA221 /* libSpeex.a */; };
+ 288A6BE211500E14008FED5E /* libProtocolBuffers.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 281F0B4F11500BA400BAA221 /* libProtocolBuffers.a */; };
+ 288A6BE311500E25008FED5E /* libCELT.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 281F0B4311500B9C00BAA221 /* libCELT.a */; };
+ 2897BABA11452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h in Headers */ = {isa = PBXBuildFile; fileRef = 2897BAB811452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h */; };
+ 2897BABB11452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m in Sources */ = {isa = PBXBuildFile; fileRef = 2897BAB911452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m */; };
+ 28A4934411431863000627EB /* MKAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4933A11431863000627EB /* MKAudio.h */; };
+ 28A4934511431863000627EB /* MKAudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4933B11431863000627EB /* MKAudio.m */; };
+ 28A4934611431863000627EB /* MKAudioInput.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4933C11431863000627EB /* MKAudioInput.h */; };
+ 28A4934711431863000627EB /* MKAudioInput.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4933D11431863000627EB /* MKAudioInput.m */; };
+ 28A4934811431863000627EB /* MKAudioOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4933E11431863000627EB /* MKAudioOutput.h */; };
+ 28A4934911431863000627EB /* MKAudioOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4933F11431863000627EB /* MKAudioOutput.m */; };
+ 28A4934A11431863000627EB /* MKAudioOutputSpeech.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4934011431863000627EB /* MKAudioOutputSpeech.h */; };
+ 28A4934B11431863000627EB /* MKAudioOutputSpeech.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4934111431863000627EB /* MKAudioOutputSpeech.m */; };
+ 28A4934C11431863000627EB /* MKAudioOutputUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 28A4934211431863000627EB /* MKAudioOutputUser.h */; };
+ 28A4934D11431863000627EB /* MKAudioOutputUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4934311431863000627EB /* MKAudioOutputUser.m */; };
+ 28AE414A11432A26004B3046 /* MKServices.h in Headers */ = {isa = PBXBuildFile; fileRef = 28AE414911432A26004B3046 /* MKServices.h */; };
+ 28AE414C11432A2E004B3046 /* MKServices.m in Sources */ = {isa = PBXBuildFile; fileRef = 28AE414B11432A2E004B3046 /* MKServices.m */; };
+ AA747D9F0F9514B9006C5449 /* MumbleKit.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* MumbleKit.pch */; };
+ AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 281F0B4211500B9C00BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = D2AAC07E0554694100DB518D;
+ remoteInfo = CELT;
+ };
+ 281F0B4E11500BA400BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 100000000000000000001ECF;
+ remoteInfo = ProtocolBuffers;
+ };
+ 281F0B5011500BA400BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 100000000000000000001C15;
+ remoteInfo = UnitTests;
+ };
+ 281F0B5211500BA400BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 1000000000000000000007A4;
+ remoteInfo = CommandLineTests;
+ };
+ 281F0B5B11500BAC00BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = D2AAC07E0554694100DB518D;
+ remoteInfo = Speex;
+ };
+ 281F0B6411500BB400BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = D2AAC07E0554694100DB518D;
+ remoteInfo = SpeexDSP;
+ };
+ 281F0B6711500BBF00BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC07D0554694100DB518D;
+ remoteInfo = CELT;
+ };
+ 281F0B6911500BC100BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC07D0554694100DB518D;
+ remoteInfo = Speex;
+ };
+ 281F0B6B11500BC400BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = 100000000000000000001489;
+ remoteInfo = ProtocolBuffers;
+ };
+ 281F0B6D11500BC600BAA221 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = D2AAC07D0554694100DB518D;
+ remoteInfo = SpeexDSP;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CELT.xcodeproj; path = 3rdparty/celtbuild/CELT.xcodeproj; sourceTree = "<group>"; };
+ 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ProtocolBuffers.xcodeproj; path = 3rdparty/protobufbuild/ProtocolBuffers.xcodeproj; sourceTree = "<group>"; };
+ 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Speex.xcodeproj; path = 3rdparty/speexbuild/Speex.xcodeproj; sourceTree = "<group>"; };
+ 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SpeexDSP.xcodeproj; path = 3rdparty/speexdspbuild/SpeexDSP.xcodeproj; sourceTree = "<group>"; };
+ 287509CD11431A68002885AF /* MKUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKUtils.h; sourceTree = "<group>"; };
+ 28750A1C11431BD4002885AF /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+ 28750A2011431BD7002885AF /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
+ 28750A3811431C42002885AF /* MKReadWriteLock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKReadWriteLock.h; sourceTree = "<group>"; };
+ 28750A3A11431C50002885AF /* MKReadWriteLock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKReadWriteLock.m; path = src/MKReadWriteLock.m; sourceTree = "<group>"; };
+ 28750A4511431D2E002885AF /* MKChannel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKChannel.m; path = src/MKChannel.m; sourceTree = "<group>"; };
+ 28750A4611431D2E002885AF /* MKConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKConnection.m; path = src/MKConnection.m; sourceTree = "<group>"; };
+ 28750A4711431D2E002885AF /* MKCryptState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKCryptState.m; path = src/MKCryptState.m; sourceTree = "<group>"; };
+ 28750A4811431D2E002885AF /* MKPacketDataStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKPacketDataStream.m; path = src/MKPacketDataStream.m; sourceTree = "<group>"; };
+ 28750A4911431D2E002885AF /* MKServerModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKServerModel.m; path = src/MKServerModel.m; sourceTree = "<group>"; };
+ 28750A4A11431D2E002885AF /* MKUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKUser.m; path = src/MKUser.m; sourceTree = "<group>"; };
+ 28750A5111431D39002885AF /* MKChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKChannel.h; sourceTree = "<group>"; };
+ 28750A5211431D39002885AF /* MKConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKConnection.h; sourceTree = "<group>"; };
+ 28750A5311431D39002885AF /* MKCryptState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKCryptState.h; sourceTree = "<group>"; };
+ 28750A5411431D39002885AF /* MKPacketDataStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKPacketDataStream.h; sourceTree = "<group>"; };
+ 28750A5511431D39002885AF /* MKServerModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKServerModel.h; sourceTree = "<group>"; };
+ 28750A5611431D39002885AF /* MKUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKUser.h; sourceTree = "<group>"; };
+ 288A6BB611500C82008FED5E /* Descriptor.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Descriptor.pb.h; sourceTree = "<group>"; };
+ 288A6BB711500C82008FED5E /* Descriptor.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Descriptor.pb.m; sourceTree = "<group>"; };
+ 288A6BB811500C82008FED5E /* Mumble.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Mumble.pb.h; sourceTree = "<group>"; };
+ 288A6BB911500C82008FED5E /* Mumble.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Mumble.pb.m; sourceTree = "<group>"; };
+ 288A6BBA11500C82008FED5E /* Mumble.proto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Mumble.proto; sourceTree = "<group>"; };
+ 288A6BBB11500C82008FED5E /* ObjectivecDescriptor.pb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjectivecDescriptor.pb.h; sourceTree = "<group>"; };
+ 288A6BBC11500C82008FED5E /* ObjectivecDescriptor.pb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjectivecDescriptor.pb.m; sourceTree = "<group>"; };
+ 2897BAB811452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSInvocation(MumbleKitAdditions).h"; path = "../NSInvocation(MumbleKitAdditions).h"; sourceTree = "<group>"; };
+ 2897BAB911452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation(MumbleKitAdditions).m"; path = "../NSInvocation(MumbleKitAdditions).m"; sourceTree = "<group>"; };
+ 28A4933A11431863000627EB /* MKAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudio.h; sourceTree = "<group>"; };
+ 28A4933B11431863000627EB /* MKAudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudio.m; path = src/MKAudio.m; sourceTree = "<group>"; };
+ 28A4933C11431863000627EB /* MKAudioInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudioInput.h; sourceTree = "<group>"; };
+ 28A4933D11431863000627EB /* MKAudioInput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudioInput.m; path = src/MKAudioInput.m; sourceTree = "<group>"; };
+ 28A4933E11431863000627EB /* MKAudioOutput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudioOutput.h; sourceTree = "<group>"; };
+ 28A4933F11431863000627EB /* MKAudioOutput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudioOutput.m; path = src/MKAudioOutput.m; sourceTree = "<group>"; };
+ 28A4934011431863000627EB /* MKAudioOutputSpeech.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudioOutputSpeech.h; sourceTree = "<group>"; };
+ 28A4934111431863000627EB /* MKAudioOutputSpeech.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudioOutputSpeech.m; path = src/MKAudioOutputSpeech.m; sourceTree = "<group>"; };
+ 28A4934211431863000627EB /* MKAudioOutputUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKAudioOutputUser.h; sourceTree = "<group>"; };
+ 28A4934311431863000627EB /* MKAudioOutputUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKAudioOutputUser.m; path = src/MKAudioOutputUser.m; sourceTree = "<group>"; };
+ 28AE414911432A26004B3046 /* MKServices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKServices.h; sourceTree = "<group>"; };
+ 28AE414B11432A2E004B3046 /* MKServices.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MKServices.m; path = src/MKServices.m; sourceTree = "<group>"; };
+ 28D1E663115018A800469C69 /* libMumbleKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMumbleKit.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ AA747D9E0F9514B9006C5449 /* MumbleKit.pch */ = {isa = PBXFileReference; explicitFileType = sourcecode; fileEncoding = 4; name = MumbleKit.pch; path = src/MumbleKit.pch; sourceTree = "<group>"; };
+ AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D2AAC07C0554694100DB518D /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 288A6BE311500E25008FED5E /* libCELT.a in Frameworks */,
+ 288A6BE211500E14008FED5E /* libProtocolBuffers.a in Frameworks */,
+ 288A6BE111500E0D008FED5E /* libSpeex.a in Frameworks */,
+ 288A6BE011500E06008FED5E /* libSpeexDSP.a in Frameworks */,
+ AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
+ 28750A1D11431BD4002885AF /* AudioToolbox.framework in Frameworks */,
+ 28750A2111431BD7002885AF /* CFNetwork.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 034768DFFF38A50411DB9C8B /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 28D1E663115018A800469C69 /* libMumbleKit.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 0867D691FE84028FC02AAC07 /* MumbleKit */ = {
+ isa = PBXGroup;
+ children = (
+ 281F0B3611500AB900BAA221 /* Dependencies */,
+ 288A6BB111500C66008FED5E /* Protocol */,
+ 2897BAAC11452CE300F3D16D /* Categories */,
+ 287509B511431932002885AF /* Headers */,
+ 08FB77AEFE84172EC02AAC07 /* Source */,
+ 32C88DFF0371C24200C91783 /* Prefix Header */,
+ 0867D69AFE84028FC02AAC07 /* Frameworks */,
+ 034768DFFF38A50411DB9C8B /* Products */,
+ );
+ name = MumbleKit;
+ sourceTree = "<group>";
+ };
+ 0867D69AFE84028FC02AAC07 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 28750A2011431BD7002885AF /* CFNetwork.framework */,
+ 28750A1C11431BD4002885AF /* AudioToolbox.framework */,
+ AACBBE490F95108600F1A2B1 /* Foundation.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 08FB77AEFE84172EC02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 28AE414B11432A2E004B3046 /* MKServices.m */,
+ 28750A4511431D2E002885AF /* MKChannel.m */,
+ 28750A4611431D2E002885AF /* MKConnection.m */,
+ 28750A4711431D2E002885AF /* MKCryptState.m */,
+ 28750A4811431D2E002885AF /* MKPacketDataStream.m */,
+ 28750A4911431D2E002885AF /* MKServerModel.m */,
+ 28750A4A11431D2E002885AF /* MKUser.m */,
+ 28750A3A11431C50002885AF /* MKReadWriteLock.m */,
+ 28A4933B11431863000627EB /* MKAudio.m */,
+ 28A4933D11431863000627EB /* MKAudioInput.m */,
+ 28A4933F11431863000627EB /* MKAudioOutput.m */,
+ 28A4934111431863000627EB /* MKAudioOutputSpeech.m */,
+ 28A4934311431863000627EB /* MKAudioOutputUser.m */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 281F0B3611500AB900BAA221 /* Dependencies */ = {
+ isa = PBXGroup;
+ children = (
+ 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */,
+ 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */,
+ 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */,
+ 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */,
+ );
+ name = Dependencies;
+ sourceTree = "<group>";
+ };
+ 281F0B3C11500B9C00BAA221 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 281F0B4311500B9C00BAA221 /* libCELT.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 281F0B4511500BA400BAA221 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 281F0B4F11500BA400BAA221 /* libProtocolBuffers.a */,
+ 281F0B5111500BA400BAA221 /* UnitTests.octest */,
+ 281F0B5311500BA400BAA221 /* CommandLineTests.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 281F0B5511500BAC00BAA221 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 281F0B5C11500BAC00BAA221 /* libSpeex.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 281F0B5E11500BB400BAA221 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 281F0B6511500BB400BAA221 /* libSpeexDSP.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 287509B511431932002885AF /* Headers */ = {
+ isa = PBXGroup;
+ children = (
+ 28AE414911432A26004B3046 /* MKServices.h */,
+ 28750A5111431D39002885AF /* MKChannel.h */,
+ 28750A5211431D39002885AF /* MKConnection.h */,
+ 28750A5311431D39002885AF /* MKCryptState.h */,
+ 28750A5411431D39002885AF /* MKPacketDataStream.h */,
+ 28750A5511431D39002885AF /* MKServerModel.h */,
+ 28750A5611431D39002885AF /* MKUser.h */,
+ 28750A3811431C42002885AF /* MKReadWriteLock.h */,
+ 28A4933C11431863000627EB /* MKAudioInput.h */,
+ 28A4934011431863000627EB /* MKAudioOutputSpeech.h */,
+ 28A4933E11431863000627EB /* MKAudioOutput.h */,
+ 28A4934211431863000627EB /* MKAudioOutputUser.h */,
+ 28A4933A11431863000627EB /* MKAudio.h */,
+ 287509CD11431A68002885AF /* MKUtils.h */,
+ );
+ name = Headers;
+ path = src/MumbleKit;
+ sourceTree = "<group>";
+ };
+ 288A6BB111500C66008FED5E /* Protocol */ = {
+ isa = PBXGroup;
+ children = (
+ 288A6BB611500C82008FED5E /* Descriptor.pb.h */,
+ 288A6BB711500C82008FED5E /* Descriptor.pb.m */,
+ 288A6BB811500C82008FED5E /* Mumble.pb.h */,
+ 288A6BB911500C82008FED5E /* Mumble.pb.m */,
+ 288A6BBA11500C82008FED5E /* Mumble.proto */,
+ 288A6BBB11500C82008FED5E /* ObjectivecDescriptor.pb.h */,
+ 288A6BBC11500C82008FED5E /* ObjectivecDescriptor.pb.m */,
+ );
+ name = Protocol;
+ path = proto;
+ sourceTree = "<group>";
+ };
+ 2897BAAC11452CE300F3D16D /* Categories */ = {
+ isa = PBXGroup;
+ children = (
+ 2897BAB811452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h */,
+ 2897BAB911452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m */,
+ );
+ name = Categories;
+ path = src/MumbleKit;
+ sourceTree = "<group>";
+ };
+ 32C88DFF0371C24200C91783 /* Prefix Header */ = {
+ isa = PBXGroup;
+ children = (
+ AA747D9E0F9514B9006C5449 /* MumbleKit.pch */,
+ );
+ name = "Prefix Header";
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ D2AAC07A0554694100DB518D /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ AA747D9F0F9514B9006C5449 /* MumbleKit.pch in Headers */,
+ 28A4934411431863000627EB /* MKAudio.h in Headers */,
+ 28A4934611431863000627EB /* MKAudioInput.h in Headers */,
+ 28A4934811431863000627EB /* MKAudioOutput.h in Headers */,
+ 28A4934A11431863000627EB /* MKAudioOutputSpeech.h in Headers */,
+ 28A4934C11431863000627EB /* MKAudioOutputUser.h in Headers */,
+ 287509CF11431A68002885AF /* MKUtils.h in Headers */,
+ 28750A3911431C42002885AF /* MKReadWriteLock.h in Headers */,
+ 28750A5711431D39002885AF /* MKChannel.h in Headers */,
+ 28750A5811431D39002885AF /* MKConnection.h in Headers */,
+ 28750A5911431D39002885AF /* MKCryptState.h in Headers */,
+ 28750A5A11431D39002885AF /* MKPacketDataStream.h in Headers */,
+ 28750A5C11431D39002885AF /* MKUser.h in Headers */,
+ 28750A5B11431D39002885AF /* MKServerModel.h in Headers */,
+ 28AE414A11432A26004B3046 /* MKServices.h in Headers */,
+ 2897BABA11452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).h in Headers */,
+ 288A6BBD11500C82008FED5E /* Descriptor.pb.h in Headers */,
+ 288A6BBF11500C82008FED5E /* Mumble.pb.h in Headers */,
+ 288A6BC111500C82008FED5E /* ObjectivecDescriptor.pb.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ D2AAC07D0554694100DB518D /* MumbleKit */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "MumbleKit" */;
+ buildPhases = (
+ 288A6C4611501161008FED5E /* Create Framework and Copy Headers */,
+ D2AAC07A0554694100DB518D /* Headers */,
+ D2AAC07B0554694100DB518D /* Sources */,
+ D2AAC07C0554694100DB518D /* Frameworks */,
+ 28C22B3D1150218D002CEF70 /* Copy Static Library into Framework */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 281F0B6811500BBF00BAA221 /* PBXTargetDependency */,
+ 281F0B6A11500BC100BAA221 /* PBXTargetDependency */,
+ 281F0B6C11500BC400BAA221 /* PBXTargetDependency */,
+ 281F0B6E11500BC600BAA221 /* PBXTargetDependency */,
+ );
+ name = MumbleKit;
+ productName = MumbleKit;
+ productReference = 28D1E663115018A800469C69 /* libMumbleKit.a */;
+ productType = "com.apple.product-type.library.static";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 0867D690FE84028FC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "MumbleKit" */;
+ compatibilityVersion = "Xcode 3.1";
+ hasScannedForEncodings = 1;
+ mainGroup = 0867D691FE84028FC02AAC07 /* MumbleKit */;
+ productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 281F0B3C11500B9C00BAA221 /* Products */;
+ ProjectRef = 281F0B3B11500B9C00BAA221 /* CELT.xcodeproj */;
+ },
+ {
+ ProductGroup = 281F0B4511500BA400BAA221 /* Products */;
+ ProjectRef = 281F0B4411500BA400BAA221 /* ProtocolBuffers.xcodeproj */;
+ },
+ {
+ ProductGroup = 281F0B5511500BAC00BAA221 /* Products */;
+ ProjectRef = 281F0B5411500BAC00BAA221 /* Speex.xcodeproj */;
+ },
+ {
+ ProductGroup = 281F0B5E11500BB400BAA221 /* Products */;
+ ProjectRef = 281F0B5D11500BB400BAA221 /* SpeexDSP.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ D2AAC07D0554694100DB518D /* MumbleKit */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 281F0B4311500B9C00BAA221 /* libCELT.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libCELT.a;
+ remoteRef = 281F0B4211500B9C00BAA221 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 281F0B4F11500BA400BAA221 /* libProtocolBuffers.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libProtocolBuffers.a;
+ remoteRef = 281F0B4E11500BA400BAA221 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 281F0B5111500BA400BAA221 /* UnitTests.octest */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = UnitTests.octest;
+ remoteRef = 281F0B5011500BA400BAA221 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 281F0B5311500BA400BAA221 /* CommandLineTests.app */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.application;
+ path = CommandLineTests.app;
+ remoteRef = 281F0B5211500BA400BAA221 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 281F0B5C11500BAC00BAA221 /* libSpeex.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libSpeex.a;
+ remoteRef = 281F0B5B11500BAC00BAA221 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 281F0B6511500BB400BAA221 /* libSpeexDSP.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = libSpeexDSP.a;
+ remoteRef = 281F0B6411500BB400BAA221 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 288A6C4611501161008FED5E /* Create Framework and Copy Headers */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Create Framework and Copy Headers";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "#!/bin/bash\n#\n# Create a MumbleKit framework for iPhoneOS\n#\n# This is the Phase 1 script: Create the framework and copy in the needed headers.\n#\n\nMKFW_PATH=${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/\n\nrm -rf ${MKFW_PATH}\nmkdir -p ${MKFW_PATH}\nmkdir -p ${MKFW_PATH}/Headers/\n\n# Copy MumbleKit headers\ncp -R ${PROJECT_DIR}/src/MumbleKit/ ${MKFW_PATH}/Headers/\n\n# Copy protobuf headers\nmkdir -p ${MKFW_PATH}/Headers/MumbleProtocol/\ncp -R ${PROJECT_DIR}/3rdparty/protobuf/objectivec/Classes/*.h ${MKFW_PATH}/Headers/MumbleProtocol/\ncp -R ${PROJECT_DIR}/proto/*.h ${MKFW_PATH}/Headers/MumbleProtocol/\n\n# Copy Speex headers\ncp -R ${PROJECT_DIR}/3rdparty/speex/include/speex/ ${MKFW_PATH}/Headers/speex/\n\n# Copy CELT headers\nmkdir -p ${MKFW_PATH}/Headers/celt/\ncp -R ${PROJECT_DIR}/3rdparty/celt/libcelt/*.h ${MKFW_PATH}/Headers/celt/\n\n# Create a new symlink inside Headers\ncd ${MKFW_PATH}/Headers/\nln -sf . MumbleKit";
+ };
+ 28C22B3D1150218D002CEF70 /* Copy Static Library into Framework */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Copy Static Library into Framework";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/bash;
+ shellScript = "#!/bin/bash\n#\n# Copy the libMumbleKit.a library into our framework bundle\n#\n\nMKFW_PATH=${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/\ncp -R ${TARGET_BUILD_DIR}/lib${PROJECT_NAME}.a ${MKFW_PATH}/${PROJECT_NAME}";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ D2AAC07B0554694100DB518D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 28A4934511431863000627EB /* MKAudio.m in Sources */,
+ 28A4934711431863000627EB /* MKAudioInput.m in Sources */,
+ 28A4934911431863000627EB /* MKAudioOutput.m in Sources */,
+ 28A4934B11431863000627EB /* MKAudioOutputSpeech.m in Sources */,
+ 28A4934D11431863000627EB /* MKAudioOutputUser.m in Sources */,
+ 28750A3B11431C50002885AF /* MKReadWriteLock.m in Sources */,
+ 28750A4B11431D2E002885AF /* MKChannel.m in Sources */,
+ 28750A4C11431D2E002885AF /* MKConnection.m in Sources */,
+ 28750A4D11431D2E002885AF /* MKCryptState.m in Sources */,
+ 28750A4E11431D2E002885AF /* MKPacketDataStream.m in Sources */,
+ 28750A4F11431D2E002885AF /* MKServerModel.m in Sources */,
+ 28750A5011431D2E002885AF /* MKUser.m in Sources */,
+ 28AE414C11432A2E004B3046 /* MKServices.m in Sources */,
+ 2897BABB11452E4D00F3D16D /* NSInvocation(MumbleKitAdditions).m in Sources */,
+ 288A6BBE11500C82008FED5E /* Descriptor.pb.m in Sources */,
+ 288A6BC011500C82008FED5E /* Mumble.pb.m in Sources */,
+ 288A6BC211500C82008FED5E /* ObjectivecDescriptor.pb.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 281F0B6811500BBF00BAA221 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = CELT;
+ targetProxy = 281F0B6711500BBF00BAA221 /* PBXContainerItemProxy */;
+ };
+ 281F0B6A11500BC100BAA221 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = Speex;
+ targetProxy = 281F0B6911500BC100BAA221 /* PBXContainerItemProxy */;
+ };
+ 281F0B6C11500BC400BAA221 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = ProtocolBuffers;
+ targetProxy = 281F0B6B11500BC400BAA221 /* PBXContainerItemProxy */;
+ };
+ 281F0B6E11500BC600BAA221 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = SpeexDSP;
+ targetProxy = 281F0B6D11500BC600BAA221 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 1DEB921F08733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ COPY_PHASE_STRIP = NO;
+ DSTROOT = /tmp/MumbleKit.dst;
+ FRAMEWORK_SEARCH_PATHS = "";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = src/MumbleKit.pch;
+ HEADER_SEARCH_PATHS = (
+ "${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/Headers//**",
+ "${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/Headers/MumbleProtocol//**",
+ );
+ INSTALL_PATH = /usr/local/lib;
+ PRODUCT_NAME = MumbleKit;
+ };
+ name = Debug;
+ };
+ 1DEB922008733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ DSTROOT = /tmp/MumbleKit.dst;
+ FRAMEWORK_SEARCH_PATHS = "";
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = src/MumbleKit.pch;
+ HEADER_SEARCH_PATHS = (
+ "${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/Headers//**",
+ "${TARGET_BUILD_DIR}/${PROJECT_NAME}.framework/Headers/MumbleProtocol//**",
+ );
+ INSTALL_PATH = /usr/local/lib;
+ PRODUCT_NAME = MumbleKit;
+ };
+ name = Release;
+ };
+ 1DEB922308733DC00010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "./**";
+ MACH_O_TYPE = staticlib;
+ OTHER_LDFLAGS = "-ObjC";
+ PREBINDING = NO;
+ SDKROOT = iphoneos3.1.3;
+ VALID_ARCHS = "i386 armv6 armv7";
+ };
+ name = Debug;
+ };
+ 1DEB922408733DC00010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "./**";
+ MACH_O_TYPE = staticlib;
+ OTHER_LDFLAGS = "-ObjC";
+ PREBINDING = NO;
+ SDKROOT = iphoneos3.1.3;
+ VALID_ARCHS = "i386 armv6 armv7";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "MumbleKit" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB921F08733DC00010E9CD /* Debug */,
+ 1DEB922008733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "MumbleKit" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB922308733DC00010E9CD /* Debug */,
+ 1DEB922408733DC00010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
diff --git a/README b/README
new file mode 100644
index 0000000..99c4a21
--- /dev/null
+++ b/README
@@ -0,0 +1,42 @@
+Last-Updated: March 16 2010)
+
+MumbleKit - A Mumble client framework for iPhoneOS
+=================================================
+
+This is the source code of MumbleKit - a Mumble client framework
+for iPhoneOS-based devices.
+
+Mumble is gaming-focused social voice chat utility. The desktop
+version runs of Windows, Mac OS X, Linux and various other Unix-like
+systems. Visit its website at:
+
+ <http://mumble.info/>
+
+Building it
+===========
+
+To build this you need the iPhoneOS 3.0 SDK from Apple and an
+Intel Mac running Mac OS X 10.5 or later.
+
+Before starting your build, you will need to check out the re-
+quired submodules.
+
+ $ git submodule init
+ $ git submodule update
+
+This will fetch known "working" snapshot of CELT, Speex and
+Protocol Buffers for Objective C.
+
+Building it (Xcode.app)
+=======================
+
+To build using Xcode, simply open the MumbleKit Xcode project
+(MumbleKit.xcodeproj in the root of the source tree) and press
+Cmd-B to build.
+
+Building it (command line)
+=========================
+
+To build from the command line, do something like this:
+
+ $ xcodebuild -project MumbleKit.xcodeproj -sdk iphonesimulator3.1.3 -target MumbleKit -configuration Debug
diff --git a/proto/Descriptor.pb.h b/proto/Descriptor.pb.h
new file mode 100644
index 0000000..ea9df66
--- /dev/null
+++ b/proto/Descriptor.pb.h
@@ -0,0 +1,1404 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+@class PBDescriptorProto;
+@class PBDescriptorProto_Builder;
+@class PBDescriptorProto_ExtensionRange;
+@class PBDescriptorProto_ExtensionRange_Builder;
+@class PBEnumDescriptorProto;
+@class PBEnumDescriptorProto_Builder;
+@class PBEnumOptions;
+@class PBEnumOptions_Builder;
+@class PBEnumValueDescriptorProto;
+@class PBEnumValueDescriptorProto_Builder;
+@class PBEnumValueOptions;
+@class PBEnumValueOptions_Builder;
+@class PBFieldDescriptorProto;
+@class PBFieldDescriptorProto_Builder;
+@class PBFieldOptions;
+@class PBFieldOptions_Builder;
+@class PBFileDescriptorProto;
+@class PBFileDescriptorProto_Builder;
+@class PBFileDescriptorSet;
+@class PBFileDescriptorSet_Builder;
+@class PBFileOptions;
+@class PBFileOptions_Builder;
+@class PBMessageOptions;
+@class PBMessageOptions_Builder;
+@class PBMethodDescriptorProto;
+@class PBMethodDescriptorProto_Builder;
+@class PBMethodOptions;
+@class PBMethodOptions_Builder;
+@class PBServiceDescriptorProto;
+@class PBServiceDescriptorProto_Builder;
+@class PBServiceOptions;
+@class PBServiceOptions_Builder;
+@class PBUninterpretedOption;
+@class PBUninterpretedOption_Builder;
+@class PBUninterpretedOption_NamePart;
+@class PBUninterpretedOption_NamePart_Builder;
+typedef enum {
+ PBFieldDescriptorProto_TypeTypeDouble = 1,
+ PBFieldDescriptorProto_TypeTypeFloat = 2,
+ PBFieldDescriptorProto_TypeTypeInt64 = 3,
+ PBFieldDescriptorProto_TypeTypeUint64 = 4,
+ PBFieldDescriptorProto_TypeTypeInt32 = 5,
+ PBFieldDescriptorProto_TypeTypeFixed64 = 6,
+ PBFieldDescriptorProto_TypeTypeFixed32 = 7,
+ PBFieldDescriptorProto_TypeTypeBool = 8,
+ PBFieldDescriptorProto_TypeTypeString = 9,
+ PBFieldDescriptorProto_TypeTypeGroup = 10,
+ PBFieldDescriptorProto_TypeTypeMessage = 11,
+ PBFieldDescriptorProto_TypeTypeBytes = 12,
+ PBFieldDescriptorProto_TypeTypeUint32 = 13,
+ PBFieldDescriptorProto_TypeTypeEnum = 14,
+ PBFieldDescriptorProto_TypeTypeSfixed32 = 15,
+ PBFieldDescriptorProto_TypeTypeSfixed64 = 16,
+ PBFieldDescriptorProto_TypeTypeSint32 = 17,
+ PBFieldDescriptorProto_TypeTypeSint64 = 18,
+} PBFieldDescriptorProto_Type;
+
+BOOL PBFieldDescriptorProto_TypeIsValidValue(PBFieldDescriptorProto_Type value);
+
+typedef enum {
+ PBFieldDescriptorProto_LabelLabelOptional = 1,
+ PBFieldDescriptorProto_LabelLabelRequired = 2,
+ PBFieldDescriptorProto_LabelLabelRepeated = 3,
+} PBFieldDescriptorProto_Label;
+
+BOOL PBFieldDescriptorProto_LabelIsValidValue(PBFieldDescriptorProto_Label value);
+
+typedef enum {
+ PBFileOptions_OptimizeModeSpeed = 1,
+ PBFileOptions_OptimizeModeCodeSize = 2,
+ PBFileOptions_OptimizeModeLiteRuntime = 3,
+} PBFileOptions_OptimizeMode;
+
+BOOL PBFileOptions_OptimizeModeIsValidValue(PBFileOptions_OptimizeMode value);
+
+typedef enum {
+ PBFieldOptions_CTypeCord = 1,
+ PBFieldOptions_CTypeStringPiece = 2,
+} PBFieldOptions_CType;
+
+BOOL PBFieldOptions_CTypeIsValidValue(PBFieldOptions_CType value);
+
+
+@interface PBDescriptorRoot : NSObject {
+}
++ (PBExtensionRegistry*) extensionRegistry;
++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry;
+@end
+
+@interface PBFileDescriptorSet : PBGeneratedMessage {
+@private
+ NSMutableArray* mutableFileList;
+}
+- (NSArray*) fileList;
+- (PBFileDescriptorProto*) fileAtIndex:(int32_t) index;
+
++ (PBFileDescriptorSet*) defaultInstance;
+- (PBFileDescriptorSet*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBFileDescriptorSet_Builder*) builder;
++ (PBFileDescriptorSet_Builder*) builder;
++ (PBFileDescriptorSet_Builder*) builderWithPrototype:(PBFileDescriptorSet*) prototype;
+
++ (PBFileDescriptorSet*) parseFromData:(NSData*) data;
++ (PBFileDescriptorSet*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFileDescriptorSet*) parseFromInputStream:(NSInputStream*) input;
++ (PBFileDescriptorSet*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFileDescriptorSet*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBFileDescriptorSet*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBFileDescriptorSet_Builder : PBGeneratedMessage_Builder {
+@private
+ PBFileDescriptorSet* result;
+}
+
+- (PBFileDescriptorSet*) defaultInstance;
+
+- (PBFileDescriptorSet_Builder*) clear;
+- (PBFileDescriptorSet_Builder*) clone;
+
+- (PBFileDescriptorSet*) build;
+- (PBFileDescriptorSet*) buildPartial;
+
+- (PBFileDescriptorSet_Builder*) mergeFrom:(PBFileDescriptorSet*) other;
+- (PBFileDescriptorSet_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBFileDescriptorSet_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) fileList;
+- (PBFileDescriptorProto*) fileAtIndex:(int32_t) index;
+- (PBFileDescriptorSet_Builder*) replaceFileAtIndex:(int32_t) index with:(PBFileDescriptorProto*) value;
+- (PBFileDescriptorSet_Builder*) addFile:(PBFileDescriptorProto*) value;
+- (PBFileDescriptorSet_Builder*) addAllFile:(NSArray*) values;
+- (PBFileDescriptorSet_Builder*) clearFileList;
+@end
+
+@interface PBFileDescriptorProto : PBGeneratedMessage {
+@private
+ BOOL hasName_:1;
+ BOOL hasPackage_:1;
+ BOOL hasOptions_:1;
+ NSString* name;
+ NSString* package;
+ PBFileOptions* options;
+ NSMutableArray* mutableDependencyList;
+ NSMutableArray* mutableMessageTypeList;
+ NSMutableArray* mutableEnumTypeList;
+ NSMutableArray* mutableServiceList;
+ NSMutableArray* mutableExtensionList;
+}
+- (BOOL) hasName;
+- (BOOL) hasPackage;
+- (BOOL) hasOptions;
+@property (readonly, retain) NSString* name;
+@property (readonly, retain) NSString* package;
+@property (readonly, retain) PBFileOptions* options;
+- (NSArray*) dependencyList;
+- (NSString*) dependencyAtIndex:(int32_t) index;
+- (NSArray*) messageTypeList;
+- (PBDescriptorProto*) messageTypeAtIndex:(int32_t) index;
+- (NSArray*) enumTypeList;
+- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index;
+- (NSArray*) serviceList;
+- (PBServiceDescriptorProto*) serviceAtIndex:(int32_t) index;
+- (NSArray*) extensionList;
+- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index;
+
++ (PBFileDescriptorProto*) defaultInstance;
+- (PBFileDescriptorProto*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBFileDescriptorProto_Builder*) builder;
++ (PBFileDescriptorProto_Builder*) builder;
++ (PBFileDescriptorProto_Builder*) builderWithPrototype:(PBFileDescriptorProto*) prototype;
+
++ (PBFileDescriptorProto*) parseFromData:(NSData*) data;
++ (PBFileDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFileDescriptorProto*) parseFromInputStream:(NSInputStream*) input;
++ (PBFileDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFileDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBFileDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBFileDescriptorProto_Builder : PBGeneratedMessage_Builder {
+@private
+ PBFileDescriptorProto* result;
+}
+
+- (PBFileDescriptorProto*) defaultInstance;
+
+- (PBFileDescriptorProto_Builder*) clear;
+- (PBFileDescriptorProto_Builder*) clone;
+
+- (PBFileDescriptorProto*) build;
+- (PBFileDescriptorProto*) buildPartial;
+
+- (PBFileDescriptorProto_Builder*) mergeFrom:(PBFileDescriptorProto*) other;
+- (PBFileDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBFileDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (PBFileDescriptorProto_Builder*) setName:(NSString*) value;
+- (PBFileDescriptorProto_Builder*) clearName;
+
+- (BOOL) hasPackage;
+- (NSString*) package;
+- (PBFileDescriptorProto_Builder*) setPackage:(NSString*) value;
+- (PBFileDescriptorProto_Builder*) clearPackage;
+
+- (NSArray*) dependencyList;
+- (NSString*) dependencyAtIndex:(int32_t) index;
+- (PBFileDescriptorProto_Builder*) replaceDependencyAtIndex:(int32_t) index with:(NSString*) value;
+- (PBFileDescriptorProto_Builder*) addDependency:(NSString*) value;
+- (PBFileDescriptorProto_Builder*) addAllDependency:(NSArray*) values;
+- (PBFileDescriptorProto_Builder*) clearDependencyList;
+
+- (NSArray*) messageTypeList;
+- (PBDescriptorProto*) messageTypeAtIndex:(int32_t) index;
+- (PBFileDescriptorProto_Builder*) replaceMessageTypeAtIndex:(int32_t) index with:(PBDescriptorProto*) value;
+- (PBFileDescriptorProto_Builder*) addMessageType:(PBDescriptorProto*) value;
+- (PBFileDescriptorProto_Builder*) addAllMessageType:(NSArray*) values;
+- (PBFileDescriptorProto_Builder*) clearMessageTypeList;
+
+- (NSArray*) enumTypeList;
+- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index;
+- (PBFileDescriptorProto_Builder*) replaceEnumTypeAtIndex:(int32_t) index with:(PBEnumDescriptorProto*) value;
+- (PBFileDescriptorProto_Builder*) addEnumType:(PBEnumDescriptorProto*) value;
+- (PBFileDescriptorProto_Builder*) addAllEnumType:(NSArray*) values;
+- (PBFileDescriptorProto_Builder*) clearEnumTypeList;
+
+- (NSArray*) serviceList;
+- (PBServiceDescriptorProto*) serviceAtIndex:(int32_t) index;
+- (PBFileDescriptorProto_Builder*) replaceServiceAtIndex:(int32_t) index with:(PBServiceDescriptorProto*) value;
+- (PBFileDescriptorProto_Builder*) addService:(PBServiceDescriptorProto*) value;
+- (PBFileDescriptorProto_Builder*) addAllService:(NSArray*) values;
+- (PBFileDescriptorProto_Builder*) clearServiceList;
+
+- (NSArray*) extensionList;
+- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index;
+- (PBFileDescriptorProto_Builder*) replaceExtensionAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value;
+- (PBFileDescriptorProto_Builder*) addExtension:(PBFieldDescriptorProto*) value;
+- (PBFileDescriptorProto_Builder*) addAllExtension:(NSArray*) values;
+- (PBFileDescriptorProto_Builder*) clearExtensionList;
+
+- (BOOL) hasOptions;
+- (PBFileOptions*) options;
+- (PBFileDescriptorProto_Builder*) setOptions:(PBFileOptions*) value;
+- (PBFileDescriptorProto_Builder*) setOptionsBuilder:(PBFileOptions_Builder*) builderForValue;
+- (PBFileDescriptorProto_Builder*) mergeOptions:(PBFileOptions*) value;
+- (PBFileDescriptorProto_Builder*) clearOptions;
+@end
+
+@interface PBDescriptorProto : PBGeneratedMessage {
+@private
+ BOOL hasName_:1;
+ BOOL hasOptions_:1;
+ NSString* name;
+ PBMessageOptions* options;
+ NSMutableArray* mutableFieldList;
+ NSMutableArray* mutableExtensionList;
+ NSMutableArray* mutableNestedTypeList;
+ NSMutableArray* mutableEnumTypeList;
+ NSMutableArray* mutableExtensionRangeList;
+}
+- (BOOL) hasName;
+- (BOOL) hasOptions;
+@property (readonly, retain) NSString* name;
+@property (readonly, retain) PBMessageOptions* options;
+- (NSArray*) fieldList;
+- (PBFieldDescriptorProto*) fieldAtIndex:(int32_t) index;
+- (NSArray*) extensionList;
+- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index;
+- (NSArray*) nestedTypeList;
+- (PBDescriptorProto*) nestedTypeAtIndex:(int32_t) index;
+- (NSArray*) enumTypeList;
+- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index;
+- (NSArray*) extensionRangeList;
+- (PBDescriptorProto_ExtensionRange*) extensionRangeAtIndex:(int32_t) index;
+
++ (PBDescriptorProto*) defaultInstance;
+- (PBDescriptorProto*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBDescriptorProto_Builder*) builder;
++ (PBDescriptorProto_Builder*) builder;
++ (PBDescriptorProto_Builder*) builderWithPrototype:(PBDescriptorProto*) prototype;
+
++ (PBDescriptorProto*) parseFromData:(NSData*) data;
++ (PBDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBDescriptorProto*) parseFromInputStream:(NSInputStream*) input;
++ (PBDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBDescriptorProto_ExtensionRange : PBGeneratedMessage {
+@private
+ BOOL hasStart_:1;
+ BOOL hasEnd_:1;
+ int32_t start;
+ int32_t end;
+}
+- (BOOL) hasStart;
+- (BOOL) hasEnd;
+@property (readonly) int32_t start;
+@property (readonly) int32_t end;
+
++ (PBDescriptorProto_ExtensionRange*) defaultInstance;
+- (PBDescriptorProto_ExtensionRange*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBDescriptorProto_ExtensionRange_Builder*) builder;
++ (PBDescriptorProto_ExtensionRange_Builder*) builder;
++ (PBDescriptorProto_ExtensionRange_Builder*) builderWithPrototype:(PBDescriptorProto_ExtensionRange*) prototype;
+
++ (PBDescriptorProto_ExtensionRange*) parseFromData:(NSData*) data;
++ (PBDescriptorProto_ExtensionRange*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBDescriptorProto_ExtensionRange*) parseFromInputStream:(NSInputStream*) input;
++ (PBDescriptorProto_ExtensionRange*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBDescriptorProto_ExtensionRange*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBDescriptorProto_ExtensionRange*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBDescriptorProto_ExtensionRange_Builder : PBGeneratedMessage_Builder {
+@private
+ PBDescriptorProto_ExtensionRange* result;
+}
+
+- (PBDescriptorProto_ExtensionRange*) defaultInstance;
+
+- (PBDescriptorProto_ExtensionRange_Builder*) clear;
+- (PBDescriptorProto_ExtensionRange_Builder*) clone;
+
+- (PBDescriptorProto_ExtensionRange*) build;
+- (PBDescriptorProto_ExtensionRange*) buildPartial;
+
+- (PBDescriptorProto_ExtensionRange_Builder*) mergeFrom:(PBDescriptorProto_ExtensionRange*) other;
+- (PBDescriptorProto_ExtensionRange_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBDescriptorProto_ExtensionRange_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasStart;
+- (int32_t) start;
+- (PBDescriptorProto_ExtensionRange_Builder*) setStart:(int32_t) value;
+- (PBDescriptorProto_ExtensionRange_Builder*) clearStart;
+
+- (BOOL) hasEnd;
+- (int32_t) end;
+- (PBDescriptorProto_ExtensionRange_Builder*) setEnd:(int32_t) value;
+- (PBDescriptorProto_ExtensionRange_Builder*) clearEnd;
+@end
+
+@interface PBDescriptorProto_Builder : PBGeneratedMessage_Builder {
+@private
+ PBDescriptorProto* result;
+}
+
+- (PBDescriptorProto*) defaultInstance;
+
+- (PBDescriptorProto_Builder*) clear;
+- (PBDescriptorProto_Builder*) clone;
+
+- (PBDescriptorProto*) build;
+- (PBDescriptorProto*) buildPartial;
+
+- (PBDescriptorProto_Builder*) mergeFrom:(PBDescriptorProto*) other;
+- (PBDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (PBDescriptorProto_Builder*) setName:(NSString*) value;
+- (PBDescriptorProto_Builder*) clearName;
+
+- (NSArray*) fieldList;
+- (PBFieldDescriptorProto*) fieldAtIndex:(int32_t) index;
+- (PBDescriptorProto_Builder*) replaceFieldAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value;
+- (PBDescriptorProto_Builder*) addField:(PBFieldDescriptorProto*) value;
+- (PBDescriptorProto_Builder*) addAllField:(NSArray*) values;
+- (PBDescriptorProto_Builder*) clearFieldList;
+
+- (NSArray*) extensionList;
+- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index;
+- (PBDescriptorProto_Builder*) replaceExtensionAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value;
+- (PBDescriptorProto_Builder*) addExtension:(PBFieldDescriptorProto*) value;
+- (PBDescriptorProto_Builder*) addAllExtension:(NSArray*) values;
+- (PBDescriptorProto_Builder*) clearExtensionList;
+
+- (NSArray*) nestedTypeList;
+- (PBDescriptorProto*) nestedTypeAtIndex:(int32_t) index;
+- (PBDescriptorProto_Builder*) replaceNestedTypeAtIndex:(int32_t) index with:(PBDescriptorProto*) value;
+- (PBDescriptorProto_Builder*) addNestedType:(PBDescriptorProto*) value;
+- (PBDescriptorProto_Builder*) addAllNestedType:(NSArray*) values;
+- (PBDescriptorProto_Builder*) clearNestedTypeList;
+
+- (NSArray*) enumTypeList;
+- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index;
+- (PBDescriptorProto_Builder*) replaceEnumTypeAtIndex:(int32_t) index with:(PBEnumDescriptorProto*) value;
+- (PBDescriptorProto_Builder*) addEnumType:(PBEnumDescriptorProto*) value;
+- (PBDescriptorProto_Builder*) addAllEnumType:(NSArray*) values;
+- (PBDescriptorProto_Builder*) clearEnumTypeList;
+
+- (NSArray*) extensionRangeList;
+- (PBDescriptorProto_ExtensionRange*) extensionRangeAtIndex:(int32_t) index;
+- (PBDescriptorProto_Builder*) replaceExtensionRangeAtIndex:(int32_t) index with:(PBDescriptorProto_ExtensionRange*) value;
+- (PBDescriptorProto_Builder*) addExtensionRange:(PBDescriptorProto_ExtensionRange*) value;
+- (PBDescriptorProto_Builder*) addAllExtensionRange:(NSArray*) values;
+- (PBDescriptorProto_Builder*) clearExtensionRangeList;
+
+- (BOOL) hasOptions;
+- (PBMessageOptions*) options;
+- (PBDescriptorProto_Builder*) setOptions:(PBMessageOptions*) value;
+- (PBDescriptorProto_Builder*) setOptionsBuilder:(PBMessageOptions_Builder*) builderForValue;
+- (PBDescriptorProto_Builder*) mergeOptions:(PBMessageOptions*) value;
+- (PBDescriptorProto_Builder*) clearOptions;
+@end
+
+@interface PBFieldDescriptorProto : PBGeneratedMessage {
+@private
+ BOOL hasNumber_:1;
+ BOOL hasName_:1;
+ BOOL hasTypeName_:1;
+ BOOL hasExtendee_:1;
+ BOOL hasDefaultValue_:1;
+ BOOL hasOptions_:1;
+ BOOL hasLabel_:1;
+ BOOL hasType_:1;
+ int32_t number;
+ NSString* name;
+ NSString* typeName;
+ NSString* extendee;
+ NSString* defaultValue;
+ PBFieldOptions* options;
+ PBFieldDescriptorProto_Label label;
+ PBFieldDescriptorProto_Type type;
+}
+- (BOOL) hasName;
+- (BOOL) hasNumber;
+- (BOOL) hasLabel;
+- (BOOL) hasType;
+- (BOOL) hasTypeName;
+- (BOOL) hasExtendee;
+- (BOOL) hasDefaultValue;
+- (BOOL) hasOptions;
+@property (readonly, retain) NSString* name;
+@property (readonly) int32_t number;
+@property (readonly) PBFieldDescriptorProto_Label label;
+@property (readonly) PBFieldDescriptorProto_Type type;
+@property (readonly, retain) NSString* typeName;
+@property (readonly, retain) NSString* extendee;
+@property (readonly, retain) NSString* defaultValue;
+@property (readonly, retain) PBFieldOptions* options;
+
++ (PBFieldDescriptorProto*) defaultInstance;
+- (PBFieldDescriptorProto*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBFieldDescriptorProto_Builder*) builder;
++ (PBFieldDescriptorProto_Builder*) builder;
++ (PBFieldDescriptorProto_Builder*) builderWithPrototype:(PBFieldDescriptorProto*) prototype;
+
++ (PBFieldDescriptorProto*) parseFromData:(NSData*) data;
++ (PBFieldDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFieldDescriptorProto*) parseFromInputStream:(NSInputStream*) input;
++ (PBFieldDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFieldDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBFieldDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBFieldDescriptorProto_Builder : PBGeneratedMessage_Builder {
+@private
+ PBFieldDescriptorProto* result;
+}
+
+- (PBFieldDescriptorProto*) defaultInstance;
+
+- (PBFieldDescriptorProto_Builder*) clear;
+- (PBFieldDescriptorProto_Builder*) clone;
+
+- (PBFieldDescriptorProto*) build;
+- (PBFieldDescriptorProto*) buildPartial;
+
+- (PBFieldDescriptorProto_Builder*) mergeFrom:(PBFieldDescriptorProto*) other;
+- (PBFieldDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBFieldDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (PBFieldDescriptorProto_Builder*) setName:(NSString*) value;
+- (PBFieldDescriptorProto_Builder*) clearName;
+
+- (BOOL) hasNumber;
+- (int32_t) number;
+- (PBFieldDescriptorProto_Builder*) setNumber:(int32_t) value;
+- (PBFieldDescriptorProto_Builder*) clearNumber;
+
+- (BOOL) hasLabel;
+- (PBFieldDescriptorProto_Label) label;
+- (PBFieldDescriptorProto_Builder*) setLabel:(PBFieldDescriptorProto_Label) value;
+- (PBFieldDescriptorProto_Builder*) clearLabel;
+
+- (BOOL) hasType;
+- (PBFieldDescriptorProto_Type) type;
+- (PBFieldDescriptorProto_Builder*) setType:(PBFieldDescriptorProto_Type) value;
+- (PBFieldDescriptorProto_Builder*) clearType;
+
+- (BOOL) hasTypeName;
+- (NSString*) typeName;
+- (PBFieldDescriptorProto_Builder*) setTypeName:(NSString*) value;
+- (PBFieldDescriptorProto_Builder*) clearTypeName;
+
+- (BOOL) hasExtendee;
+- (NSString*) extendee;
+- (PBFieldDescriptorProto_Builder*) setExtendee:(NSString*) value;
+- (PBFieldDescriptorProto_Builder*) clearExtendee;
+
+- (BOOL) hasDefaultValue;
+- (NSString*) defaultValue;
+- (PBFieldDescriptorProto_Builder*) setDefaultValue:(NSString*) value;
+- (PBFieldDescriptorProto_Builder*) clearDefaultValue;
+
+- (BOOL) hasOptions;
+- (PBFieldOptions*) options;
+- (PBFieldDescriptorProto_Builder*) setOptions:(PBFieldOptions*) value;
+- (PBFieldDescriptorProto_Builder*) setOptionsBuilder:(PBFieldOptions_Builder*) builderForValue;
+- (PBFieldDescriptorProto_Builder*) mergeOptions:(PBFieldOptions*) value;
+- (PBFieldDescriptorProto_Builder*) clearOptions;
+@end
+
+@interface PBEnumDescriptorProto : PBGeneratedMessage {
+@private
+ BOOL hasName_:1;
+ BOOL hasOptions_:1;
+ NSString* name;
+ PBEnumOptions* options;
+ NSMutableArray* mutableValueList;
+}
+- (BOOL) hasName;
+- (BOOL) hasOptions;
+@property (readonly, retain) NSString* name;
+@property (readonly, retain) PBEnumOptions* options;
+- (NSArray*) valueList;
+- (PBEnumValueDescriptorProto*) valueAtIndex:(int32_t) index;
+
++ (PBEnumDescriptorProto*) defaultInstance;
+- (PBEnumDescriptorProto*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBEnumDescriptorProto_Builder*) builder;
++ (PBEnumDescriptorProto_Builder*) builder;
++ (PBEnumDescriptorProto_Builder*) builderWithPrototype:(PBEnumDescriptorProto*) prototype;
+
++ (PBEnumDescriptorProto*) parseFromData:(NSData*) data;
++ (PBEnumDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBEnumDescriptorProto*) parseFromInputStream:(NSInputStream*) input;
++ (PBEnumDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBEnumDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBEnumDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBEnumDescriptorProto_Builder : PBGeneratedMessage_Builder {
+@private
+ PBEnumDescriptorProto* result;
+}
+
+- (PBEnumDescriptorProto*) defaultInstance;
+
+- (PBEnumDescriptorProto_Builder*) clear;
+- (PBEnumDescriptorProto_Builder*) clone;
+
+- (PBEnumDescriptorProto*) build;
+- (PBEnumDescriptorProto*) buildPartial;
+
+- (PBEnumDescriptorProto_Builder*) mergeFrom:(PBEnumDescriptorProto*) other;
+- (PBEnumDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBEnumDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (PBEnumDescriptorProto_Builder*) setName:(NSString*) value;
+- (PBEnumDescriptorProto_Builder*) clearName;
+
+- (NSArray*) valueList;
+- (PBEnumValueDescriptorProto*) valueAtIndex:(int32_t) index;
+- (PBEnumDescriptorProto_Builder*) replaceValueAtIndex:(int32_t) index with:(PBEnumValueDescriptorProto*) value;
+- (PBEnumDescriptorProto_Builder*) addValue:(PBEnumValueDescriptorProto*) value;
+- (PBEnumDescriptorProto_Builder*) addAllValue:(NSArray*) values;
+- (PBEnumDescriptorProto_Builder*) clearValueList;
+
+- (BOOL) hasOptions;
+- (PBEnumOptions*) options;
+- (PBEnumDescriptorProto_Builder*) setOptions:(PBEnumOptions*) value;
+- (PBEnumDescriptorProto_Builder*) setOptionsBuilder:(PBEnumOptions_Builder*) builderForValue;
+- (PBEnumDescriptorProto_Builder*) mergeOptions:(PBEnumOptions*) value;
+- (PBEnumDescriptorProto_Builder*) clearOptions;
+@end
+
+@interface PBEnumValueDescriptorProto : PBGeneratedMessage {
+@private
+ BOOL hasNumber_:1;
+ BOOL hasName_:1;
+ BOOL hasOptions_:1;
+ int32_t number;
+ NSString* name;
+ PBEnumValueOptions* options;
+}
+- (BOOL) hasName;
+- (BOOL) hasNumber;
+- (BOOL) hasOptions;
+@property (readonly, retain) NSString* name;
+@property (readonly) int32_t number;
+@property (readonly, retain) PBEnumValueOptions* options;
+
++ (PBEnumValueDescriptorProto*) defaultInstance;
+- (PBEnumValueDescriptorProto*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBEnumValueDescriptorProto_Builder*) builder;
++ (PBEnumValueDescriptorProto_Builder*) builder;
++ (PBEnumValueDescriptorProto_Builder*) builderWithPrototype:(PBEnumValueDescriptorProto*) prototype;
+
++ (PBEnumValueDescriptorProto*) parseFromData:(NSData*) data;
++ (PBEnumValueDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBEnumValueDescriptorProto*) parseFromInputStream:(NSInputStream*) input;
++ (PBEnumValueDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBEnumValueDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBEnumValueDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBEnumValueDescriptorProto_Builder : PBGeneratedMessage_Builder {
+@private
+ PBEnumValueDescriptorProto* result;
+}
+
+- (PBEnumValueDescriptorProto*) defaultInstance;
+
+- (PBEnumValueDescriptorProto_Builder*) clear;
+- (PBEnumValueDescriptorProto_Builder*) clone;
+
+- (PBEnumValueDescriptorProto*) build;
+- (PBEnumValueDescriptorProto*) buildPartial;
+
+- (PBEnumValueDescriptorProto_Builder*) mergeFrom:(PBEnumValueDescriptorProto*) other;
+- (PBEnumValueDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBEnumValueDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (PBEnumValueDescriptorProto_Builder*) setName:(NSString*) value;
+- (PBEnumValueDescriptorProto_Builder*) clearName;
+
+- (BOOL) hasNumber;
+- (int32_t) number;
+- (PBEnumValueDescriptorProto_Builder*) setNumber:(int32_t) value;
+- (PBEnumValueDescriptorProto_Builder*) clearNumber;
+
+- (BOOL) hasOptions;
+- (PBEnumValueOptions*) options;
+- (PBEnumValueDescriptorProto_Builder*) setOptions:(PBEnumValueOptions*) value;
+- (PBEnumValueDescriptorProto_Builder*) setOptionsBuilder:(PBEnumValueOptions_Builder*) builderForValue;
+- (PBEnumValueDescriptorProto_Builder*) mergeOptions:(PBEnumValueOptions*) value;
+- (PBEnumValueDescriptorProto_Builder*) clearOptions;
+@end
+
+@interface PBServiceDescriptorProto : PBGeneratedMessage {
+@private
+ BOOL hasName_:1;
+ BOOL hasOptions_:1;
+ NSString* name;
+ PBServiceOptions* options;
+ NSMutableArray* mutableMethodList;
+}
+- (BOOL) hasName;
+- (BOOL) hasOptions;
+@property (readonly, retain) NSString* name;
+@property (readonly, retain) PBServiceOptions* options;
+- (NSArray*) methodList;
+- (PBMethodDescriptorProto*) methodAtIndex:(int32_t) index;
+
++ (PBServiceDescriptorProto*) defaultInstance;
+- (PBServiceDescriptorProto*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBServiceDescriptorProto_Builder*) builder;
++ (PBServiceDescriptorProto_Builder*) builder;
++ (PBServiceDescriptorProto_Builder*) builderWithPrototype:(PBServiceDescriptorProto*) prototype;
+
++ (PBServiceDescriptorProto*) parseFromData:(NSData*) data;
++ (PBServiceDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBServiceDescriptorProto*) parseFromInputStream:(NSInputStream*) input;
++ (PBServiceDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBServiceDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBServiceDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBServiceDescriptorProto_Builder : PBGeneratedMessage_Builder {
+@private
+ PBServiceDescriptorProto* result;
+}
+
+- (PBServiceDescriptorProto*) defaultInstance;
+
+- (PBServiceDescriptorProto_Builder*) clear;
+- (PBServiceDescriptorProto_Builder*) clone;
+
+- (PBServiceDescriptorProto*) build;
+- (PBServiceDescriptorProto*) buildPartial;
+
+- (PBServiceDescriptorProto_Builder*) mergeFrom:(PBServiceDescriptorProto*) other;
+- (PBServiceDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBServiceDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (PBServiceDescriptorProto_Builder*) setName:(NSString*) value;
+- (PBServiceDescriptorProto_Builder*) clearName;
+
+- (NSArray*) methodList;
+- (PBMethodDescriptorProto*) methodAtIndex:(int32_t) index;
+- (PBServiceDescriptorProto_Builder*) replaceMethodAtIndex:(int32_t) index with:(PBMethodDescriptorProto*) value;
+- (PBServiceDescriptorProto_Builder*) addMethod:(PBMethodDescriptorProto*) value;
+- (PBServiceDescriptorProto_Builder*) addAllMethod:(NSArray*) values;
+- (PBServiceDescriptorProto_Builder*) clearMethodList;
+
+- (BOOL) hasOptions;
+- (PBServiceOptions*) options;
+- (PBServiceDescriptorProto_Builder*) setOptions:(PBServiceOptions*) value;
+- (PBServiceDescriptorProto_Builder*) setOptionsBuilder:(PBServiceOptions_Builder*) builderForValue;
+- (PBServiceDescriptorProto_Builder*) mergeOptions:(PBServiceOptions*) value;
+- (PBServiceDescriptorProto_Builder*) clearOptions;
+@end
+
+@interface PBMethodDescriptorProto : PBGeneratedMessage {
+@private
+ BOOL hasName_:1;
+ BOOL hasInputType_:1;
+ BOOL hasOutputType_:1;
+ BOOL hasOptions_:1;
+ NSString* name;
+ NSString* inputType;
+ NSString* outputType;
+ PBMethodOptions* options;
+}
+- (BOOL) hasName;
+- (BOOL) hasInputType;
+- (BOOL) hasOutputType;
+- (BOOL) hasOptions;
+@property (readonly, retain) NSString* name;
+@property (readonly, retain) NSString* inputType;
+@property (readonly, retain) NSString* outputType;
+@property (readonly, retain) PBMethodOptions* options;
+
++ (PBMethodDescriptorProto*) defaultInstance;
+- (PBMethodDescriptorProto*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBMethodDescriptorProto_Builder*) builder;
++ (PBMethodDescriptorProto_Builder*) builder;
++ (PBMethodDescriptorProto_Builder*) builderWithPrototype:(PBMethodDescriptorProto*) prototype;
+
++ (PBMethodDescriptorProto*) parseFromData:(NSData*) data;
++ (PBMethodDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBMethodDescriptorProto*) parseFromInputStream:(NSInputStream*) input;
++ (PBMethodDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBMethodDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBMethodDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBMethodDescriptorProto_Builder : PBGeneratedMessage_Builder {
+@private
+ PBMethodDescriptorProto* result;
+}
+
+- (PBMethodDescriptorProto*) defaultInstance;
+
+- (PBMethodDescriptorProto_Builder*) clear;
+- (PBMethodDescriptorProto_Builder*) clone;
+
+- (PBMethodDescriptorProto*) build;
+- (PBMethodDescriptorProto*) buildPartial;
+
+- (PBMethodDescriptorProto_Builder*) mergeFrom:(PBMethodDescriptorProto*) other;
+- (PBMethodDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBMethodDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (PBMethodDescriptorProto_Builder*) setName:(NSString*) value;
+- (PBMethodDescriptorProto_Builder*) clearName;
+
+- (BOOL) hasInputType;
+- (NSString*) inputType;
+- (PBMethodDescriptorProto_Builder*) setInputType:(NSString*) value;
+- (PBMethodDescriptorProto_Builder*) clearInputType;
+
+- (BOOL) hasOutputType;
+- (NSString*) outputType;
+- (PBMethodDescriptorProto_Builder*) setOutputType:(NSString*) value;
+- (PBMethodDescriptorProto_Builder*) clearOutputType;
+
+- (BOOL) hasOptions;
+- (PBMethodOptions*) options;
+- (PBMethodDescriptorProto_Builder*) setOptions:(PBMethodOptions*) value;
+- (PBMethodDescriptorProto_Builder*) setOptionsBuilder:(PBMethodOptions_Builder*) builderForValue;
+- (PBMethodDescriptorProto_Builder*) mergeOptions:(PBMethodOptions*) value;
+- (PBMethodDescriptorProto_Builder*) clearOptions;
+@end
+
+@interface PBFileOptions : PBExtendableMessage {
+@private
+ BOOL hasJavaMultipleFiles_:1;
+ BOOL hasJavaPackage_:1;
+ BOOL hasJavaOuterClassname_:1;
+ BOOL hasOptimizeFor_:1;
+ BOOL javaMultipleFiles_:1;
+ NSString* javaPackage;
+ NSString* javaOuterClassname;
+ PBFileOptions_OptimizeMode optimizeFor;
+ NSMutableArray* mutableUninterpretedOptionList;
+}
+- (BOOL) hasJavaPackage;
+- (BOOL) hasJavaOuterClassname;
+- (BOOL) hasJavaMultipleFiles;
+- (BOOL) hasOptimizeFor;
+@property (readonly, retain) NSString* javaPackage;
+@property (readonly, retain) NSString* javaOuterClassname;
+- (BOOL) javaMultipleFiles;
+@property (readonly) PBFileOptions_OptimizeMode optimizeFor;
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+
++ (PBFileOptions*) defaultInstance;
+- (PBFileOptions*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBFileOptions_Builder*) builder;
++ (PBFileOptions_Builder*) builder;
++ (PBFileOptions_Builder*) builderWithPrototype:(PBFileOptions*) prototype;
+
++ (PBFileOptions*) parseFromData:(NSData*) data;
++ (PBFileOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFileOptions*) parseFromInputStream:(NSInputStream*) input;
++ (PBFileOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBFileOptions_Builder : PBExtendableMessage_Builder {
+@private
+ PBFileOptions* result;
+}
+
+- (PBFileOptions*) defaultInstance;
+
+- (PBFileOptions_Builder*) clear;
+- (PBFileOptions_Builder*) clone;
+
+- (PBFileOptions*) build;
+- (PBFileOptions*) buildPartial;
+
+- (PBFileOptions_Builder*) mergeFrom:(PBFileOptions*) other;
+- (PBFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasJavaPackage;
+- (NSString*) javaPackage;
+- (PBFileOptions_Builder*) setJavaPackage:(NSString*) value;
+- (PBFileOptions_Builder*) clearJavaPackage;
+
+- (BOOL) hasJavaOuterClassname;
+- (NSString*) javaOuterClassname;
+- (PBFileOptions_Builder*) setJavaOuterClassname:(NSString*) value;
+- (PBFileOptions_Builder*) clearJavaOuterClassname;
+
+- (BOOL) hasJavaMultipleFiles;
+- (BOOL) javaMultipleFiles;
+- (PBFileOptions_Builder*) setJavaMultipleFiles:(BOOL) value;
+- (PBFileOptions_Builder*) clearJavaMultipleFiles;
+
+- (BOOL) hasOptimizeFor;
+- (PBFileOptions_OptimizeMode) optimizeFor;
+- (PBFileOptions_Builder*) setOptimizeFor:(PBFileOptions_OptimizeMode) value;
+- (PBFileOptions_Builder*) clearOptimizeFor;
+
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+- (PBFileOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value;
+- (PBFileOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value;
+- (PBFileOptions_Builder*) addAllUninterpretedOption:(NSArray*) values;
+- (PBFileOptions_Builder*) clearUninterpretedOptionList;
+@end
+
+@interface PBMessageOptions : PBExtendableMessage {
+@private
+ BOOL hasMessageSetWireFormat_:1;
+ BOOL hasNoStandardDescriptorAccessor_:1;
+ BOOL messageSetWireFormat_:1;
+ BOOL noStandardDescriptorAccessor_:1;
+ NSMutableArray* mutableUninterpretedOptionList;
+}
+- (BOOL) hasMessageSetWireFormat;
+- (BOOL) hasNoStandardDescriptorAccessor;
+- (BOOL) messageSetWireFormat;
+- (BOOL) noStandardDescriptorAccessor;
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+
++ (PBMessageOptions*) defaultInstance;
+- (PBMessageOptions*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBMessageOptions_Builder*) builder;
++ (PBMessageOptions_Builder*) builder;
++ (PBMessageOptions_Builder*) builderWithPrototype:(PBMessageOptions*) prototype;
+
++ (PBMessageOptions*) parseFromData:(NSData*) data;
++ (PBMessageOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBMessageOptions*) parseFromInputStream:(NSInputStream*) input;
++ (PBMessageOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBMessageOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBMessageOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBMessageOptions_Builder : PBExtendableMessage_Builder {
+@private
+ PBMessageOptions* result;
+}
+
+- (PBMessageOptions*) defaultInstance;
+
+- (PBMessageOptions_Builder*) clear;
+- (PBMessageOptions_Builder*) clone;
+
+- (PBMessageOptions*) build;
+- (PBMessageOptions*) buildPartial;
+
+- (PBMessageOptions_Builder*) mergeFrom:(PBMessageOptions*) other;
+- (PBMessageOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBMessageOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasMessageSetWireFormat;
+- (BOOL) messageSetWireFormat;
+- (PBMessageOptions_Builder*) setMessageSetWireFormat:(BOOL) value;
+- (PBMessageOptions_Builder*) clearMessageSetWireFormat;
+
+- (BOOL) hasNoStandardDescriptorAccessor;
+- (BOOL) noStandardDescriptorAccessor;
+- (PBMessageOptions_Builder*) setNoStandardDescriptorAccessor:(BOOL) value;
+- (PBMessageOptions_Builder*) clearNoStandardDescriptorAccessor;
+
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+- (PBMessageOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value;
+- (PBMessageOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value;
+- (PBMessageOptions_Builder*) addAllUninterpretedOption:(NSArray*) values;
+- (PBMessageOptions_Builder*) clearUninterpretedOptionList;
+@end
+
+@interface PBFieldOptions : PBExtendableMessage {
+@private
+ BOOL hasPacked_:1;
+ BOOL hasDeprecated_:1;
+ BOOL hasExperimentalMapKey_:1;
+ BOOL hasCtype_:1;
+ BOOL packed_:1;
+ BOOL deprecated_:1;
+ NSString* experimentalMapKey;
+ PBFieldOptions_CType ctype;
+ NSMutableArray* mutableUninterpretedOptionList;
+}
+- (BOOL) hasCtype;
+- (BOOL) hasPacked;
+- (BOOL) hasDeprecated;
+- (BOOL) hasExperimentalMapKey;
+@property (readonly) PBFieldOptions_CType ctype;
+- (BOOL) packed;
+- (BOOL) deprecated;
+@property (readonly, retain) NSString* experimentalMapKey;
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+
++ (PBFieldOptions*) defaultInstance;
+- (PBFieldOptions*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBFieldOptions_Builder*) builder;
++ (PBFieldOptions_Builder*) builder;
++ (PBFieldOptions_Builder*) builderWithPrototype:(PBFieldOptions*) prototype;
+
++ (PBFieldOptions*) parseFromData:(NSData*) data;
++ (PBFieldOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFieldOptions*) parseFromInputStream:(NSInputStream*) input;
++ (PBFieldOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBFieldOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBFieldOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBFieldOptions_Builder : PBExtendableMessage_Builder {
+@private
+ PBFieldOptions* result;
+}
+
+- (PBFieldOptions*) defaultInstance;
+
+- (PBFieldOptions_Builder*) clear;
+- (PBFieldOptions_Builder*) clone;
+
+- (PBFieldOptions*) build;
+- (PBFieldOptions*) buildPartial;
+
+- (PBFieldOptions_Builder*) mergeFrom:(PBFieldOptions*) other;
+- (PBFieldOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBFieldOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasCtype;
+- (PBFieldOptions_CType) ctype;
+- (PBFieldOptions_Builder*) setCtype:(PBFieldOptions_CType) value;
+- (PBFieldOptions_Builder*) clearCtype;
+
+- (BOOL) hasPacked;
+- (BOOL) packed;
+- (PBFieldOptions_Builder*) setPacked:(BOOL) value;
+- (PBFieldOptions_Builder*) clearPacked;
+
+- (BOOL) hasDeprecated;
+- (BOOL) deprecated;
+- (PBFieldOptions_Builder*) setDeprecated:(BOOL) value;
+- (PBFieldOptions_Builder*) clearDeprecated;
+
+- (BOOL) hasExperimentalMapKey;
+- (NSString*) experimentalMapKey;
+- (PBFieldOptions_Builder*) setExperimentalMapKey:(NSString*) value;
+- (PBFieldOptions_Builder*) clearExperimentalMapKey;
+
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+- (PBFieldOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value;
+- (PBFieldOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value;
+- (PBFieldOptions_Builder*) addAllUninterpretedOption:(NSArray*) values;
+- (PBFieldOptions_Builder*) clearUninterpretedOptionList;
+@end
+
+@interface PBEnumOptions : PBExtendableMessage {
+@private
+ NSMutableArray* mutableUninterpretedOptionList;
+}
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+
++ (PBEnumOptions*) defaultInstance;
+- (PBEnumOptions*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBEnumOptions_Builder*) builder;
++ (PBEnumOptions_Builder*) builder;
++ (PBEnumOptions_Builder*) builderWithPrototype:(PBEnumOptions*) prototype;
+
++ (PBEnumOptions*) parseFromData:(NSData*) data;
++ (PBEnumOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBEnumOptions*) parseFromInputStream:(NSInputStream*) input;
++ (PBEnumOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBEnumOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBEnumOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBEnumOptions_Builder : PBExtendableMessage_Builder {
+@private
+ PBEnumOptions* result;
+}
+
+- (PBEnumOptions*) defaultInstance;
+
+- (PBEnumOptions_Builder*) clear;
+- (PBEnumOptions_Builder*) clone;
+
+- (PBEnumOptions*) build;
+- (PBEnumOptions*) buildPartial;
+
+- (PBEnumOptions_Builder*) mergeFrom:(PBEnumOptions*) other;
+- (PBEnumOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBEnumOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+- (PBEnumOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value;
+- (PBEnumOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value;
+- (PBEnumOptions_Builder*) addAllUninterpretedOption:(NSArray*) values;
+- (PBEnumOptions_Builder*) clearUninterpretedOptionList;
+@end
+
+@interface PBEnumValueOptions : PBExtendableMessage {
+@private
+ NSMutableArray* mutableUninterpretedOptionList;
+}
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+
++ (PBEnumValueOptions*) defaultInstance;
+- (PBEnumValueOptions*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBEnumValueOptions_Builder*) builder;
++ (PBEnumValueOptions_Builder*) builder;
++ (PBEnumValueOptions_Builder*) builderWithPrototype:(PBEnumValueOptions*) prototype;
+
++ (PBEnumValueOptions*) parseFromData:(NSData*) data;
++ (PBEnumValueOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBEnumValueOptions*) parseFromInputStream:(NSInputStream*) input;
++ (PBEnumValueOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBEnumValueOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBEnumValueOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBEnumValueOptions_Builder : PBExtendableMessage_Builder {
+@private
+ PBEnumValueOptions* result;
+}
+
+- (PBEnumValueOptions*) defaultInstance;
+
+- (PBEnumValueOptions_Builder*) clear;
+- (PBEnumValueOptions_Builder*) clone;
+
+- (PBEnumValueOptions*) build;
+- (PBEnumValueOptions*) buildPartial;
+
+- (PBEnumValueOptions_Builder*) mergeFrom:(PBEnumValueOptions*) other;
+- (PBEnumValueOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBEnumValueOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+- (PBEnumValueOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value;
+- (PBEnumValueOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value;
+- (PBEnumValueOptions_Builder*) addAllUninterpretedOption:(NSArray*) values;
+- (PBEnumValueOptions_Builder*) clearUninterpretedOptionList;
+@end
+
+@interface PBServiceOptions : PBExtendableMessage {
+@private
+ NSMutableArray* mutableUninterpretedOptionList;
+}
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+
++ (PBServiceOptions*) defaultInstance;
+- (PBServiceOptions*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBServiceOptions_Builder*) builder;
++ (PBServiceOptions_Builder*) builder;
++ (PBServiceOptions_Builder*) builderWithPrototype:(PBServiceOptions*) prototype;
+
++ (PBServiceOptions*) parseFromData:(NSData*) data;
++ (PBServiceOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBServiceOptions*) parseFromInputStream:(NSInputStream*) input;
++ (PBServiceOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBServiceOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBServiceOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBServiceOptions_Builder : PBExtendableMessage_Builder {
+@private
+ PBServiceOptions* result;
+}
+
+- (PBServiceOptions*) defaultInstance;
+
+- (PBServiceOptions_Builder*) clear;
+- (PBServiceOptions_Builder*) clone;
+
+- (PBServiceOptions*) build;
+- (PBServiceOptions*) buildPartial;
+
+- (PBServiceOptions_Builder*) mergeFrom:(PBServiceOptions*) other;
+- (PBServiceOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBServiceOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+- (PBServiceOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value;
+- (PBServiceOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value;
+- (PBServiceOptions_Builder*) addAllUninterpretedOption:(NSArray*) values;
+- (PBServiceOptions_Builder*) clearUninterpretedOptionList;
+@end
+
+@interface PBMethodOptions : PBExtendableMessage {
+@private
+ NSMutableArray* mutableUninterpretedOptionList;
+}
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+
++ (PBMethodOptions*) defaultInstance;
+- (PBMethodOptions*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBMethodOptions_Builder*) builder;
++ (PBMethodOptions_Builder*) builder;
++ (PBMethodOptions_Builder*) builderWithPrototype:(PBMethodOptions*) prototype;
+
++ (PBMethodOptions*) parseFromData:(NSData*) data;
++ (PBMethodOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBMethodOptions*) parseFromInputStream:(NSInputStream*) input;
++ (PBMethodOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBMethodOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBMethodOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBMethodOptions_Builder : PBExtendableMessage_Builder {
+@private
+ PBMethodOptions* result;
+}
+
+- (PBMethodOptions*) defaultInstance;
+
+- (PBMethodOptions_Builder*) clear;
+- (PBMethodOptions_Builder*) clone;
+
+- (PBMethodOptions*) build;
+- (PBMethodOptions*) buildPartial;
+
+- (PBMethodOptions_Builder*) mergeFrom:(PBMethodOptions*) other;
+- (PBMethodOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBMethodOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) uninterpretedOptionList;
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index;
+- (PBMethodOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value;
+- (PBMethodOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value;
+- (PBMethodOptions_Builder*) addAllUninterpretedOption:(NSArray*) values;
+- (PBMethodOptions_Builder*) clearUninterpretedOptionList;
+@end
+
+@interface PBUninterpretedOption : PBGeneratedMessage {
+@private
+ BOOL hasDoubleValue_:1;
+ BOOL hasNegativeIntValue_:1;
+ BOOL hasPositiveIntValue_:1;
+ BOOL hasIdentifierValue_:1;
+ BOOL hasStringValue_:1;
+ Float64 doubleValue;
+ int64_t negativeIntValue;
+ int64_t positiveIntValue;
+ NSString* identifierValue;
+ NSData* stringValue;
+ NSMutableArray* mutableNameList;
+}
+- (BOOL) hasIdentifierValue;
+- (BOOL) hasPositiveIntValue;
+- (BOOL) hasNegativeIntValue;
+- (BOOL) hasDoubleValue;
+- (BOOL) hasStringValue;
+@property (readonly, retain) NSString* identifierValue;
+@property (readonly) int64_t positiveIntValue;
+@property (readonly) int64_t negativeIntValue;
+@property (readonly) Float64 doubleValue;
+@property (readonly, retain) NSData* stringValue;
+- (NSArray*) nameList;
+- (PBUninterpretedOption_NamePart*) nameAtIndex:(int32_t) index;
+
++ (PBUninterpretedOption*) defaultInstance;
+- (PBUninterpretedOption*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBUninterpretedOption_Builder*) builder;
++ (PBUninterpretedOption_Builder*) builder;
++ (PBUninterpretedOption_Builder*) builderWithPrototype:(PBUninterpretedOption*) prototype;
+
++ (PBUninterpretedOption*) parseFromData:(NSData*) data;
++ (PBUninterpretedOption*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBUninterpretedOption*) parseFromInputStream:(NSInputStream*) input;
++ (PBUninterpretedOption*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBUninterpretedOption*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBUninterpretedOption*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBUninterpretedOption_NamePart : PBGeneratedMessage {
+@private
+ BOOL hasIsExtension_:1;
+ BOOL hasNamePart_:1;
+ BOOL isExtension_:1;
+ NSString* namePart;
+}
+- (BOOL) hasNamePart;
+- (BOOL) hasIsExtension;
+@property (readonly, retain) NSString* namePart;
+- (BOOL) isExtension;
+
++ (PBUninterpretedOption_NamePart*) defaultInstance;
+- (PBUninterpretedOption_NamePart*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (PBUninterpretedOption_NamePart_Builder*) builder;
++ (PBUninterpretedOption_NamePart_Builder*) builder;
++ (PBUninterpretedOption_NamePart_Builder*) builderWithPrototype:(PBUninterpretedOption_NamePart*) prototype;
+
++ (PBUninterpretedOption_NamePart*) parseFromData:(NSData*) data;
++ (PBUninterpretedOption_NamePart*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBUninterpretedOption_NamePart*) parseFromInputStream:(NSInputStream*) input;
++ (PBUninterpretedOption_NamePart*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (PBUninterpretedOption_NamePart*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (PBUninterpretedOption_NamePart*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface PBUninterpretedOption_NamePart_Builder : PBGeneratedMessage_Builder {
+@private
+ PBUninterpretedOption_NamePart* result;
+}
+
+- (PBUninterpretedOption_NamePart*) defaultInstance;
+
+- (PBUninterpretedOption_NamePart_Builder*) clear;
+- (PBUninterpretedOption_NamePart_Builder*) clone;
+
+- (PBUninterpretedOption_NamePart*) build;
+- (PBUninterpretedOption_NamePart*) buildPartial;
+
+- (PBUninterpretedOption_NamePart_Builder*) mergeFrom:(PBUninterpretedOption_NamePart*) other;
+- (PBUninterpretedOption_NamePart_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBUninterpretedOption_NamePart_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasNamePart;
+- (NSString*) namePart;
+- (PBUninterpretedOption_NamePart_Builder*) setNamePart:(NSString*) value;
+- (PBUninterpretedOption_NamePart_Builder*) clearNamePart;
+
+- (BOOL) hasIsExtension;
+- (BOOL) isExtension;
+- (PBUninterpretedOption_NamePart_Builder*) setIsExtension:(BOOL) value;
+- (PBUninterpretedOption_NamePart_Builder*) clearIsExtension;
+@end
+
+@interface PBUninterpretedOption_Builder : PBGeneratedMessage_Builder {
+@private
+ PBUninterpretedOption* result;
+}
+
+- (PBUninterpretedOption*) defaultInstance;
+
+- (PBUninterpretedOption_Builder*) clear;
+- (PBUninterpretedOption_Builder*) clone;
+
+- (PBUninterpretedOption*) build;
+- (PBUninterpretedOption*) buildPartial;
+
+- (PBUninterpretedOption_Builder*) mergeFrom:(PBUninterpretedOption*) other;
+- (PBUninterpretedOption_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (PBUninterpretedOption_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) nameList;
+- (PBUninterpretedOption_NamePart*) nameAtIndex:(int32_t) index;
+- (PBUninterpretedOption_Builder*) replaceNameAtIndex:(int32_t) index with:(PBUninterpretedOption_NamePart*) value;
+- (PBUninterpretedOption_Builder*) addName:(PBUninterpretedOption_NamePart*) value;
+- (PBUninterpretedOption_Builder*) addAllName:(NSArray*) values;
+- (PBUninterpretedOption_Builder*) clearNameList;
+
+- (BOOL) hasIdentifierValue;
+- (NSString*) identifierValue;
+- (PBUninterpretedOption_Builder*) setIdentifierValue:(NSString*) value;
+- (PBUninterpretedOption_Builder*) clearIdentifierValue;
+
+- (BOOL) hasPositiveIntValue;
+- (int64_t) positiveIntValue;
+- (PBUninterpretedOption_Builder*) setPositiveIntValue:(int64_t) value;
+- (PBUninterpretedOption_Builder*) clearPositiveIntValue;
+
+- (BOOL) hasNegativeIntValue;
+- (int64_t) negativeIntValue;
+- (PBUninterpretedOption_Builder*) setNegativeIntValue:(int64_t) value;
+- (PBUninterpretedOption_Builder*) clearNegativeIntValue;
+
+- (BOOL) hasDoubleValue;
+- (Float64) doubleValue;
+- (PBUninterpretedOption_Builder*) setDoubleValue:(Float64) value;
+- (PBUninterpretedOption_Builder*) clearDoubleValue;
+
+- (BOOL) hasStringValue;
+- (NSData*) stringValue;
+- (PBUninterpretedOption_Builder*) setStringValue:(NSData*) value;
+- (PBUninterpretedOption_Builder*) clearStringValue;
+@end
+
diff --git a/proto/Descriptor.pb.m b/proto/Descriptor.pb.m
new file mode 100644
index 0000000..6a6835e
--- /dev/null
+++ b/proto/Descriptor.pb.m
@@ -0,0 +1,5815 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+#include "ProtocolBuffers.h"
+#import "Descriptor.pb.h"
+
+@implementation PBDescriptorRoot
+static PBExtensionRegistry* extensionRegistry = nil;
++ (PBExtensionRegistry*) extensionRegistry {
+ return extensionRegistry;
+}
+
++ (void) initialize {
+ if (self == [PBDescriptorRoot class]) {
+ PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry];
+ [self registerAllExtensions:registry];
+ extensionRegistry = [registry retain];
+ }
+}
++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry {
+}
+@end
+
+@interface PBFileDescriptorSet ()
+@property (retain) NSMutableArray* mutableFileList;
+@end
+
+@implementation PBFileDescriptorSet
+
+@synthesize mutableFileList;
+- (void) dealloc {
+ self.mutableFileList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ }
+ return self;
+}
+static PBFileDescriptorSet* defaultPBFileDescriptorSetInstance = nil;
++ (void) initialize {
+ if (self == [PBFileDescriptorSet class]) {
+ defaultPBFileDescriptorSetInstance = [[PBFileDescriptorSet alloc] init];
+ }
+}
++ (PBFileDescriptorSet*) defaultInstance {
+ return defaultPBFileDescriptorSetInstance;
+}
+- (PBFileDescriptorSet*) defaultInstance {
+ return defaultPBFileDescriptorSetInstance;
+}
+- (NSArray*) fileList {
+ return mutableFileList;
+}
+- (PBFileDescriptorProto*) fileAtIndex:(int32_t) index {
+ id value = [mutableFileList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBFileDescriptorProto* element in self.fileList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (PBFileDescriptorProto* element in self.fileList) {
+ [output writeMessage:1 value:element];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ for (PBFileDescriptorProto* element in self.fileList) {
+ size += computeMessageSize(1, element);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBFileDescriptorSet*) parseFromData:(NSData*) data {
+ return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromData:data] build];
+}
++ (PBFileDescriptorSet*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBFileDescriptorSet*) parseFromInputStream:(NSInputStream*) input {
+ return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromInputStream:input] build];
+}
++ (PBFileDescriptorSet*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFileDescriptorSet*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromCodedInputStream:input] build];
+}
++ (PBFileDescriptorSet*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFileDescriptorSet*)[[[PBFileDescriptorSet builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFileDescriptorSet_Builder*) builder {
+ return [[[PBFileDescriptorSet_Builder alloc] init] autorelease];
+}
++ (PBFileDescriptorSet_Builder*) builderWithPrototype:(PBFileDescriptorSet*) prototype {
+ return [[PBFileDescriptorSet builder] mergeFrom:prototype];
+}
+- (PBFileDescriptorSet_Builder*) builder {
+ return [PBFileDescriptorSet builder];
+}
+@end
+
+@interface PBFileDescriptorSet_Builder()
+@property (retain) PBFileDescriptorSet* result;
+@end
+
+@implementation PBFileDescriptorSet_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBFileDescriptorSet alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBFileDescriptorSet_Builder*) clear {
+ self.result = [[[PBFileDescriptorSet alloc] init] autorelease];
+ return self;
+}
+- (PBFileDescriptorSet_Builder*) clone {
+ return [PBFileDescriptorSet builderWithPrototype:result];
+}
+- (PBFileDescriptorSet*) defaultInstance {
+ return [PBFileDescriptorSet defaultInstance];
+}
+- (PBFileDescriptorSet*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBFileDescriptorSet*) buildPartial {
+ PBFileDescriptorSet* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBFileDescriptorSet_Builder*) mergeFrom:(PBFileDescriptorSet*) other {
+ if (other == [PBFileDescriptorSet defaultInstance]) {
+ return self;
+ }
+ if (other.mutableFileList.count > 0) {
+ if (result.mutableFileList == nil) {
+ result.mutableFileList = [NSMutableArray array];
+ }
+ [result.mutableFileList addObjectsFromArray:other.mutableFileList];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBFileDescriptorSet_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBFileDescriptorSet_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ PBFileDescriptorProto_Builder* subBuilder = [PBFileDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addFile:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) fileList {
+ if (result.mutableFileList == nil) { return [NSArray array]; }
+ return result.mutableFileList;
+}
+- (PBFileDescriptorProto*) fileAtIndex:(int32_t) index {
+ return [result fileAtIndex:index];
+}
+- (PBFileDescriptorSet_Builder*) replaceFileAtIndex:(int32_t) index with:(PBFileDescriptorProto*) value {
+ [result.mutableFileList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBFileDescriptorSet_Builder*) addAllFile:(NSArray*) values {
+ if (result.mutableFileList == nil) {
+ result.mutableFileList = [NSMutableArray array];
+ }
+ [result.mutableFileList addObjectsFromArray:values];
+ return self;
+}
+- (PBFileDescriptorSet_Builder*) clearFileList {
+ result.mutableFileList = nil;
+ return self;
+}
+- (PBFileDescriptorSet_Builder*) addFile:(PBFileDescriptorProto*) value {
+ if (result.mutableFileList == nil) {
+ result.mutableFileList = [NSMutableArray array];
+ }
+ [result.mutableFileList addObject:value];
+ return self;
+}
+@end
+
+@interface PBFileDescriptorProto ()
+@property (retain) NSString* name;
+@property (retain) NSString* package;
+@property (retain) NSMutableArray* mutableDependencyList;
+@property (retain) NSMutableArray* mutableMessageTypeList;
+@property (retain) NSMutableArray* mutableEnumTypeList;
+@property (retain) NSMutableArray* mutableServiceList;
+@property (retain) NSMutableArray* mutableExtensionList;
+@property (retain) PBFileOptions* options;
+@end
+
+@implementation PBFileDescriptorProto
+
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+- (BOOL) hasPackage {
+ return !!hasPackage_;
+}
+- (void) setHasPackage:(BOOL) value {
+ hasPackage_ = !!value;
+}
+@synthesize package;
+@synthesize mutableDependencyList;
+@synthesize mutableMessageTypeList;
+@synthesize mutableEnumTypeList;
+@synthesize mutableServiceList;
+@synthesize mutableExtensionList;
+- (BOOL) hasOptions {
+ return !!hasOptions_;
+}
+- (void) setHasOptions:(BOOL) value {
+ hasOptions_ = !!value;
+}
+@synthesize options;
+- (void) dealloc {
+ self.name = nil;
+ self.package = nil;
+ self.mutableDependencyList = nil;
+ self.mutableMessageTypeList = nil;
+ self.mutableEnumTypeList = nil;
+ self.mutableServiceList = nil;
+ self.mutableExtensionList = nil;
+ self.options = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.name = @"";
+ self.package = @"";
+ self.options = [PBFileOptions defaultInstance];
+ }
+ return self;
+}
+static PBFileDescriptorProto* defaultPBFileDescriptorProtoInstance = nil;
++ (void) initialize {
+ if (self == [PBFileDescriptorProto class]) {
+ defaultPBFileDescriptorProtoInstance = [[PBFileDescriptorProto alloc] init];
+ }
+}
++ (PBFileDescriptorProto*) defaultInstance {
+ return defaultPBFileDescriptorProtoInstance;
+}
+- (PBFileDescriptorProto*) defaultInstance {
+ return defaultPBFileDescriptorProtoInstance;
+}
+- (NSArray*) dependencyList {
+ return mutableDependencyList;
+}
+- (NSString*) dependencyAtIndex:(int32_t) index {
+ id value = [mutableDependencyList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) messageTypeList {
+ return mutableMessageTypeList;
+}
+- (PBDescriptorProto*) messageTypeAtIndex:(int32_t) index {
+ id value = [mutableMessageTypeList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) enumTypeList {
+ return mutableEnumTypeList;
+}
+- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index {
+ id value = [mutableEnumTypeList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) serviceList {
+ return mutableServiceList;
+}
+- (PBServiceDescriptorProto*) serviceAtIndex:(int32_t) index {
+ id value = [mutableServiceList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) extensionList {
+ return mutableExtensionList;
+}
+- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index {
+ id value = [mutableExtensionList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBDescriptorProto* element in self.messageTypeList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ for (PBEnumDescriptorProto* element in self.enumTypeList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ for (PBServiceDescriptorProto* element in self.serviceList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ for (PBFieldDescriptorProto* element in self.extensionList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (self.hasOptions) {
+ if (!self.options.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasName) {
+ [output writeString:1 value:self.name];
+ }
+ if (self.hasPackage) {
+ [output writeString:2 value:self.package];
+ }
+ for (NSString* element in self.mutableDependencyList) {
+ [output writeString:3 value:element];
+ }
+ for (PBDescriptorProto* element in self.messageTypeList) {
+ [output writeMessage:4 value:element];
+ }
+ for (PBEnumDescriptorProto* element in self.enumTypeList) {
+ [output writeMessage:5 value:element];
+ }
+ for (PBServiceDescriptorProto* element in self.serviceList) {
+ [output writeMessage:6 value:element];
+ }
+ for (PBFieldDescriptorProto* element in self.extensionList) {
+ [output writeMessage:7 value:element];
+ }
+ if (self.hasOptions) {
+ [output writeMessage:8 value:self.options];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasName) {
+ size += computeStringSize(1, self.name);
+ }
+ if (self.hasPackage) {
+ size += computeStringSize(2, self.package);
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSString* element in self.mutableDependencyList) {
+ dataSize += computeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * self.mutableDependencyList.count;
+ }
+ for (PBDescriptorProto* element in self.messageTypeList) {
+ size += computeMessageSize(4, element);
+ }
+ for (PBEnumDescriptorProto* element in self.enumTypeList) {
+ size += computeMessageSize(5, element);
+ }
+ for (PBServiceDescriptorProto* element in self.serviceList) {
+ size += computeMessageSize(6, element);
+ }
+ for (PBFieldDescriptorProto* element in self.extensionList) {
+ size += computeMessageSize(7, element);
+ }
+ if (self.hasOptions) {
+ size += computeMessageSize(8, self.options);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBFileDescriptorProto*) parseFromData:(NSData*) data {
+ return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromData:data] build];
+}
++ (PBFileDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBFileDescriptorProto*) parseFromInputStream:(NSInputStream*) input {
+ return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromInputStream:input] build];
+}
++ (PBFileDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFileDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromCodedInputStream:input] build];
+}
++ (PBFileDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFileDescriptorProto*)[[[PBFileDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFileDescriptorProto_Builder*) builder {
+ return [[[PBFileDescriptorProto_Builder alloc] init] autorelease];
+}
++ (PBFileDescriptorProto_Builder*) builderWithPrototype:(PBFileDescriptorProto*) prototype {
+ return [[PBFileDescriptorProto builder] mergeFrom:prototype];
+}
+- (PBFileDescriptorProto_Builder*) builder {
+ return [PBFileDescriptorProto builder];
+}
+@end
+
+@interface PBFileDescriptorProto_Builder()
+@property (retain) PBFileDescriptorProto* result;
+@end
+
+@implementation PBFileDescriptorProto_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBFileDescriptorProto alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBFileDescriptorProto_Builder*) clear {
+ self.result = [[[PBFileDescriptorProto alloc] init] autorelease];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) clone {
+ return [PBFileDescriptorProto builderWithPrototype:result];
+}
+- (PBFileDescriptorProto*) defaultInstance {
+ return [PBFileDescriptorProto defaultInstance];
+}
+- (PBFileDescriptorProto*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBFileDescriptorProto*) buildPartial {
+ PBFileDescriptorProto* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBFileDescriptorProto_Builder*) mergeFrom:(PBFileDescriptorProto*) other {
+ if (other == [PBFileDescriptorProto defaultInstance]) {
+ return self;
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.hasPackage) {
+ [self setPackage:other.package];
+ }
+ if (other.mutableDependencyList.count > 0) {
+ if (result.mutableDependencyList == nil) {
+ result.mutableDependencyList = [NSMutableArray array];
+ }
+ [result.mutableDependencyList addObjectsFromArray:other.mutableDependencyList];
+ }
+ if (other.mutableMessageTypeList.count > 0) {
+ if (result.mutableMessageTypeList == nil) {
+ result.mutableMessageTypeList = [NSMutableArray array];
+ }
+ [result.mutableMessageTypeList addObjectsFromArray:other.mutableMessageTypeList];
+ }
+ if (other.mutableEnumTypeList.count > 0) {
+ if (result.mutableEnumTypeList == nil) {
+ result.mutableEnumTypeList = [NSMutableArray array];
+ }
+ [result.mutableEnumTypeList addObjectsFromArray:other.mutableEnumTypeList];
+ }
+ if (other.mutableServiceList.count > 0) {
+ if (result.mutableServiceList == nil) {
+ result.mutableServiceList = [NSMutableArray array];
+ }
+ [result.mutableServiceList addObjectsFromArray:other.mutableServiceList];
+ }
+ if (other.mutableExtensionList.count > 0) {
+ if (result.mutableExtensionList == nil) {
+ result.mutableExtensionList = [NSMutableArray array];
+ }
+ [result.mutableExtensionList addObjectsFromArray:other.mutableExtensionList];
+ }
+ if (other.hasOptions) {
+ [self mergeOptions:other.options];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBFileDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 18: {
+ [self setPackage:[input readString]];
+ break;
+ }
+ case 26: {
+ [self addDependency:[input readString]];
+ break;
+ }
+ case 34: {
+ PBDescriptorProto_Builder* subBuilder = [PBDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addMessageType:[subBuilder buildPartial]];
+ break;
+ }
+ case 42: {
+ PBEnumDescriptorProto_Builder* subBuilder = [PBEnumDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addEnumType:[subBuilder buildPartial]];
+ break;
+ }
+ case 50: {
+ PBServiceDescriptorProto_Builder* subBuilder = [PBServiceDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addService:[subBuilder buildPartial]];
+ break;
+ }
+ case 58: {
+ PBFieldDescriptorProto_Builder* subBuilder = [PBFieldDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addExtension:[subBuilder buildPartial]];
+ break;
+ }
+ case 66: {
+ PBFileOptions_Builder* subBuilder = [PBFileOptions builder];
+ if (self.hasOptions) {
+ [subBuilder mergeFrom:self.options];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setOptions:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (PBFileDescriptorProto_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (BOOL) hasPackage {
+ return result.hasPackage;
+}
+- (NSString*) package {
+ return result.package;
+}
+- (PBFileDescriptorProto_Builder*) setPackage:(NSString*) value {
+ result.hasPackage = YES;
+ result.package = value;
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) clearPackage {
+ result.hasPackage = NO;
+ result.package = @"";
+ return self;
+}
+- (NSArray*) dependencyList {
+ if (result.mutableDependencyList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableDependencyList;
+}
+- (NSString*) dependencyAtIndex:(int32_t) index {
+ return [result dependencyAtIndex:index];
+}
+- (PBFileDescriptorProto_Builder*) replaceDependencyAtIndex:(int32_t) index with:(NSString*) value {
+ [result.mutableDependencyList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addDependency:(NSString*) value {
+ if (result.mutableDependencyList == nil) {
+ result.mutableDependencyList = [NSMutableArray array];
+ }
+ [result.mutableDependencyList addObject:value];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addAllDependency:(NSArray*) values {
+ if (result.mutableDependencyList == nil) {
+ result.mutableDependencyList = [NSMutableArray array];
+ }
+ [result.mutableDependencyList addObjectsFromArray:values];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) clearDependencyList {
+ result.mutableDependencyList = nil;
+ return self;
+}
+- (NSArray*) messageTypeList {
+ if (result.mutableMessageTypeList == nil) { return [NSArray array]; }
+ return result.mutableMessageTypeList;
+}
+- (PBDescriptorProto*) messageTypeAtIndex:(int32_t) index {
+ return [result messageTypeAtIndex:index];
+}
+- (PBFileDescriptorProto_Builder*) replaceMessageTypeAtIndex:(int32_t) index with:(PBDescriptorProto*) value {
+ [result.mutableMessageTypeList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addAllMessageType:(NSArray*) values {
+ if (result.mutableMessageTypeList == nil) {
+ result.mutableMessageTypeList = [NSMutableArray array];
+ }
+ [result.mutableMessageTypeList addObjectsFromArray:values];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) clearMessageTypeList {
+ result.mutableMessageTypeList = nil;
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addMessageType:(PBDescriptorProto*) value {
+ if (result.mutableMessageTypeList == nil) {
+ result.mutableMessageTypeList = [NSMutableArray array];
+ }
+ [result.mutableMessageTypeList addObject:value];
+ return self;
+}
+- (NSArray*) enumTypeList {
+ if (result.mutableEnumTypeList == nil) { return [NSArray array]; }
+ return result.mutableEnumTypeList;
+}
+- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index {
+ return [result enumTypeAtIndex:index];
+}
+- (PBFileDescriptorProto_Builder*) replaceEnumTypeAtIndex:(int32_t) index with:(PBEnumDescriptorProto*) value {
+ [result.mutableEnumTypeList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addAllEnumType:(NSArray*) values {
+ if (result.mutableEnumTypeList == nil) {
+ result.mutableEnumTypeList = [NSMutableArray array];
+ }
+ [result.mutableEnumTypeList addObjectsFromArray:values];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) clearEnumTypeList {
+ result.mutableEnumTypeList = nil;
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addEnumType:(PBEnumDescriptorProto*) value {
+ if (result.mutableEnumTypeList == nil) {
+ result.mutableEnumTypeList = [NSMutableArray array];
+ }
+ [result.mutableEnumTypeList addObject:value];
+ return self;
+}
+- (NSArray*) serviceList {
+ if (result.mutableServiceList == nil) { return [NSArray array]; }
+ return result.mutableServiceList;
+}
+- (PBServiceDescriptorProto*) serviceAtIndex:(int32_t) index {
+ return [result serviceAtIndex:index];
+}
+- (PBFileDescriptorProto_Builder*) replaceServiceAtIndex:(int32_t) index with:(PBServiceDescriptorProto*) value {
+ [result.mutableServiceList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addAllService:(NSArray*) values {
+ if (result.mutableServiceList == nil) {
+ result.mutableServiceList = [NSMutableArray array];
+ }
+ [result.mutableServiceList addObjectsFromArray:values];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) clearServiceList {
+ result.mutableServiceList = nil;
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addService:(PBServiceDescriptorProto*) value {
+ if (result.mutableServiceList == nil) {
+ result.mutableServiceList = [NSMutableArray array];
+ }
+ [result.mutableServiceList addObject:value];
+ return self;
+}
+- (NSArray*) extensionList {
+ if (result.mutableExtensionList == nil) { return [NSArray array]; }
+ return result.mutableExtensionList;
+}
+- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index {
+ return [result extensionAtIndex:index];
+}
+- (PBFileDescriptorProto_Builder*) replaceExtensionAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value {
+ [result.mutableExtensionList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addAllExtension:(NSArray*) values {
+ if (result.mutableExtensionList == nil) {
+ result.mutableExtensionList = [NSMutableArray array];
+ }
+ [result.mutableExtensionList addObjectsFromArray:values];
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) clearExtensionList {
+ result.mutableExtensionList = nil;
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) addExtension:(PBFieldDescriptorProto*) value {
+ if (result.mutableExtensionList == nil) {
+ result.mutableExtensionList = [NSMutableArray array];
+ }
+ [result.mutableExtensionList addObject:value];
+ return self;
+}
+- (BOOL) hasOptions {
+ return result.hasOptions;
+}
+- (PBFileOptions*) options {
+ return result.options;
+}
+- (PBFileDescriptorProto_Builder*) setOptions:(PBFileOptions*) value {
+ result.hasOptions = YES;
+ result.options = value;
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) setOptionsBuilder:(PBFileOptions_Builder*) builderForValue {
+ return [self setOptions:[builderForValue build]];
+}
+- (PBFileDescriptorProto_Builder*) mergeOptions:(PBFileOptions*) value {
+ if (result.hasOptions &&
+ result.options != [PBFileOptions defaultInstance]) {
+ result.options =
+ [[[PBFileOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial];
+ } else {
+ result.options = value;
+ }
+ result.hasOptions = YES;
+ return self;
+}
+- (PBFileDescriptorProto_Builder*) clearOptions {
+ result.hasOptions = NO;
+ result.options = [PBFileOptions defaultInstance];
+ return self;
+}
+@end
+
+@interface PBDescriptorProto ()
+@property (retain) NSString* name;
+@property (retain) NSMutableArray* mutableFieldList;
+@property (retain) NSMutableArray* mutableExtensionList;
+@property (retain) NSMutableArray* mutableNestedTypeList;
+@property (retain) NSMutableArray* mutableEnumTypeList;
+@property (retain) NSMutableArray* mutableExtensionRangeList;
+@property (retain) PBMessageOptions* options;
+@end
+
+@implementation PBDescriptorProto
+
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+@synthesize mutableFieldList;
+@synthesize mutableExtensionList;
+@synthesize mutableNestedTypeList;
+@synthesize mutableEnumTypeList;
+@synthesize mutableExtensionRangeList;
+- (BOOL) hasOptions {
+ return !!hasOptions_;
+}
+- (void) setHasOptions:(BOOL) value {
+ hasOptions_ = !!value;
+}
+@synthesize options;
+- (void) dealloc {
+ self.name = nil;
+ self.mutableFieldList = nil;
+ self.mutableExtensionList = nil;
+ self.mutableNestedTypeList = nil;
+ self.mutableEnumTypeList = nil;
+ self.mutableExtensionRangeList = nil;
+ self.options = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.name = @"";
+ self.options = [PBMessageOptions defaultInstance];
+ }
+ return self;
+}
+static PBDescriptorProto* defaultPBDescriptorProtoInstance = nil;
++ (void) initialize {
+ if (self == [PBDescriptorProto class]) {
+ defaultPBDescriptorProtoInstance = [[PBDescriptorProto alloc] init];
+ }
+}
++ (PBDescriptorProto*) defaultInstance {
+ return defaultPBDescriptorProtoInstance;
+}
+- (PBDescriptorProto*) defaultInstance {
+ return defaultPBDescriptorProtoInstance;
+}
+- (NSArray*) fieldList {
+ return mutableFieldList;
+}
+- (PBFieldDescriptorProto*) fieldAtIndex:(int32_t) index {
+ id value = [mutableFieldList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) extensionList {
+ return mutableExtensionList;
+}
+- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index {
+ id value = [mutableExtensionList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) nestedTypeList {
+ return mutableNestedTypeList;
+}
+- (PBDescriptorProto*) nestedTypeAtIndex:(int32_t) index {
+ id value = [mutableNestedTypeList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) enumTypeList {
+ return mutableEnumTypeList;
+}
+- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index {
+ id value = [mutableEnumTypeList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) extensionRangeList {
+ return mutableExtensionRangeList;
+}
+- (PBDescriptorProto_ExtensionRange*) extensionRangeAtIndex:(int32_t) index {
+ id value = [mutableExtensionRangeList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBFieldDescriptorProto* element in self.fieldList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ for (PBFieldDescriptorProto* element in self.extensionList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ for (PBDescriptorProto* element in self.nestedTypeList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ for (PBEnumDescriptorProto* element in self.enumTypeList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (self.hasOptions) {
+ if (!self.options.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasName) {
+ [output writeString:1 value:self.name];
+ }
+ for (PBFieldDescriptorProto* element in self.fieldList) {
+ [output writeMessage:2 value:element];
+ }
+ for (PBDescriptorProto* element in self.nestedTypeList) {
+ [output writeMessage:3 value:element];
+ }
+ for (PBEnumDescriptorProto* element in self.enumTypeList) {
+ [output writeMessage:4 value:element];
+ }
+ for (PBDescriptorProto_ExtensionRange* element in self.extensionRangeList) {
+ [output writeMessage:5 value:element];
+ }
+ for (PBFieldDescriptorProto* element in self.extensionList) {
+ [output writeMessage:6 value:element];
+ }
+ if (self.hasOptions) {
+ [output writeMessage:7 value:self.options];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasName) {
+ size += computeStringSize(1, self.name);
+ }
+ for (PBFieldDescriptorProto* element in self.fieldList) {
+ size += computeMessageSize(2, element);
+ }
+ for (PBDescriptorProto* element in self.nestedTypeList) {
+ size += computeMessageSize(3, element);
+ }
+ for (PBEnumDescriptorProto* element in self.enumTypeList) {
+ size += computeMessageSize(4, element);
+ }
+ for (PBDescriptorProto_ExtensionRange* element in self.extensionRangeList) {
+ size += computeMessageSize(5, element);
+ }
+ for (PBFieldDescriptorProto* element in self.extensionList) {
+ size += computeMessageSize(6, element);
+ }
+ if (self.hasOptions) {
+ size += computeMessageSize(7, self.options);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBDescriptorProto*) parseFromData:(NSData*) data {
+ return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromData:data] build];
+}
++ (PBDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBDescriptorProto*) parseFromInputStream:(NSInputStream*) input {
+ return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromInputStream:input] build];
+}
++ (PBDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromCodedInputStream:input] build];
+}
++ (PBDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBDescriptorProto*)[[[PBDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBDescriptorProto_Builder*) builder {
+ return [[[PBDescriptorProto_Builder alloc] init] autorelease];
+}
++ (PBDescriptorProto_Builder*) builderWithPrototype:(PBDescriptorProto*) prototype {
+ return [[PBDescriptorProto builder] mergeFrom:prototype];
+}
+- (PBDescriptorProto_Builder*) builder {
+ return [PBDescriptorProto builder];
+}
+@end
+
+@interface PBDescriptorProto_ExtensionRange ()
+@property int32_t start;
+@property int32_t end;
+@end
+
+@implementation PBDescriptorProto_ExtensionRange
+
+- (BOOL) hasStart {
+ return !!hasStart_;
+}
+- (void) setHasStart:(BOOL) value {
+ hasStart_ = !!value;
+}
+@synthesize start;
+- (BOOL) hasEnd {
+ return !!hasEnd_;
+}
+- (void) setHasEnd:(BOOL) value {
+ hasEnd_ = !!value;
+}
+@synthesize end;
+- (void) dealloc {
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.start = 0;
+ self.end = 0;
+ }
+ return self;
+}
+static PBDescriptorProto_ExtensionRange* defaultPBDescriptorProto_ExtensionRangeInstance = nil;
++ (void) initialize {
+ if (self == [PBDescriptorProto_ExtensionRange class]) {
+ defaultPBDescriptorProto_ExtensionRangeInstance = [[PBDescriptorProto_ExtensionRange alloc] init];
+ }
+}
++ (PBDescriptorProto_ExtensionRange*) defaultInstance {
+ return defaultPBDescriptorProto_ExtensionRangeInstance;
+}
+- (PBDescriptorProto_ExtensionRange*) defaultInstance {
+ return defaultPBDescriptorProto_ExtensionRangeInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasStart) {
+ [output writeInt32:1 value:self.start];
+ }
+ if (self.hasEnd) {
+ [output writeInt32:2 value:self.end];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasStart) {
+ size += computeInt32Size(1, self.start);
+ }
+ if (self.hasEnd) {
+ size += computeInt32Size(2, self.end);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBDescriptorProto_ExtensionRange*) parseFromData:(NSData*) data {
+ return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromData:data] build];
+}
++ (PBDescriptorProto_ExtensionRange*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBDescriptorProto_ExtensionRange*) parseFromInputStream:(NSInputStream*) input {
+ return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromInputStream:input] build];
+}
++ (PBDescriptorProto_ExtensionRange*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBDescriptorProto_ExtensionRange*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromCodedInputStream:input] build];
+}
++ (PBDescriptorProto_ExtensionRange*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBDescriptorProto_ExtensionRange*)[[[PBDescriptorProto_ExtensionRange builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBDescriptorProto_ExtensionRange_Builder*) builder {
+ return [[[PBDescriptorProto_ExtensionRange_Builder alloc] init] autorelease];
+}
++ (PBDescriptorProto_ExtensionRange_Builder*) builderWithPrototype:(PBDescriptorProto_ExtensionRange*) prototype {
+ return [[PBDescriptorProto_ExtensionRange builder] mergeFrom:prototype];
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) builder {
+ return [PBDescriptorProto_ExtensionRange builder];
+}
+@end
+
+@interface PBDescriptorProto_ExtensionRange_Builder()
+@property (retain) PBDescriptorProto_ExtensionRange* result;
+@end
+
+@implementation PBDescriptorProto_ExtensionRange_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBDescriptorProto_ExtensionRange alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) clear {
+ self.result = [[[PBDescriptorProto_ExtensionRange alloc] init] autorelease];
+ return self;
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) clone {
+ return [PBDescriptorProto_ExtensionRange builderWithPrototype:result];
+}
+- (PBDescriptorProto_ExtensionRange*) defaultInstance {
+ return [PBDescriptorProto_ExtensionRange defaultInstance];
+}
+- (PBDescriptorProto_ExtensionRange*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBDescriptorProto_ExtensionRange*) buildPartial {
+ PBDescriptorProto_ExtensionRange* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) mergeFrom:(PBDescriptorProto_ExtensionRange*) other {
+ if (other == [PBDescriptorProto_ExtensionRange defaultInstance]) {
+ return self;
+ }
+ if (other.hasStart) {
+ [self setStart:other.start];
+ }
+ if (other.hasEnd) {
+ [self setEnd:other.end];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setStart:[input readInt32]];
+ break;
+ }
+ case 16: {
+ [self setEnd:[input readInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasStart {
+ return result.hasStart;
+}
+- (int32_t) start {
+ return result.start;
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) setStart:(int32_t) value {
+ result.hasStart = YES;
+ result.start = value;
+ return self;
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) clearStart {
+ result.hasStart = NO;
+ result.start = 0;
+ return self;
+}
+- (BOOL) hasEnd {
+ return result.hasEnd;
+}
+- (int32_t) end {
+ return result.end;
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) setEnd:(int32_t) value {
+ result.hasEnd = YES;
+ result.end = value;
+ return self;
+}
+- (PBDescriptorProto_ExtensionRange_Builder*) clearEnd {
+ result.hasEnd = NO;
+ result.end = 0;
+ return self;
+}
+@end
+
+@interface PBDescriptorProto_Builder()
+@property (retain) PBDescriptorProto* result;
+@end
+
+@implementation PBDescriptorProto_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBDescriptorProto alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBDescriptorProto_Builder*) clear {
+ self.result = [[[PBDescriptorProto alloc] init] autorelease];
+ return self;
+}
+- (PBDescriptorProto_Builder*) clone {
+ return [PBDescriptorProto builderWithPrototype:result];
+}
+- (PBDescriptorProto*) defaultInstance {
+ return [PBDescriptorProto defaultInstance];
+}
+- (PBDescriptorProto*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBDescriptorProto*) buildPartial {
+ PBDescriptorProto* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBDescriptorProto_Builder*) mergeFrom:(PBDescriptorProto*) other {
+ if (other == [PBDescriptorProto defaultInstance]) {
+ return self;
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.mutableFieldList.count > 0) {
+ if (result.mutableFieldList == nil) {
+ result.mutableFieldList = [NSMutableArray array];
+ }
+ [result.mutableFieldList addObjectsFromArray:other.mutableFieldList];
+ }
+ if (other.mutableExtensionList.count > 0) {
+ if (result.mutableExtensionList == nil) {
+ result.mutableExtensionList = [NSMutableArray array];
+ }
+ [result.mutableExtensionList addObjectsFromArray:other.mutableExtensionList];
+ }
+ if (other.mutableNestedTypeList.count > 0) {
+ if (result.mutableNestedTypeList == nil) {
+ result.mutableNestedTypeList = [NSMutableArray array];
+ }
+ [result.mutableNestedTypeList addObjectsFromArray:other.mutableNestedTypeList];
+ }
+ if (other.mutableEnumTypeList.count > 0) {
+ if (result.mutableEnumTypeList == nil) {
+ result.mutableEnumTypeList = [NSMutableArray array];
+ }
+ [result.mutableEnumTypeList addObjectsFromArray:other.mutableEnumTypeList];
+ }
+ if (other.mutableExtensionRangeList.count > 0) {
+ if (result.mutableExtensionRangeList == nil) {
+ result.mutableExtensionRangeList = [NSMutableArray array];
+ }
+ [result.mutableExtensionRangeList addObjectsFromArray:other.mutableExtensionRangeList];
+ }
+ if (other.hasOptions) {
+ [self mergeOptions:other.options];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 18: {
+ PBFieldDescriptorProto_Builder* subBuilder = [PBFieldDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addField:[subBuilder buildPartial]];
+ break;
+ }
+ case 26: {
+ PBDescriptorProto_Builder* subBuilder = [PBDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addNestedType:[subBuilder buildPartial]];
+ break;
+ }
+ case 34: {
+ PBEnumDescriptorProto_Builder* subBuilder = [PBEnumDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addEnumType:[subBuilder buildPartial]];
+ break;
+ }
+ case 42: {
+ PBDescriptorProto_ExtensionRange_Builder* subBuilder = [PBDescriptorProto_ExtensionRange builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addExtensionRange:[subBuilder buildPartial]];
+ break;
+ }
+ case 50: {
+ PBFieldDescriptorProto_Builder* subBuilder = [PBFieldDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addExtension:[subBuilder buildPartial]];
+ break;
+ }
+ case 58: {
+ PBMessageOptions_Builder* subBuilder = [PBMessageOptions builder];
+ if (self.hasOptions) {
+ [subBuilder mergeFrom:self.options];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setOptions:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (PBDescriptorProto_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (PBDescriptorProto_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (NSArray*) fieldList {
+ if (result.mutableFieldList == nil) { return [NSArray array]; }
+ return result.mutableFieldList;
+}
+- (PBFieldDescriptorProto*) fieldAtIndex:(int32_t) index {
+ return [result fieldAtIndex:index];
+}
+- (PBDescriptorProto_Builder*) replaceFieldAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value {
+ [result.mutableFieldList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBDescriptorProto_Builder*) addAllField:(NSArray*) values {
+ if (result.mutableFieldList == nil) {
+ result.mutableFieldList = [NSMutableArray array];
+ }
+ [result.mutableFieldList addObjectsFromArray:values];
+ return self;
+}
+- (PBDescriptorProto_Builder*) clearFieldList {
+ result.mutableFieldList = nil;
+ return self;
+}
+- (PBDescriptorProto_Builder*) addField:(PBFieldDescriptorProto*) value {
+ if (result.mutableFieldList == nil) {
+ result.mutableFieldList = [NSMutableArray array];
+ }
+ [result.mutableFieldList addObject:value];
+ return self;
+}
+- (NSArray*) extensionList {
+ if (result.mutableExtensionList == nil) { return [NSArray array]; }
+ return result.mutableExtensionList;
+}
+- (PBFieldDescriptorProto*) extensionAtIndex:(int32_t) index {
+ return [result extensionAtIndex:index];
+}
+- (PBDescriptorProto_Builder*) replaceExtensionAtIndex:(int32_t) index with:(PBFieldDescriptorProto*) value {
+ [result.mutableExtensionList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBDescriptorProto_Builder*) addAllExtension:(NSArray*) values {
+ if (result.mutableExtensionList == nil) {
+ result.mutableExtensionList = [NSMutableArray array];
+ }
+ [result.mutableExtensionList addObjectsFromArray:values];
+ return self;
+}
+- (PBDescriptorProto_Builder*) clearExtensionList {
+ result.mutableExtensionList = nil;
+ return self;
+}
+- (PBDescriptorProto_Builder*) addExtension:(PBFieldDescriptorProto*) value {
+ if (result.mutableExtensionList == nil) {
+ result.mutableExtensionList = [NSMutableArray array];
+ }
+ [result.mutableExtensionList addObject:value];
+ return self;
+}
+- (NSArray*) nestedTypeList {
+ if (result.mutableNestedTypeList == nil) { return [NSArray array]; }
+ return result.mutableNestedTypeList;
+}
+- (PBDescriptorProto*) nestedTypeAtIndex:(int32_t) index {
+ return [result nestedTypeAtIndex:index];
+}
+- (PBDescriptorProto_Builder*) replaceNestedTypeAtIndex:(int32_t) index with:(PBDescriptorProto*) value {
+ [result.mutableNestedTypeList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBDescriptorProto_Builder*) addAllNestedType:(NSArray*) values {
+ if (result.mutableNestedTypeList == nil) {
+ result.mutableNestedTypeList = [NSMutableArray array];
+ }
+ [result.mutableNestedTypeList addObjectsFromArray:values];
+ return self;
+}
+- (PBDescriptorProto_Builder*) clearNestedTypeList {
+ result.mutableNestedTypeList = nil;
+ return self;
+}
+- (PBDescriptorProto_Builder*) addNestedType:(PBDescriptorProto*) value {
+ if (result.mutableNestedTypeList == nil) {
+ result.mutableNestedTypeList = [NSMutableArray array];
+ }
+ [result.mutableNestedTypeList addObject:value];
+ return self;
+}
+- (NSArray*) enumTypeList {
+ if (result.mutableEnumTypeList == nil) { return [NSArray array]; }
+ return result.mutableEnumTypeList;
+}
+- (PBEnumDescriptorProto*) enumTypeAtIndex:(int32_t) index {
+ return [result enumTypeAtIndex:index];
+}
+- (PBDescriptorProto_Builder*) replaceEnumTypeAtIndex:(int32_t) index with:(PBEnumDescriptorProto*) value {
+ [result.mutableEnumTypeList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBDescriptorProto_Builder*) addAllEnumType:(NSArray*) values {
+ if (result.mutableEnumTypeList == nil) {
+ result.mutableEnumTypeList = [NSMutableArray array];
+ }
+ [result.mutableEnumTypeList addObjectsFromArray:values];
+ return self;
+}
+- (PBDescriptorProto_Builder*) clearEnumTypeList {
+ result.mutableEnumTypeList = nil;
+ return self;
+}
+- (PBDescriptorProto_Builder*) addEnumType:(PBEnumDescriptorProto*) value {
+ if (result.mutableEnumTypeList == nil) {
+ result.mutableEnumTypeList = [NSMutableArray array];
+ }
+ [result.mutableEnumTypeList addObject:value];
+ return self;
+}
+- (NSArray*) extensionRangeList {
+ if (result.mutableExtensionRangeList == nil) { return [NSArray array]; }
+ return result.mutableExtensionRangeList;
+}
+- (PBDescriptorProto_ExtensionRange*) extensionRangeAtIndex:(int32_t) index {
+ return [result extensionRangeAtIndex:index];
+}
+- (PBDescriptorProto_Builder*) replaceExtensionRangeAtIndex:(int32_t) index with:(PBDescriptorProto_ExtensionRange*) value {
+ [result.mutableExtensionRangeList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBDescriptorProto_Builder*) addAllExtensionRange:(NSArray*) values {
+ if (result.mutableExtensionRangeList == nil) {
+ result.mutableExtensionRangeList = [NSMutableArray array];
+ }
+ [result.mutableExtensionRangeList addObjectsFromArray:values];
+ return self;
+}
+- (PBDescriptorProto_Builder*) clearExtensionRangeList {
+ result.mutableExtensionRangeList = nil;
+ return self;
+}
+- (PBDescriptorProto_Builder*) addExtensionRange:(PBDescriptorProto_ExtensionRange*) value {
+ if (result.mutableExtensionRangeList == nil) {
+ result.mutableExtensionRangeList = [NSMutableArray array];
+ }
+ [result.mutableExtensionRangeList addObject:value];
+ return self;
+}
+- (BOOL) hasOptions {
+ return result.hasOptions;
+}
+- (PBMessageOptions*) options {
+ return result.options;
+}
+- (PBDescriptorProto_Builder*) setOptions:(PBMessageOptions*) value {
+ result.hasOptions = YES;
+ result.options = value;
+ return self;
+}
+- (PBDescriptorProto_Builder*) setOptionsBuilder:(PBMessageOptions_Builder*) builderForValue {
+ return [self setOptions:[builderForValue build]];
+}
+- (PBDescriptorProto_Builder*) mergeOptions:(PBMessageOptions*) value {
+ if (result.hasOptions &&
+ result.options != [PBMessageOptions defaultInstance]) {
+ result.options =
+ [[[PBMessageOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial];
+ } else {
+ result.options = value;
+ }
+ result.hasOptions = YES;
+ return self;
+}
+- (PBDescriptorProto_Builder*) clearOptions {
+ result.hasOptions = NO;
+ result.options = [PBMessageOptions defaultInstance];
+ return self;
+}
+@end
+
+@interface PBFieldDescriptorProto ()
+@property (retain) NSString* name;
+@property int32_t number;
+@property PBFieldDescriptorProto_Label label;
+@property PBFieldDescriptorProto_Type type;
+@property (retain) NSString* typeName;
+@property (retain) NSString* extendee;
+@property (retain) NSString* defaultValue;
+@property (retain) PBFieldOptions* options;
+@end
+
+@implementation PBFieldDescriptorProto
+
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+- (BOOL) hasNumber {
+ return !!hasNumber_;
+}
+- (void) setHasNumber:(BOOL) value {
+ hasNumber_ = !!value;
+}
+@synthesize number;
+- (BOOL) hasLabel {
+ return !!hasLabel_;
+}
+- (void) setHasLabel:(BOOL) value {
+ hasLabel_ = !!value;
+}
+@synthesize label;
+- (BOOL) hasType {
+ return !!hasType_;
+}
+- (void) setHasType:(BOOL) value {
+ hasType_ = !!value;
+}
+@synthesize type;
+- (BOOL) hasTypeName {
+ return !!hasTypeName_;
+}
+- (void) setHasTypeName:(BOOL) value {
+ hasTypeName_ = !!value;
+}
+@synthesize typeName;
+- (BOOL) hasExtendee {
+ return !!hasExtendee_;
+}
+- (void) setHasExtendee:(BOOL) value {
+ hasExtendee_ = !!value;
+}
+@synthesize extendee;
+- (BOOL) hasDefaultValue {
+ return !!hasDefaultValue_;
+}
+- (void) setHasDefaultValue:(BOOL) value {
+ hasDefaultValue_ = !!value;
+}
+@synthesize defaultValue;
+- (BOOL) hasOptions {
+ return !!hasOptions_;
+}
+- (void) setHasOptions:(BOOL) value {
+ hasOptions_ = !!value;
+}
+@synthesize options;
+- (void) dealloc {
+ self.name = nil;
+ self.typeName = nil;
+ self.extendee = nil;
+ self.defaultValue = nil;
+ self.options = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.name = @"";
+ self.number = 0;
+ self.label = PBFieldDescriptorProto_LabelLabelOptional;
+ self.type = PBFieldDescriptorProto_TypeTypeDouble;
+ self.typeName = @"";
+ self.extendee = @"";
+ self.defaultValue = @"";
+ self.options = [PBFieldOptions defaultInstance];
+ }
+ return self;
+}
+static PBFieldDescriptorProto* defaultPBFieldDescriptorProtoInstance = nil;
++ (void) initialize {
+ if (self == [PBFieldDescriptorProto class]) {
+ defaultPBFieldDescriptorProtoInstance = [[PBFieldDescriptorProto alloc] init];
+ }
+}
++ (PBFieldDescriptorProto*) defaultInstance {
+ return defaultPBFieldDescriptorProtoInstance;
+}
+- (PBFieldDescriptorProto*) defaultInstance {
+ return defaultPBFieldDescriptorProtoInstance;
+}
+- (BOOL) isInitialized {
+ if (self.hasOptions) {
+ if (!self.options.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasName) {
+ [output writeString:1 value:self.name];
+ }
+ if (self.hasExtendee) {
+ [output writeString:2 value:self.extendee];
+ }
+ if (self.hasNumber) {
+ [output writeInt32:3 value:self.number];
+ }
+ if (self.hasLabel) {
+ [output writeEnum:4 value:self.label];
+ }
+ if (self.hasType) {
+ [output writeEnum:5 value:self.type];
+ }
+ if (self.hasTypeName) {
+ [output writeString:6 value:self.typeName];
+ }
+ if (self.hasDefaultValue) {
+ [output writeString:7 value:self.defaultValue];
+ }
+ if (self.hasOptions) {
+ [output writeMessage:8 value:self.options];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasName) {
+ size += computeStringSize(1, self.name);
+ }
+ if (self.hasExtendee) {
+ size += computeStringSize(2, self.extendee);
+ }
+ if (self.hasNumber) {
+ size += computeInt32Size(3, self.number);
+ }
+ if (self.hasLabel) {
+ size += computeEnumSize(4, self.label);
+ }
+ if (self.hasType) {
+ size += computeEnumSize(5, self.type);
+ }
+ if (self.hasTypeName) {
+ size += computeStringSize(6, self.typeName);
+ }
+ if (self.hasDefaultValue) {
+ size += computeStringSize(7, self.defaultValue);
+ }
+ if (self.hasOptions) {
+ size += computeMessageSize(8, self.options);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBFieldDescriptorProto*) parseFromData:(NSData*) data {
+ return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromData:data] build];
+}
++ (PBFieldDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBFieldDescriptorProto*) parseFromInputStream:(NSInputStream*) input {
+ return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromInputStream:input] build];
+}
++ (PBFieldDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFieldDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromCodedInputStream:input] build];
+}
++ (PBFieldDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFieldDescriptorProto*)[[[PBFieldDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFieldDescriptorProto_Builder*) builder {
+ return [[[PBFieldDescriptorProto_Builder alloc] init] autorelease];
+}
++ (PBFieldDescriptorProto_Builder*) builderWithPrototype:(PBFieldDescriptorProto*) prototype {
+ return [[PBFieldDescriptorProto builder] mergeFrom:prototype];
+}
+- (PBFieldDescriptorProto_Builder*) builder {
+ return [PBFieldDescriptorProto builder];
+}
+@end
+
+BOOL PBFieldDescriptorProto_TypeIsValidValue(PBFieldDescriptorProto_Type value) {
+ switch (value) {
+ case PBFieldDescriptorProto_TypeTypeDouble:
+ case PBFieldDescriptorProto_TypeTypeFloat:
+ case PBFieldDescriptorProto_TypeTypeInt64:
+ case PBFieldDescriptorProto_TypeTypeUint64:
+ case PBFieldDescriptorProto_TypeTypeInt32:
+ case PBFieldDescriptorProto_TypeTypeFixed64:
+ case PBFieldDescriptorProto_TypeTypeFixed32:
+ case PBFieldDescriptorProto_TypeTypeBool:
+ case PBFieldDescriptorProto_TypeTypeString:
+ case PBFieldDescriptorProto_TypeTypeGroup:
+ case PBFieldDescriptorProto_TypeTypeMessage:
+ case PBFieldDescriptorProto_TypeTypeBytes:
+ case PBFieldDescriptorProto_TypeTypeUint32:
+ case PBFieldDescriptorProto_TypeTypeEnum:
+ case PBFieldDescriptorProto_TypeTypeSfixed32:
+ case PBFieldDescriptorProto_TypeTypeSfixed64:
+ case PBFieldDescriptorProto_TypeTypeSint32:
+ case PBFieldDescriptorProto_TypeTypeSint64:
+ return YES;
+ default:
+ return NO;
+ }
+}
+BOOL PBFieldDescriptorProto_LabelIsValidValue(PBFieldDescriptorProto_Label value) {
+ switch (value) {
+ case PBFieldDescriptorProto_LabelLabelOptional:
+ case PBFieldDescriptorProto_LabelLabelRequired:
+ case PBFieldDescriptorProto_LabelLabelRepeated:
+ return YES;
+ default:
+ return NO;
+ }
+}
+@interface PBFieldDescriptorProto_Builder()
+@property (retain) PBFieldDescriptorProto* result;
+@end
+
+@implementation PBFieldDescriptorProto_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBFieldDescriptorProto alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBFieldDescriptorProto_Builder*) clear {
+ self.result = [[[PBFieldDescriptorProto alloc] init] autorelease];
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) clone {
+ return [PBFieldDescriptorProto builderWithPrototype:result];
+}
+- (PBFieldDescriptorProto*) defaultInstance {
+ return [PBFieldDescriptorProto defaultInstance];
+}
+- (PBFieldDescriptorProto*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBFieldDescriptorProto*) buildPartial {
+ PBFieldDescriptorProto* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBFieldDescriptorProto_Builder*) mergeFrom:(PBFieldDescriptorProto*) other {
+ if (other == [PBFieldDescriptorProto defaultInstance]) {
+ return self;
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.hasNumber) {
+ [self setNumber:other.number];
+ }
+ if (other.hasLabel) {
+ [self setLabel:other.label];
+ }
+ if (other.hasType) {
+ [self setType:other.type];
+ }
+ if (other.hasTypeName) {
+ [self setTypeName:other.typeName];
+ }
+ if (other.hasExtendee) {
+ [self setExtendee:other.extendee];
+ }
+ if (other.hasDefaultValue) {
+ [self setDefaultValue:other.defaultValue];
+ }
+ if (other.hasOptions) {
+ [self mergeOptions:other.options];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBFieldDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 18: {
+ [self setExtendee:[input readString]];
+ break;
+ }
+ case 24: {
+ [self setNumber:[input readInt32]];
+ break;
+ }
+ case 32: {
+ int32_t value = [input readEnum];
+ if (PBFieldDescriptorProto_LabelIsValidValue(value)) {
+ [self setLabel:value];
+ } else {
+ [unknownFields mergeVarintField:4 value:value];
+ }
+ break;
+ }
+ case 40: {
+ int32_t value = [input readEnum];
+ if (PBFieldDescriptorProto_TypeIsValidValue(value)) {
+ [self setType:value];
+ } else {
+ [unknownFields mergeVarintField:5 value:value];
+ }
+ break;
+ }
+ case 50: {
+ [self setTypeName:[input readString]];
+ break;
+ }
+ case 58: {
+ [self setDefaultValue:[input readString]];
+ break;
+ }
+ case 66: {
+ PBFieldOptions_Builder* subBuilder = [PBFieldOptions builder];
+ if (self.hasOptions) {
+ [subBuilder mergeFrom:self.options];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setOptions:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (PBFieldDescriptorProto_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (BOOL) hasNumber {
+ return result.hasNumber;
+}
+- (int32_t) number {
+ return result.number;
+}
+- (PBFieldDescriptorProto_Builder*) setNumber:(int32_t) value {
+ result.hasNumber = YES;
+ result.number = value;
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) clearNumber {
+ result.hasNumber = NO;
+ result.number = 0;
+ return self;
+}
+- (BOOL) hasLabel {
+ return result.hasLabel;
+}
+- (PBFieldDescriptorProto_Label) label {
+ return result.label;
+}
+- (PBFieldDescriptorProto_Builder*) setLabel:(PBFieldDescriptorProto_Label) value {
+ result.hasLabel = YES;
+ result.label = value;
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) clearLabel {
+ result.hasLabel = NO;
+ result.label = PBFieldDescriptorProto_LabelLabelOptional;
+ return self;
+}
+- (BOOL) hasType {
+ return result.hasType;
+}
+- (PBFieldDescriptorProto_Type) type {
+ return result.type;
+}
+- (PBFieldDescriptorProto_Builder*) setType:(PBFieldDescriptorProto_Type) value {
+ result.hasType = YES;
+ result.type = value;
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) clearType {
+ result.hasType = NO;
+ result.type = PBFieldDescriptorProto_TypeTypeDouble;
+ return self;
+}
+- (BOOL) hasTypeName {
+ return result.hasTypeName;
+}
+- (NSString*) typeName {
+ return result.typeName;
+}
+- (PBFieldDescriptorProto_Builder*) setTypeName:(NSString*) value {
+ result.hasTypeName = YES;
+ result.typeName = value;
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) clearTypeName {
+ result.hasTypeName = NO;
+ result.typeName = @"";
+ return self;
+}
+- (BOOL) hasExtendee {
+ return result.hasExtendee;
+}
+- (NSString*) extendee {
+ return result.extendee;
+}
+- (PBFieldDescriptorProto_Builder*) setExtendee:(NSString*) value {
+ result.hasExtendee = YES;
+ result.extendee = value;
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) clearExtendee {
+ result.hasExtendee = NO;
+ result.extendee = @"";
+ return self;
+}
+- (BOOL) hasDefaultValue {
+ return result.hasDefaultValue;
+}
+- (NSString*) defaultValue {
+ return result.defaultValue;
+}
+- (PBFieldDescriptorProto_Builder*) setDefaultValue:(NSString*) value {
+ result.hasDefaultValue = YES;
+ result.defaultValue = value;
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) clearDefaultValue {
+ result.hasDefaultValue = NO;
+ result.defaultValue = @"";
+ return self;
+}
+- (BOOL) hasOptions {
+ return result.hasOptions;
+}
+- (PBFieldOptions*) options {
+ return result.options;
+}
+- (PBFieldDescriptorProto_Builder*) setOptions:(PBFieldOptions*) value {
+ result.hasOptions = YES;
+ result.options = value;
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) setOptionsBuilder:(PBFieldOptions_Builder*) builderForValue {
+ return [self setOptions:[builderForValue build]];
+}
+- (PBFieldDescriptorProto_Builder*) mergeOptions:(PBFieldOptions*) value {
+ if (result.hasOptions &&
+ result.options != [PBFieldOptions defaultInstance]) {
+ result.options =
+ [[[PBFieldOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial];
+ } else {
+ result.options = value;
+ }
+ result.hasOptions = YES;
+ return self;
+}
+- (PBFieldDescriptorProto_Builder*) clearOptions {
+ result.hasOptions = NO;
+ result.options = [PBFieldOptions defaultInstance];
+ return self;
+}
+@end
+
+@interface PBEnumDescriptorProto ()
+@property (retain) NSString* name;
+@property (retain) NSMutableArray* mutableValueList;
+@property (retain) PBEnumOptions* options;
+@end
+
+@implementation PBEnumDescriptorProto
+
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+@synthesize mutableValueList;
+- (BOOL) hasOptions {
+ return !!hasOptions_;
+}
+- (void) setHasOptions:(BOOL) value {
+ hasOptions_ = !!value;
+}
+@synthesize options;
+- (void) dealloc {
+ self.name = nil;
+ self.mutableValueList = nil;
+ self.options = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.name = @"";
+ self.options = [PBEnumOptions defaultInstance];
+ }
+ return self;
+}
+static PBEnumDescriptorProto* defaultPBEnumDescriptorProtoInstance = nil;
++ (void) initialize {
+ if (self == [PBEnumDescriptorProto class]) {
+ defaultPBEnumDescriptorProtoInstance = [[PBEnumDescriptorProto alloc] init];
+ }
+}
++ (PBEnumDescriptorProto*) defaultInstance {
+ return defaultPBEnumDescriptorProtoInstance;
+}
+- (PBEnumDescriptorProto*) defaultInstance {
+ return defaultPBEnumDescriptorProtoInstance;
+}
+- (NSArray*) valueList {
+ return mutableValueList;
+}
+- (PBEnumValueDescriptorProto*) valueAtIndex:(int32_t) index {
+ id value = [mutableValueList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBEnumValueDescriptorProto* element in self.valueList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (self.hasOptions) {
+ if (!self.options.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasName) {
+ [output writeString:1 value:self.name];
+ }
+ for (PBEnumValueDescriptorProto* element in self.valueList) {
+ [output writeMessage:2 value:element];
+ }
+ if (self.hasOptions) {
+ [output writeMessage:3 value:self.options];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasName) {
+ size += computeStringSize(1, self.name);
+ }
+ for (PBEnumValueDescriptorProto* element in self.valueList) {
+ size += computeMessageSize(2, element);
+ }
+ if (self.hasOptions) {
+ size += computeMessageSize(3, self.options);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBEnumDescriptorProto*) parseFromData:(NSData*) data {
+ return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromData:data] build];
+}
++ (PBEnumDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumDescriptorProto*) parseFromInputStream:(NSInputStream*) input {
+ return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromInputStream:input] build];
+}
++ (PBEnumDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromCodedInputStream:input] build];
+}
++ (PBEnumDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumDescriptorProto*)[[[PBEnumDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumDescriptorProto_Builder*) builder {
+ return [[[PBEnumDescriptorProto_Builder alloc] init] autorelease];
+}
++ (PBEnumDescriptorProto_Builder*) builderWithPrototype:(PBEnumDescriptorProto*) prototype {
+ return [[PBEnumDescriptorProto builder] mergeFrom:prototype];
+}
+- (PBEnumDescriptorProto_Builder*) builder {
+ return [PBEnumDescriptorProto builder];
+}
+@end
+
+@interface PBEnumDescriptorProto_Builder()
+@property (retain) PBEnumDescriptorProto* result;
+@end
+
+@implementation PBEnumDescriptorProto_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBEnumDescriptorProto alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBEnumDescriptorProto_Builder*) clear {
+ self.result = [[[PBEnumDescriptorProto alloc] init] autorelease];
+ return self;
+}
+- (PBEnumDescriptorProto_Builder*) clone {
+ return [PBEnumDescriptorProto builderWithPrototype:result];
+}
+- (PBEnumDescriptorProto*) defaultInstance {
+ return [PBEnumDescriptorProto defaultInstance];
+}
+- (PBEnumDescriptorProto*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBEnumDescriptorProto*) buildPartial {
+ PBEnumDescriptorProto* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBEnumDescriptorProto_Builder*) mergeFrom:(PBEnumDescriptorProto*) other {
+ if (other == [PBEnumDescriptorProto defaultInstance]) {
+ return self;
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.mutableValueList.count > 0) {
+ if (result.mutableValueList == nil) {
+ result.mutableValueList = [NSMutableArray array];
+ }
+ [result.mutableValueList addObjectsFromArray:other.mutableValueList];
+ }
+ if (other.hasOptions) {
+ [self mergeOptions:other.options];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBEnumDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBEnumDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 18: {
+ PBEnumValueDescriptorProto_Builder* subBuilder = [PBEnumValueDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addValue:[subBuilder buildPartial]];
+ break;
+ }
+ case 26: {
+ PBEnumOptions_Builder* subBuilder = [PBEnumOptions builder];
+ if (self.hasOptions) {
+ [subBuilder mergeFrom:self.options];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setOptions:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (PBEnumDescriptorProto_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (PBEnumDescriptorProto_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (NSArray*) valueList {
+ if (result.mutableValueList == nil) { return [NSArray array]; }
+ return result.mutableValueList;
+}
+- (PBEnumValueDescriptorProto*) valueAtIndex:(int32_t) index {
+ return [result valueAtIndex:index];
+}
+- (PBEnumDescriptorProto_Builder*) replaceValueAtIndex:(int32_t) index with:(PBEnumValueDescriptorProto*) value {
+ [result.mutableValueList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBEnumDescriptorProto_Builder*) addAllValue:(NSArray*) values {
+ if (result.mutableValueList == nil) {
+ result.mutableValueList = [NSMutableArray array];
+ }
+ [result.mutableValueList addObjectsFromArray:values];
+ return self;
+}
+- (PBEnumDescriptorProto_Builder*) clearValueList {
+ result.mutableValueList = nil;
+ return self;
+}
+- (PBEnumDescriptorProto_Builder*) addValue:(PBEnumValueDescriptorProto*) value {
+ if (result.mutableValueList == nil) {
+ result.mutableValueList = [NSMutableArray array];
+ }
+ [result.mutableValueList addObject:value];
+ return self;
+}
+- (BOOL) hasOptions {
+ return result.hasOptions;
+}
+- (PBEnumOptions*) options {
+ return result.options;
+}
+- (PBEnumDescriptorProto_Builder*) setOptions:(PBEnumOptions*) value {
+ result.hasOptions = YES;
+ result.options = value;
+ return self;
+}
+- (PBEnumDescriptorProto_Builder*) setOptionsBuilder:(PBEnumOptions_Builder*) builderForValue {
+ return [self setOptions:[builderForValue build]];
+}
+- (PBEnumDescriptorProto_Builder*) mergeOptions:(PBEnumOptions*) value {
+ if (result.hasOptions &&
+ result.options != [PBEnumOptions defaultInstance]) {
+ result.options =
+ [[[PBEnumOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial];
+ } else {
+ result.options = value;
+ }
+ result.hasOptions = YES;
+ return self;
+}
+- (PBEnumDescriptorProto_Builder*) clearOptions {
+ result.hasOptions = NO;
+ result.options = [PBEnumOptions defaultInstance];
+ return self;
+}
+@end
+
+@interface PBEnumValueDescriptorProto ()
+@property (retain) NSString* name;
+@property int32_t number;
+@property (retain) PBEnumValueOptions* options;
+@end
+
+@implementation PBEnumValueDescriptorProto
+
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+- (BOOL) hasNumber {
+ return !!hasNumber_;
+}
+- (void) setHasNumber:(BOOL) value {
+ hasNumber_ = !!value;
+}
+@synthesize number;
+- (BOOL) hasOptions {
+ return !!hasOptions_;
+}
+- (void) setHasOptions:(BOOL) value {
+ hasOptions_ = !!value;
+}
+@synthesize options;
+- (void) dealloc {
+ self.name = nil;
+ self.options = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.name = @"";
+ self.number = 0;
+ self.options = [PBEnumValueOptions defaultInstance];
+ }
+ return self;
+}
+static PBEnumValueDescriptorProto* defaultPBEnumValueDescriptorProtoInstance = nil;
++ (void) initialize {
+ if (self == [PBEnumValueDescriptorProto class]) {
+ defaultPBEnumValueDescriptorProtoInstance = [[PBEnumValueDescriptorProto alloc] init];
+ }
+}
++ (PBEnumValueDescriptorProto*) defaultInstance {
+ return defaultPBEnumValueDescriptorProtoInstance;
+}
+- (PBEnumValueDescriptorProto*) defaultInstance {
+ return defaultPBEnumValueDescriptorProtoInstance;
+}
+- (BOOL) isInitialized {
+ if (self.hasOptions) {
+ if (!self.options.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasName) {
+ [output writeString:1 value:self.name];
+ }
+ if (self.hasNumber) {
+ [output writeInt32:2 value:self.number];
+ }
+ if (self.hasOptions) {
+ [output writeMessage:3 value:self.options];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasName) {
+ size += computeStringSize(1, self.name);
+ }
+ if (self.hasNumber) {
+ size += computeInt32Size(2, self.number);
+ }
+ if (self.hasOptions) {
+ size += computeMessageSize(3, self.options);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBEnumValueDescriptorProto*) parseFromData:(NSData*) data {
+ return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromData:data] build];
+}
++ (PBEnumValueDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumValueDescriptorProto*) parseFromInputStream:(NSInputStream*) input {
+ return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromInputStream:input] build];
+}
++ (PBEnumValueDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumValueDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromCodedInputStream:input] build];
+}
++ (PBEnumValueDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumValueDescriptorProto*)[[[PBEnumValueDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumValueDescriptorProto_Builder*) builder {
+ return [[[PBEnumValueDescriptorProto_Builder alloc] init] autorelease];
+}
++ (PBEnumValueDescriptorProto_Builder*) builderWithPrototype:(PBEnumValueDescriptorProto*) prototype {
+ return [[PBEnumValueDescriptorProto builder] mergeFrom:prototype];
+}
+- (PBEnumValueDescriptorProto_Builder*) builder {
+ return [PBEnumValueDescriptorProto builder];
+}
+@end
+
+@interface PBEnumValueDescriptorProto_Builder()
+@property (retain) PBEnumValueDescriptorProto* result;
+@end
+
+@implementation PBEnumValueDescriptorProto_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBEnumValueDescriptorProto alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBEnumValueDescriptorProto_Builder*) clear {
+ self.result = [[[PBEnumValueDescriptorProto alloc] init] autorelease];
+ return self;
+}
+- (PBEnumValueDescriptorProto_Builder*) clone {
+ return [PBEnumValueDescriptorProto builderWithPrototype:result];
+}
+- (PBEnumValueDescriptorProto*) defaultInstance {
+ return [PBEnumValueDescriptorProto defaultInstance];
+}
+- (PBEnumValueDescriptorProto*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBEnumValueDescriptorProto*) buildPartial {
+ PBEnumValueDescriptorProto* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBEnumValueDescriptorProto_Builder*) mergeFrom:(PBEnumValueDescriptorProto*) other {
+ if (other == [PBEnumValueDescriptorProto defaultInstance]) {
+ return self;
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.hasNumber) {
+ [self setNumber:other.number];
+ }
+ if (other.hasOptions) {
+ [self mergeOptions:other.options];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBEnumValueDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBEnumValueDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 16: {
+ [self setNumber:[input readInt32]];
+ break;
+ }
+ case 26: {
+ PBEnumValueOptions_Builder* subBuilder = [PBEnumValueOptions builder];
+ if (self.hasOptions) {
+ [subBuilder mergeFrom:self.options];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setOptions:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (PBEnumValueDescriptorProto_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (PBEnumValueDescriptorProto_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (BOOL) hasNumber {
+ return result.hasNumber;
+}
+- (int32_t) number {
+ return result.number;
+}
+- (PBEnumValueDescriptorProto_Builder*) setNumber:(int32_t) value {
+ result.hasNumber = YES;
+ result.number = value;
+ return self;
+}
+- (PBEnumValueDescriptorProto_Builder*) clearNumber {
+ result.hasNumber = NO;
+ result.number = 0;
+ return self;
+}
+- (BOOL) hasOptions {
+ return result.hasOptions;
+}
+- (PBEnumValueOptions*) options {
+ return result.options;
+}
+- (PBEnumValueDescriptorProto_Builder*) setOptions:(PBEnumValueOptions*) value {
+ result.hasOptions = YES;
+ result.options = value;
+ return self;
+}
+- (PBEnumValueDescriptorProto_Builder*) setOptionsBuilder:(PBEnumValueOptions_Builder*) builderForValue {
+ return [self setOptions:[builderForValue build]];
+}
+- (PBEnumValueDescriptorProto_Builder*) mergeOptions:(PBEnumValueOptions*) value {
+ if (result.hasOptions &&
+ result.options != [PBEnumValueOptions defaultInstance]) {
+ result.options =
+ [[[PBEnumValueOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial];
+ } else {
+ result.options = value;
+ }
+ result.hasOptions = YES;
+ return self;
+}
+- (PBEnumValueDescriptorProto_Builder*) clearOptions {
+ result.hasOptions = NO;
+ result.options = [PBEnumValueOptions defaultInstance];
+ return self;
+}
+@end
+
+@interface PBServiceDescriptorProto ()
+@property (retain) NSString* name;
+@property (retain) NSMutableArray* mutableMethodList;
+@property (retain) PBServiceOptions* options;
+@end
+
+@implementation PBServiceDescriptorProto
+
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+@synthesize mutableMethodList;
+- (BOOL) hasOptions {
+ return !!hasOptions_;
+}
+- (void) setHasOptions:(BOOL) value {
+ hasOptions_ = !!value;
+}
+@synthesize options;
+- (void) dealloc {
+ self.name = nil;
+ self.mutableMethodList = nil;
+ self.options = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.name = @"";
+ self.options = [PBServiceOptions defaultInstance];
+ }
+ return self;
+}
+static PBServiceDescriptorProto* defaultPBServiceDescriptorProtoInstance = nil;
++ (void) initialize {
+ if (self == [PBServiceDescriptorProto class]) {
+ defaultPBServiceDescriptorProtoInstance = [[PBServiceDescriptorProto alloc] init];
+ }
+}
++ (PBServiceDescriptorProto*) defaultInstance {
+ return defaultPBServiceDescriptorProtoInstance;
+}
+- (PBServiceDescriptorProto*) defaultInstance {
+ return defaultPBServiceDescriptorProtoInstance;
+}
+- (NSArray*) methodList {
+ return mutableMethodList;
+}
+- (PBMethodDescriptorProto*) methodAtIndex:(int32_t) index {
+ id value = [mutableMethodList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBMethodDescriptorProto* element in self.methodList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (self.hasOptions) {
+ if (!self.options.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasName) {
+ [output writeString:1 value:self.name];
+ }
+ for (PBMethodDescriptorProto* element in self.methodList) {
+ [output writeMessage:2 value:element];
+ }
+ if (self.hasOptions) {
+ [output writeMessage:3 value:self.options];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasName) {
+ size += computeStringSize(1, self.name);
+ }
+ for (PBMethodDescriptorProto* element in self.methodList) {
+ size += computeMessageSize(2, element);
+ }
+ if (self.hasOptions) {
+ size += computeMessageSize(3, self.options);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBServiceDescriptorProto*) parseFromData:(NSData*) data {
+ return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromData:data] build];
+}
++ (PBServiceDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBServiceDescriptorProto*) parseFromInputStream:(NSInputStream*) input {
+ return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromInputStream:input] build];
+}
++ (PBServiceDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBServiceDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromCodedInputStream:input] build];
+}
++ (PBServiceDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBServiceDescriptorProto*)[[[PBServiceDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBServiceDescriptorProto_Builder*) builder {
+ return [[[PBServiceDescriptorProto_Builder alloc] init] autorelease];
+}
++ (PBServiceDescriptorProto_Builder*) builderWithPrototype:(PBServiceDescriptorProto*) prototype {
+ return [[PBServiceDescriptorProto builder] mergeFrom:prototype];
+}
+- (PBServiceDescriptorProto_Builder*) builder {
+ return [PBServiceDescriptorProto builder];
+}
+@end
+
+@interface PBServiceDescriptorProto_Builder()
+@property (retain) PBServiceDescriptorProto* result;
+@end
+
+@implementation PBServiceDescriptorProto_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBServiceDescriptorProto alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBServiceDescriptorProto_Builder*) clear {
+ self.result = [[[PBServiceDescriptorProto alloc] init] autorelease];
+ return self;
+}
+- (PBServiceDescriptorProto_Builder*) clone {
+ return [PBServiceDescriptorProto builderWithPrototype:result];
+}
+- (PBServiceDescriptorProto*) defaultInstance {
+ return [PBServiceDescriptorProto defaultInstance];
+}
+- (PBServiceDescriptorProto*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBServiceDescriptorProto*) buildPartial {
+ PBServiceDescriptorProto* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBServiceDescriptorProto_Builder*) mergeFrom:(PBServiceDescriptorProto*) other {
+ if (other == [PBServiceDescriptorProto defaultInstance]) {
+ return self;
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.mutableMethodList.count > 0) {
+ if (result.mutableMethodList == nil) {
+ result.mutableMethodList = [NSMutableArray array];
+ }
+ [result.mutableMethodList addObjectsFromArray:other.mutableMethodList];
+ }
+ if (other.hasOptions) {
+ [self mergeOptions:other.options];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBServiceDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBServiceDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 18: {
+ PBMethodDescriptorProto_Builder* subBuilder = [PBMethodDescriptorProto builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addMethod:[subBuilder buildPartial]];
+ break;
+ }
+ case 26: {
+ PBServiceOptions_Builder* subBuilder = [PBServiceOptions builder];
+ if (self.hasOptions) {
+ [subBuilder mergeFrom:self.options];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setOptions:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (PBServiceDescriptorProto_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (PBServiceDescriptorProto_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (NSArray*) methodList {
+ if (result.mutableMethodList == nil) { return [NSArray array]; }
+ return result.mutableMethodList;
+}
+- (PBMethodDescriptorProto*) methodAtIndex:(int32_t) index {
+ return [result methodAtIndex:index];
+}
+- (PBServiceDescriptorProto_Builder*) replaceMethodAtIndex:(int32_t) index with:(PBMethodDescriptorProto*) value {
+ [result.mutableMethodList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBServiceDescriptorProto_Builder*) addAllMethod:(NSArray*) values {
+ if (result.mutableMethodList == nil) {
+ result.mutableMethodList = [NSMutableArray array];
+ }
+ [result.mutableMethodList addObjectsFromArray:values];
+ return self;
+}
+- (PBServiceDescriptorProto_Builder*) clearMethodList {
+ result.mutableMethodList = nil;
+ return self;
+}
+- (PBServiceDescriptorProto_Builder*) addMethod:(PBMethodDescriptorProto*) value {
+ if (result.mutableMethodList == nil) {
+ result.mutableMethodList = [NSMutableArray array];
+ }
+ [result.mutableMethodList addObject:value];
+ return self;
+}
+- (BOOL) hasOptions {
+ return result.hasOptions;
+}
+- (PBServiceOptions*) options {
+ return result.options;
+}
+- (PBServiceDescriptorProto_Builder*) setOptions:(PBServiceOptions*) value {
+ result.hasOptions = YES;
+ result.options = value;
+ return self;
+}
+- (PBServiceDescriptorProto_Builder*) setOptionsBuilder:(PBServiceOptions_Builder*) builderForValue {
+ return [self setOptions:[builderForValue build]];
+}
+- (PBServiceDescriptorProto_Builder*) mergeOptions:(PBServiceOptions*) value {
+ if (result.hasOptions &&
+ result.options != [PBServiceOptions defaultInstance]) {
+ result.options =
+ [[[PBServiceOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial];
+ } else {
+ result.options = value;
+ }
+ result.hasOptions = YES;
+ return self;
+}
+- (PBServiceDescriptorProto_Builder*) clearOptions {
+ result.hasOptions = NO;
+ result.options = [PBServiceOptions defaultInstance];
+ return self;
+}
+@end
+
+@interface PBMethodDescriptorProto ()
+@property (retain) NSString* name;
+@property (retain) NSString* inputType;
+@property (retain) NSString* outputType;
+@property (retain) PBMethodOptions* options;
+@end
+
+@implementation PBMethodDescriptorProto
+
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+- (BOOL) hasInputType {
+ return !!hasInputType_;
+}
+- (void) setHasInputType:(BOOL) value {
+ hasInputType_ = !!value;
+}
+@synthesize inputType;
+- (BOOL) hasOutputType {
+ return !!hasOutputType_;
+}
+- (void) setHasOutputType:(BOOL) value {
+ hasOutputType_ = !!value;
+}
+@synthesize outputType;
+- (BOOL) hasOptions {
+ return !!hasOptions_;
+}
+- (void) setHasOptions:(BOOL) value {
+ hasOptions_ = !!value;
+}
+@synthesize options;
+- (void) dealloc {
+ self.name = nil;
+ self.inputType = nil;
+ self.outputType = nil;
+ self.options = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.name = @"";
+ self.inputType = @"";
+ self.outputType = @"";
+ self.options = [PBMethodOptions defaultInstance];
+ }
+ return self;
+}
+static PBMethodDescriptorProto* defaultPBMethodDescriptorProtoInstance = nil;
++ (void) initialize {
+ if (self == [PBMethodDescriptorProto class]) {
+ defaultPBMethodDescriptorProtoInstance = [[PBMethodDescriptorProto alloc] init];
+ }
+}
++ (PBMethodDescriptorProto*) defaultInstance {
+ return defaultPBMethodDescriptorProtoInstance;
+}
+- (PBMethodDescriptorProto*) defaultInstance {
+ return defaultPBMethodDescriptorProtoInstance;
+}
+- (BOOL) isInitialized {
+ if (self.hasOptions) {
+ if (!self.options.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasName) {
+ [output writeString:1 value:self.name];
+ }
+ if (self.hasInputType) {
+ [output writeString:2 value:self.inputType];
+ }
+ if (self.hasOutputType) {
+ [output writeString:3 value:self.outputType];
+ }
+ if (self.hasOptions) {
+ [output writeMessage:4 value:self.options];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasName) {
+ size += computeStringSize(1, self.name);
+ }
+ if (self.hasInputType) {
+ size += computeStringSize(2, self.inputType);
+ }
+ if (self.hasOutputType) {
+ size += computeStringSize(3, self.outputType);
+ }
+ if (self.hasOptions) {
+ size += computeMessageSize(4, self.options);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBMethodDescriptorProto*) parseFromData:(NSData*) data {
+ return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromData:data] build];
+}
++ (PBMethodDescriptorProto*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBMethodDescriptorProto*) parseFromInputStream:(NSInputStream*) input {
+ return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromInputStream:input] build];
+}
++ (PBMethodDescriptorProto*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBMethodDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromCodedInputStream:input] build];
+}
++ (PBMethodDescriptorProto*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBMethodDescriptorProto*)[[[PBMethodDescriptorProto builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBMethodDescriptorProto_Builder*) builder {
+ return [[[PBMethodDescriptorProto_Builder alloc] init] autorelease];
+}
++ (PBMethodDescriptorProto_Builder*) builderWithPrototype:(PBMethodDescriptorProto*) prototype {
+ return [[PBMethodDescriptorProto builder] mergeFrom:prototype];
+}
+- (PBMethodDescriptorProto_Builder*) builder {
+ return [PBMethodDescriptorProto builder];
+}
+@end
+
+@interface PBMethodDescriptorProto_Builder()
+@property (retain) PBMethodDescriptorProto* result;
+@end
+
+@implementation PBMethodDescriptorProto_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBMethodDescriptorProto alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBMethodDescriptorProto_Builder*) clear {
+ self.result = [[[PBMethodDescriptorProto alloc] init] autorelease];
+ return self;
+}
+- (PBMethodDescriptorProto_Builder*) clone {
+ return [PBMethodDescriptorProto builderWithPrototype:result];
+}
+- (PBMethodDescriptorProto*) defaultInstance {
+ return [PBMethodDescriptorProto defaultInstance];
+}
+- (PBMethodDescriptorProto*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBMethodDescriptorProto*) buildPartial {
+ PBMethodDescriptorProto* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBMethodDescriptorProto_Builder*) mergeFrom:(PBMethodDescriptorProto*) other {
+ if (other == [PBMethodDescriptorProto defaultInstance]) {
+ return self;
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.hasInputType) {
+ [self setInputType:other.inputType];
+ }
+ if (other.hasOutputType) {
+ [self setOutputType:other.outputType];
+ }
+ if (other.hasOptions) {
+ [self mergeOptions:other.options];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBMethodDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBMethodDescriptorProto_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 18: {
+ [self setInputType:[input readString]];
+ break;
+ }
+ case 26: {
+ [self setOutputType:[input readString]];
+ break;
+ }
+ case 34: {
+ PBMethodOptions_Builder* subBuilder = [PBMethodOptions builder];
+ if (self.hasOptions) {
+ [subBuilder mergeFrom:self.options];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setOptions:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (PBMethodDescriptorProto_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (PBMethodDescriptorProto_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (BOOL) hasInputType {
+ return result.hasInputType;
+}
+- (NSString*) inputType {
+ return result.inputType;
+}
+- (PBMethodDescriptorProto_Builder*) setInputType:(NSString*) value {
+ result.hasInputType = YES;
+ result.inputType = value;
+ return self;
+}
+- (PBMethodDescriptorProto_Builder*) clearInputType {
+ result.hasInputType = NO;
+ result.inputType = @"";
+ return self;
+}
+- (BOOL) hasOutputType {
+ return result.hasOutputType;
+}
+- (NSString*) outputType {
+ return result.outputType;
+}
+- (PBMethodDescriptorProto_Builder*) setOutputType:(NSString*) value {
+ result.hasOutputType = YES;
+ result.outputType = value;
+ return self;
+}
+- (PBMethodDescriptorProto_Builder*) clearOutputType {
+ result.hasOutputType = NO;
+ result.outputType = @"";
+ return self;
+}
+- (BOOL) hasOptions {
+ return result.hasOptions;
+}
+- (PBMethodOptions*) options {
+ return result.options;
+}
+- (PBMethodDescriptorProto_Builder*) setOptions:(PBMethodOptions*) value {
+ result.hasOptions = YES;
+ result.options = value;
+ return self;
+}
+- (PBMethodDescriptorProto_Builder*) setOptionsBuilder:(PBMethodOptions_Builder*) builderForValue {
+ return [self setOptions:[builderForValue build]];
+}
+- (PBMethodDescriptorProto_Builder*) mergeOptions:(PBMethodOptions*) value {
+ if (result.hasOptions &&
+ result.options != [PBMethodOptions defaultInstance]) {
+ result.options =
+ [[[PBMethodOptions builderWithPrototype:result.options] mergeFrom:value] buildPartial];
+ } else {
+ result.options = value;
+ }
+ result.hasOptions = YES;
+ return self;
+}
+- (PBMethodDescriptorProto_Builder*) clearOptions {
+ result.hasOptions = NO;
+ result.options = [PBMethodOptions defaultInstance];
+ return self;
+}
+@end
+
+@interface PBFileOptions ()
+@property (retain) NSString* javaPackage;
+@property (retain) NSString* javaOuterClassname;
+@property BOOL javaMultipleFiles;
+@property PBFileOptions_OptimizeMode optimizeFor;
+@property (retain) NSMutableArray* mutableUninterpretedOptionList;
+@end
+
+@implementation PBFileOptions
+
+- (BOOL) hasJavaPackage {
+ return !!hasJavaPackage_;
+}
+- (void) setHasJavaPackage:(BOOL) value {
+ hasJavaPackage_ = !!value;
+}
+@synthesize javaPackage;
+- (BOOL) hasJavaOuterClassname {
+ return !!hasJavaOuterClassname_;
+}
+- (void) setHasJavaOuterClassname:(BOOL) value {
+ hasJavaOuterClassname_ = !!value;
+}
+@synthesize javaOuterClassname;
+- (BOOL) hasJavaMultipleFiles {
+ return !!hasJavaMultipleFiles_;
+}
+- (void) setHasJavaMultipleFiles:(BOOL) value {
+ hasJavaMultipleFiles_ = !!value;
+}
+- (BOOL) javaMultipleFiles {
+ return !!javaMultipleFiles_;
+}
+- (void) setJavaMultipleFiles:(BOOL) value {
+ javaMultipleFiles_ = !!value;
+}
+- (BOOL) hasOptimizeFor {
+ return !!hasOptimizeFor_;
+}
+- (void) setHasOptimizeFor:(BOOL) value {
+ hasOptimizeFor_ = !!value;
+}
+@synthesize optimizeFor;
+@synthesize mutableUninterpretedOptionList;
+- (void) dealloc {
+ self.javaPackage = nil;
+ self.javaOuterClassname = nil;
+ self.mutableUninterpretedOptionList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.javaPackage = @"";
+ self.javaOuterClassname = @"";
+ self.javaMultipleFiles = NO;
+ self.optimizeFor = PBFileOptions_OptimizeModeSpeed;
+ }
+ return self;
+}
+static PBFileOptions* defaultPBFileOptionsInstance = nil;
++ (void) initialize {
+ if (self == [PBFileOptions class]) {
+ defaultPBFileOptionsInstance = [[PBFileOptions alloc] init];
+ }
+}
++ (PBFileOptions*) defaultInstance {
+ return defaultPBFileOptionsInstance;
+}
+- (PBFileOptions*) defaultInstance {
+ return defaultPBFileOptionsInstance;
+}
+- (NSArray*) uninterpretedOptionList {
+ return mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ id value = [mutableUninterpretedOptionList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (!self.extensionsAreInitialized) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasJavaPackage) {
+ [output writeString:1 value:self.javaPackage];
+ }
+ if (self.hasJavaOuterClassname) {
+ [output writeString:8 value:self.javaOuterClassname];
+ }
+ if (self.hasOptimizeFor) {
+ [output writeEnum:9 value:self.optimizeFor];
+ }
+ if (self.hasJavaMultipleFiles) {
+ [output writeBool:10 value:self.javaMultipleFiles];
+ }
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ [output writeMessage:999 value:element];
+ }
+ [self writeExtensionsToCodedOutputStream:output
+ from:1000
+ to:536870912];
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasJavaPackage) {
+ size += computeStringSize(1, self.javaPackage);
+ }
+ if (self.hasJavaOuterClassname) {
+ size += computeStringSize(8, self.javaOuterClassname);
+ }
+ if (self.hasOptimizeFor) {
+ size += computeEnumSize(9, self.optimizeFor);
+ }
+ if (self.hasJavaMultipleFiles) {
+ size += computeBoolSize(10, self.javaMultipleFiles);
+ }
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ size += computeMessageSize(999, element);
+ }
+ size += [self extensionsSerializedSize];
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBFileOptions*) parseFromData:(NSData*) data {
+ return (PBFileOptions*)[[[PBFileOptions builder] mergeFromData:data] build];
+}
++ (PBFileOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFileOptions*)[[[PBFileOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBFileOptions*) parseFromInputStream:(NSInputStream*) input {
+ return (PBFileOptions*)[[[PBFileOptions builder] mergeFromInputStream:input] build];
+}
++ (PBFileOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFileOptions*)[[[PBFileOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBFileOptions*)[[[PBFileOptions builder] mergeFromCodedInputStream:input] build];
+}
++ (PBFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFileOptions*)[[[PBFileOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFileOptions_Builder*) builder {
+ return [[[PBFileOptions_Builder alloc] init] autorelease];
+}
++ (PBFileOptions_Builder*) builderWithPrototype:(PBFileOptions*) prototype {
+ return [[PBFileOptions builder] mergeFrom:prototype];
+}
+- (PBFileOptions_Builder*) builder {
+ return [PBFileOptions builder];
+}
+@end
+
+BOOL PBFileOptions_OptimizeModeIsValidValue(PBFileOptions_OptimizeMode value) {
+ switch (value) {
+ case PBFileOptions_OptimizeModeSpeed:
+ case PBFileOptions_OptimizeModeCodeSize:
+ case PBFileOptions_OptimizeModeLiteRuntime:
+ return YES;
+ default:
+ return NO;
+ }
+}
+@interface PBFileOptions_Builder()
+@property (retain) PBFileOptions* result;
+@end
+
+@implementation PBFileOptions_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBFileOptions alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBExtendableMessage*) internalGetResult {
+ return result;
+}
+- (PBFileOptions_Builder*) clear {
+ self.result = [[[PBFileOptions alloc] init] autorelease];
+ return self;
+}
+- (PBFileOptions_Builder*) clone {
+ return [PBFileOptions builderWithPrototype:result];
+}
+- (PBFileOptions*) defaultInstance {
+ return [PBFileOptions defaultInstance];
+}
+- (PBFileOptions*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBFileOptions*) buildPartial {
+ PBFileOptions* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBFileOptions_Builder*) mergeFrom:(PBFileOptions*) other {
+ if (other == [PBFileOptions defaultInstance]) {
+ return self;
+ }
+ if (other.hasJavaPackage) {
+ [self setJavaPackage:other.javaPackage];
+ }
+ if (other.hasJavaOuterClassname) {
+ [self setJavaOuterClassname:other.javaOuterClassname];
+ }
+ if (other.hasJavaMultipleFiles) {
+ [self setJavaMultipleFiles:other.javaMultipleFiles];
+ }
+ if (other.hasOptimizeFor) {
+ [self setOptimizeFor:other.optimizeFor];
+ }
+ if (other.mutableUninterpretedOptionList.count > 0) {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList];
+ }
+ [self mergeExtensionFields:other];
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setJavaPackage:[input readString]];
+ break;
+ }
+ case 66: {
+ [self setJavaOuterClassname:[input readString]];
+ break;
+ }
+ case 72: {
+ int32_t value = [input readEnum];
+ if (PBFileOptions_OptimizeModeIsValidValue(value)) {
+ [self setOptimizeFor:value];
+ } else {
+ [unknownFields mergeVarintField:9 value:value];
+ }
+ break;
+ }
+ case 80: {
+ [self setJavaMultipleFiles:[input readBool]];
+ break;
+ }
+ case 7994: {
+ PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addUninterpretedOption:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasJavaPackage {
+ return result.hasJavaPackage;
+}
+- (NSString*) javaPackage {
+ return result.javaPackage;
+}
+- (PBFileOptions_Builder*) setJavaPackage:(NSString*) value {
+ result.hasJavaPackage = YES;
+ result.javaPackage = value;
+ return self;
+}
+- (PBFileOptions_Builder*) clearJavaPackage {
+ result.hasJavaPackage = NO;
+ result.javaPackage = @"";
+ return self;
+}
+- (BOOL) hasJavaOuterClassname {
+ return result.hasJavaOuterClassname;
+}
+- (NSString*) javaOuterClassname {
+ return result.javaOuterClassname;
+}
+- (PBFileOptions_Builder*) setJavaOuterClassname:(NSString*) value {
+ result.hasJavaOuterClassname = YES;
+ result.javaOuterClassname = value;
+ return self;
+}
+- (PBFileOptions_Builder*) clearJavaOuterClassname {
+ result.hasJavaOuterClassname = NO;
+ result.javaOuterClassname = @"";
+ return self;
+}
+- (BOOL) hasJavaMultipleFiles {
+ return result.hasJavaMultipleFiles;
+}
+- (BOOL) javaMultipleFiles {
+ return result.javaMultipleFiles;
+}
+- (PBFileOptions_Builder*) setJavaMultipleFiles:(BOOL) value {
+ result.hasJavaMultipleFiles = YES;
+ result.javaMultipleFiles = value;
+ return self;
+}
+- (PBFileOptions_Builder*) clearJavaMultipleFiles {
+ result.hasJavaMultipleFiles = NO;
+ result.javaMultipleFiles = NO;
+ return self;
+}
+- (BOOL) hasOptimizeFor {
+ return result.hasOptimizeFor;
+}
+- (PBFileOptions_OptimizeMode) optimizeFor {
+ return result.optimizeFor;
+}
+- (PBFileOptions_Builder*) setOptimizeFor:(PBFileOptions_OptimizeMode) value {
+ result.hasOptimizeFor = YES;
+ result.optimizeFor = value;
+ return self;
+}
+- (PBFileOptions_Builder*) clearOptimizeFor {
+ result.hasOptimizeFor = NO;
+ result.optimizeFor = PBFileOptions_OptimizeModeSpeed;
+ return self;
+}
+- (NSArray*) uninterpretedOptionList {
+ if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; }
+ return result.mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ return [result uninterpretedOptionAtIndex:index];
+}
+- (PBFileOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value {
+ [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBFileOptions_Builder*) addAllUninterpretedOption:(NSArray*) values {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:values];
+ return self;
+}
+- (PBFileOptions_Builder*) clearUninterpretedOptionList {
+ result.mutableUninterpretedOptionList = nil;
+ return self;
+}
+- (PBFileOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObject:value];
+ return self;
+}
+@end
+
+@interface PBMessageOptions ()
+@property BOOL messageSetWireFormat;
+@property BOOL noStandardDescriptorAccessor;
+@property (retain) NSMutableArray* mutableUninterpretedOptionList;
+@end
+
+@implementation PBMessageOptions
+
+- (BOOL) hasMessageSetWireFormat {
+ return !!hasMessageSetWireFormat_;
+}
+- (void) setHasMessageSetWireFormat:(BOOL) value {
+ hasMessageSetWireFormat_ = !!value;
+}
+- (BOOL) messageSetWireFormat {
+ return !!messageSetWireFormat_;
+}
+- (void) setMessageSetWireFormat:(BOOL) value {
+ messageSetWireFormat_ = !!value;
+}
+- (BOOL) hasNoStandardDescriptorAccessor {
+ return !!hasNoStandardDescriptorAccessor_;
+}
+- (void) setHasNoStandardDescriptorAccessor:(BOOL) value {
+ hasNoStandardDescriptorAccessor_ = !!value;
+}
+- (BOOL) noStandardDescriptorAccessor {
+ return !!noStandardDescriptorAccessor_;
+}
+- (void) setNoStandardDescriptorAccessor:(BOOL) value {
+ noStandardDescriptorAccessor_ = !!value;
+}
+@synthesize mutableUninterpretedOptionList;
+- (void) dealloc {
+ self.mutableUninterpretedOptionList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.messageSetWireFormat = NO;
+ self.noStandardDescriptorAccessor = NO;
+ }
+ return self;
+}
+static PBMessageOptions* defaultPBMessageOptionsInstance = nil;
++ (void) initialize {
+ if (self == [PBMessageOptions class]) {
+ defaultPBMessageOptionsInstance = [[PBMessageOptions alloc] init];
+ }
+}
++ (PBMessageOptions*) defaultInstance {
+ return defaultPBMessageOptionsInstance;
+}
+- (PBMessageOptions*) defaultInstance {
+ return defaultPBMessageOptionsInstance;
+}
+- (NSArray*) uninterpretedOptionList {
+ return mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ id value = [mutableUninterpretedOptionList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (!self.extensionsAreInitialized) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasMessageSetWireFormat) {
+ [output writeBool:1 value:self.messageSetWireFormat];
+ }
+ if (self.hasNoStandardDescriptorAccessor) {
+ [output writeBool:2 value:self.noStandardDescriptorAccessor];
+ }
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ [output writeMessage:999 value:element];
+ }
+ [self writeExtensionsToCodedOutputStream:output
+ from:1000
+ to:536870912];
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasMessageSetWireFormat) {
+ size += computeBoolSize(1, self.messageSetWireFormat);
+ }
+ if (self.hasNoStandardDescriptorAccessor) {
+ size += computeBoolSize(2, self.noStandardDescriptorAccessor);
+ }
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ size += computeMessageSize(999, element);
+ }
+ size += [self extensionsSerializedSize];
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBMessageOptions*) parseFromData:(NSData*) data {
+ return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromData:data] build];
+}
++ (PBMessageOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBMessageOptions*) parseFromInputStream:(NSInputStream*) input {
+ return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromInputStream:input] build];
+}
++ (PBMessageOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBMessageOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromCodedInputStream:input] build];
+}
++ (PBMessageOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBMessageOptions*)[[[PBMessageOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBMessageOptions_Builder*) builder {
+ return [[[PBMessageOptions_Builder alloc] init] autorelease];
+}
++ (PBMessageOptions_Builder*) builderWithPrototype:(PBMessageOptions*) prototype {
+ return [[PBMessageOptions builder] mergeFrom:prototype];
+}
+- (PBMessageOptions_Builder*) builder {
+ return [PBMessageOptions builder];
+}
+@end
+
+@interface PBMessageOptions_Builder()
+@property (retain) PBMessageOptions* result;
+@end
+
+@implementation PBMessageOptions_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBMessageOptions alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBExtendableMessage*) internalGetResult {
+ return result;
+}
+- (PBMessageOptions_Builder*) clear {
+ self.result = [[[PBMessageOptions alloc] init] autorelease];
+ return self;
+}
+- (PBMessageOptions_Builder*) clone {
+ return [PBMessageOptions builderWithPrototype:result];
+}
+- (PBMessageOptions*) defaultInstance {
+ return [PBMessageOptions defaultInstance];
+}
+- (PBMessageOptions*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBMessageOptions*) buildPartial {
+ PBMessageOptions* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBMessageOptions_Builder*) mergeFrom:(PBMessageOptions*) other {
+ if (other == [PBMessageOptions defaultInstance]) {
+ return self;
+ }
+ if (other.hasMessageSetWireFormat) {
+ [self setMessageSetWireFormat:other.messageSetWireFormat];
+ }
+ if (other.hasNoStandardDescriptorAccessor) {
+ [self setNoStandardDescriptorAccessor:other.noStandardDescriptorAccessor];
+ }
+ if (other.mutableUninterpretedOptionList.count > 0) {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList];
+ }
+ [self mergeExtensionFields:other];
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBMessageOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBMessageOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setMessageSetWireFormat:[input readBool]];
+ break;
+ }
+ case 16: {
+ [self setNoStandardDescriptorAccessor:[input readBool]];
+ break;
+ }
+ case 7994: {
+ PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addUninterpretedOption:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasMessageSetWireFormat {
+ return result.hasMessageSetWireFormat;
+}
+- (BOOL) messageSetWireFormat {
+ return result.messageSetWireFormat;
+}
+- (PBMessageOptions_Builder*) setMessageSetWireFormat:(BOOL) value {
+ result.hasMessageSetWireFormat = YES;
+ result.messageSetWireFormat = value;
+ return self;
+}
+- (PBMessageOptions_Builder*) clearMessageSetWireFormat {
+ result.hasMessageSetWireFormat = NO;
+ result.messageSetWireFormat = NO;
+ return self;
+}
+- (BOOL) hasNoStandardDescriptorAccessor {
+ return result.hasNoStandardDescriptorAccessor;
+}
+- (BOOL) noStandardDescriptorAccessor {
+ return result.noStandardDescriptorAccessor;
+}
+- (PBMessageOptions_Builder*) setNoStandardDescriptorAccessor:(BOOL) value {
+ result.hasNoStandardDescriptorAccessor = YES;
+ result.noStandardDescriptorAccessor = value;
+ return self;
+}
+- (PBMessageOptions_Builder*) clearNoStandardDescriptorAccessor {
+ result.hasNoStandardDescriptorAccessor = NO;
+ result.noStandardDescriptorAccessor = NO;
+ return self;
+}
+- (NSArray*) uninterpretedOptionList {
+ if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; }
+ return result.mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ return [result uninterpretedOptionAtIndex:index];
+}
+- (PBMessageOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value {
+ [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBMessageOptions_Builder*) addAllUninterpretedOption:(NSArray*) values {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:values];
+ return self;
+}
+- (PBMessageOptions_Builder*) clearUninterpretedOptionList {
+ result.mutableUninterpretedOptionList = nil;
+ return self;
+}
+- (PBMessageOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObject:value];
+ return self;
+}
+@end
+
+@interface PBFieldOptions ()
+@property PBFieldOptions_CType ctype;
+@property BOOL packed;
+@property BOOL deprecated;
+@property (retain) NSString* experimentalMapKey;
+@property (retain) NSMutableArray* mutableUninterpretedOptionList;
+@end
+
+@implementation PBFieldOptions
+
+- (BOOL) hasCtype {
+ return !!hasCtype_;
+}
+- (void) setHasCtype:(BOOL) value {
+ hasCtype_ = !!value;
+}
+@synthesize ctype;
+- (BOOL) hasPacked {
+ return !!hasPacked_;
+}
+- (void) setHasPacked:(BOOL) value {
+ hasPacked_ = !!value;
+}
+- (BOOL) packed {
+ return !!packed_;
+}
+- (void) setPacked:(BOOL) value {
+ packed_ = !!value;
+}
+- (BOOL) hasDeprecated {
+ return !!hasDeprecated_;
+}
+- (void) setHasDeprecated:(BOOL) value {
+ hasDeprecated_ = !!value;
+}
+- (BOOL) deprecated {
+ return !!deprecated_;
+}
+- (void) setDeprecated:(BOOL) value {
+ deprecated_ = !!value;
+}
+- (BOOL) hasExperimentalMapKey {
+ return !!hasExperimentalMapKey_;
+}
+- (void) setHasExperimentalMapKey:(BOOL) value {
+ hasExperimentalMapKey_ = !!value;
+}
+@synthesize experimentalMapKey;
+@synthesize mutableUninterpretedOptionList;
+- (void) dealloc {
+ self.experimentalMapKey = nil;
+ self.mutableUninterpretedOptionList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.ctype = PBFieldOptions_CTypeCord;
+ self.packed = NO;
+ self.deprecated = NO;
+ self.experimentalMapKey = @"";
+ }
+ return self;
+}
+static PBFieldOptions* defaultPBFieldOptionsInstance = nil;
++ (void) initialize {
+ if (self == [PBFieldOptions class]) {
+ defaultPBFieldOptionsInstance = [[PBFieldOptions alloc] init];
+ }
+}
++ (PBFieldOptions*) defaultInstance {
+ return defaultPBFieldOptionsInstance;
+}
+- (PBFieldOptions*) defaultInstance {
+ return defaultPBFieldOptionsInstance;
+}
+- (NSArray*) uninterpretedOptionList {
+ return mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ id value = [mutableUninterpretedOptionList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (!self.extensionsAreInitialized) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasCtype) {
+ [output writeEnum:1 value:self.ctype];
+ }
+ if (self.hasPacked) {
+ [output writeBool:2 value:self.packed];
+ }
+ if (self.hasDeprecated) {
+ [output writeBool:3 value:self.deprecated];
+ }
+ if (self.hasExperimentalMapKey) {
+ [output writeString:9 value:self.experimentalMapKey];
+ }
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ [output writeMessage:999 value:element];
+ }
+ [self writeExtensionsToCodedOutputStream:output
+ from:1000
+ to:536870912];
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasCtype) {
+ size += computeEnumSize(1, self.ctype);
+ }
+ if (self.hasPacked) {
+ size += computeBoolSize(2, self.packed);
+ }
+ if (self.hasDeprecated) {
+ size += computeBoolSize(3, self.deprecated);
+ }
+ if (self.hasExperimentalMapKey) {
+ size += computeStringSize(9, self.experimentalMapKey);
+ }
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ size += computeMessageSize(999, element);
+ }
+ size += [self extensionsSerializedSize];
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBFieldOptions*) parseFromData:(NSData*) data {
+ return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromData:data] build];
+}
++ (PBFieldOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBFieldOptions*) parseFromInputStream:(NSInputStream*) input {
+ return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromInputStream:input] build];
+}
++ (PBFieldOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFieldOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromCodedInputStream:input] build];
+}
++ (PBFieldOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBFieldOptions*)[[[PBFieldOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBFieldOptions_Builder*) builder {
+ return [[[PBFieldOptions_Builder alloc] init] autorelease];
+}
++ (PBFieldOptions_Builder*) builderWithPrototype:(PBFieldOptions*) prototype {
+ return [[PBFieldOptions builder] mergeFrom:prototype];
+}
+- (PBFieldOptions_Builder*) builder {
+ return [PBFieldOptions builder];
+}
+@end
+
+BOOL PBFieldOptions_CTypeIsValidValue(PBFieldOptions_CType value) {
+ switch (value) {
+ case PBFieldOptions_CTypeCord:
+ case PBFieldOptions_CTypeStringPiece:
+ return YES;
+ default:
+ return NO;
+ }
+}
+@interface PBFieldOptions_Builder()
+@property (retain) PBFieldOptions* result;
+@end
+
+@implementation PBFieldOptions_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBFieldOptions alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBExtendableMessage*) internalGetResult {
+ return result;
+}
+- (PBFieldOptions_Builder*) clear {
+ self.result = [[[PBFieldOptions alloc] init] autorelease];
+ return self;
+}
+- (PBFieldOptions_Builder*) clone {
+ return [PBFieldOptions builderWithPrototype:result];
+}
+- (PBFieldOptions*) defaultInstance {
+ return [PBFieldOptions defaultInstance];
+}
+- (PBFieldOptions*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBFieldOptions*) buildPartial {
+ PBFieldOptions* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBFieldOptions_Builder*) mergeFrom:(PBFieldOptions*) other {
+ if (other == [PBFieldOptions defaultInstance]) {
+ return self;
+ }
+ if (other.hasCtype) {
+ [self setCtype:other.ctype];
+ }
+ if (other.hasPacked) {
+ [self setPacked:other.packed];
+ }
+ if (other.hasDeprecated) {
+ [self setDeprecated:other.deprecated];
+ }
+ if (other.hasExperimentalMapKey) {
+ [self setExperimentalMapKey:other.experimentalMapKey];
+ }
+ if (other.mutableUninterpretedOptionList.count > 0) {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList];
+ }
+ [self mergeExtensionFields:other];
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBFieldOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBFieldOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ int32_t value = [input readEnum];
+ if (PBFieldOptions_CTypeIsValidValue(value)) {
+ [self setCtype:value];
+ } else {
+ [unknownFields mergeVarintField:1 value:value];
+ }
+ break;
+ }
+ case 16: {
+ [self setPacked:[input readBool]];
+ break;
+ }
+ case 24: {
+ [self setDeprecated:[input readBool]];
+ break;
+ }
+ case 74: {
+ [self setExperimentalMapKey:[input readString]];
+ break;
+ }
+ case 7994: {
+ PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addUninterpretedOption:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasCtype {
+ return result.hasCtype;
+}
+- (PBFieldOptions_CType) ctype {
+ return result.ctype;
+}
+- (PBFieldOptions_Builder*) setCtype:(PBFieldOptions_CType) value {
+ result.hasCtype = YES;
+ result.ctype = value;
+ return self;
+}
+- (PBFieldOptions_Builder*) clearCtype {
+ result.hasCtype = NO;
+ result.ctype = PBFieldOptions_CTypeCord;
+ return self;
+}
+- (BOOL) hasPacked {
+ return result.hasPacked;
+}
+- (BOOL) packed {
+ return result.packed;
+}
+- (PBFieldOptions_Builder*) setPacked:(BOOL) value {
+ result.hasPacked = YES;
+ result.packed = value;
+ return self;
+}
+- (PBFieldOptions_Builder*) clearPacked {
+ result.hasPacked = NO;
+ result.packed = NO;
+ return self;
+}
+- (BOOL) hasDeprecated {
+ return result.hasDeprecated;
+}
+- (BOOL) deprecated {
+ return result.deprecated;
+}
+- (PBFieldOptions_Builder*) setDeprecated:(BOOL) value {
+ result.hasDeprecated = YES;
+ result.deprecated = value;
+ return self;
+}
+- (PBFieldOptions_Builder*) clearDeprecated {
+ result.hasDeprecated = NO;
+ result.deprecated = NO;
+ return self;
+}
+- (BOOL) hasExperimentalMapKey {
+ return result.hasExperimentalMapKey;
+}
+- (NSString*) experimentalMapKey {
+ return result.experimentalMapKey;
+}
+- (PBFieldOptions_Builder*) setExperimentalMapKey:(NSString*) value {
+ result.hasExperimentalMapKey = YES;
+ result.experimentalMapKey = value;
+ return self;
+}
+- (PBFieldOptions_Builder*) clearExperimentalMapKey {
+ result.hasExperimentalMapKey = NO;
+ result.experimentalMapKey = @"";
+ return self;
+}
+- (NSArray*) uninterpretedOptionList {
+ if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; }
+ return result.mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ return [result uninterpretedOptionAtIndex:index];
+}
+- (PBFieldOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value {
+ [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBFieldOptions_Builder*) addAllUninterpretedOption:(NSArray*) values {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:values];
+ return self;
+}
+- (PBFieldOptions_Builder*) clearUninterpretedOptionList {
+ result.mutableUninterpretedOptionList = nil;
+ return self;
+}
+- (PBFieldOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObject:value];
+ return self;
+}
+@end
+
+@interface PBEnumOptions ()
+@property (retain) NSMutableArray* mutableUninterpretedOptionList;
+@end
+
+@implementation PBEnumOptions
+
+@synthesize mutableUninterpretedOptionList;
+- (void) dealloc {
+ self.mutableUninterpretedOptionList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ }
+ return self;
+}
+static PBEnumOptions* defaultPBEnumOptionsInstance = nil;
++ (void) initialize {
+ if (self == [PBEnumOptions class]) {
+ defaultPBEnumOptionsInstance = [[PBEnumOptions alloc] init];
+ }
+}
++ (PBEnumOptions*) defaultInstance {
+ return defaultPBEnumOptionsInstance;
+}
+- (PBEnumOptions*) defaultInstance {
+ return defaultPBEnumOptionsInstance;
+}
+- (NSArray*) uninterpretedOptionList {
+ return mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ id value = [mutableUninterpretedOptionList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (!self.extensionsAreInitialized) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ [output writeMessage:999 value:element];
+ }
+ [self writeExtensionsToCodedOutputStream:output
+ from:1000
+ to:536870912];
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ size += computeMessageSize(999, element);
+ }
+ size += [self extensionsSerializedSize];
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBEnumOptions*) parseFromData:(NSData*) data {
+ return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromData:data] build];
+}
++ (PBEnumOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumOptions*) parseFromInputStream:(NSInputStream*) input {
+ return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromInputStream:input] build];
+}
++ (PBEnumOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromCodedInputStream:input] build];
+}
++ (PBEnumOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumOptions*)[[[PBEnumOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumOptions_Builder*) builder {
+ return [[[PBEnumOptions_Builder alloc] init] autorelease];
+}
++ (PBEnumOptions_Builder*) builderWithPrototype:(PBEnumOptions*) prototype {
+ return [[PBEnumOptions builder] mergeFrom:prototype];
+}
+- (PBEnumOptions_Builder*) builder {
+ return [PBEnumOptions builder];
+}
+@end
+
+@interface PBEnumOptions_Builder()
+@property (retain) PBEnumOptions* result;
+@end
+
+@implementation PBEnumOptions_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBEnumOptions alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBExtendableMessage*) internalGetResult {
+ return result;
+}
+- (PBEnumOptions_Builder*) clear {
+ self.result = [[[PBEnumOptions alloc] init] autorelease];
+ return self;
+}
+- (PBEnumOptions_Builder*) clone {
+ return [PBEnumOptions builderWithPrototype:result];
+}
+- (PBEnumOptions*) defaultInstance {
+ return [PBEnumOptions defaultInstance];
+}
+- (PBEnumOptions*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBEnumOptions*) buildPartial {
+ PBEnumOptions* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBEnumOptions_Builder*) mergeFrom:(PBEnumOptions*) other {
+ if (other == [PBEnumOptions defaultInstance]) {
+ return self;
+ }
+ if (other.mutableUninterpretedOptionList.count > 0) {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList];
+ }
+ [self mergeExtensionFields:other];
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBEnumOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBEnumOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 7994: {
+ PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addUninterpretedOption:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) uninterpretedOptionList {
+ if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; }
+ return result.mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ return [result uninterpretedOptionAtIndex:index];
+}
+- (PBEnumOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value {
+ [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBEnumOptions_Builder*) addAllUninterpretedOption:(NSArray*) values {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:values];
+ return self;
+}
+- (PBEnumOptions_Builder*) clearUninterpretedOptionList {
+ result.mutableUninterpretedOptionList = nil;
+ return self;
+}
+- (PBEnumOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObject:value];
+ return self;
+}
+@end
+
+@interface PBEnumValueOptions ()
+@property (retain) NSMutableArray* mutableUninterpretedOptionList;
+@end
+
+@implementation PBEnumValueOptions
+
+@synthesize mutableUninterpretedOptionList;
+- (void) dealloc {
+ self.mutableUninterpretedOptionList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ }
+ return self;
+}
+static PBEnumValueOptions* defaultPBEnumValueOptionsInstance = nil;
++ (void) initialize {
+ if (self == [PBEnumValueOptions class]) {
+ defaultPBEnumValueOptionsInstance = [[PBEnumValueOptions alloc] init];
+ }
+}
++ (PBEnumValueOptions*) defaultInstance {
+ return defaultPBEnumValueOptionsInstance;
+}
+- (PBEnumValueOptions*) defaultInstance {
+ return defaultPBEnumValueOptionsInstance;
+}
+- (NSArray*) uninterpretedOptionList {
+ return mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ id value = [mutableUninterpretedOptionList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (!self.extensionsAreInitialized) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ [output writeMessage:999 value:element];
+ }
+ [self writeExtensionsToCodedOutputStream:output
+ from:1000
+ to:536870912];
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ size += computeMessageSize(999, element);
+ }
+ size += [self extensionsSerializedSize];
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBEnumValueOptions*) parseFromData:(NSData*) data {
+ return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromData:data] build];
+}
++ (PBEnumValueOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumValueOptions*) parseFromInputStream:(NSInputStream*) input {
+ return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromInputStream:input] build];
+}
++ (PBEnumValueOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumValueOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromCodedInputStream:input] build];
+}
++ (PBEnumValueOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBEnumValueOptions*)[[[PBEnumValueOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBEnumValueOptions_Builder*) builder {
+ return [[[PBEnumValueOptions_Builder alloc] init] autorelease];
+}
++ (PBEnumValueOptions_Builder*) builderWithPrototype:(PBEnumValueOptions*) prototype {
+ return [[PBEnumValueOptions builder] mergeFrom:prototype];
+}
+- (PBEnumValueOptions_Builder*) builder {
+ return [PBEnumValueOptions builder];
+}
+@end
+
+@interface PBEnumValueOptions_Builder()
+@property (retain) PBEnumValueOptions* result;
+@end
+
+@implementation PBEnumValueOptions_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBEnumValueOptions alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBExtendableMessage*) internalGetResult {
+ return result;
+}
+- (PBEnumValueOptions_Builder*) clear {
+ self.result = [[[PBEnumValueOptions alloc] init] autorelease];
+ return self;
+}
+- (PBEnumValueOptions_Builder*) clone {
+ return [PBEnumValueOptions builderWithPrototype:result];
+}
+- (PBEnumValueOptions*) defaultInstance {
+ return [PBEnumValueOptions defaultInstance];
+}
+- (PBEnumValueOptions*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBEnumValueOptions*) buildPartial {
+ PBEnumValueOptions* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBEnumValueOptions_Builder*) mergeFrom:(PBEnumValueOptions*) other {
+ if (other == [PBEnumValueOptions defaultInstance]) {
+ return self;
+ }
+ if (other.mutableUninterpretedOptionList.count > 0) {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList];
+ }
+ [self mergeExtensionFields:other];
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBEnumValueOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBEnumValueOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 7994: {
+ PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addUninterpretedOption:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) uninterpretedOptionList {
+ if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; }
+ return result.mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ return [result uninterpretedOptionAtIndex:index];
+}
+- (PBEnumValueOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value {
+ [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBEnumValueOptions_Builder*) addAllUninterpretedOption:(NSArray*) values {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:values];
+ return self;
+}
+- (PBEnumValueOptions_Builder*) clearUninterpretedOptionList {
+ result.mutableUninterpretedOptionList = nil;
+ return self;
+}
+- (PBEnumValueOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObject:value];
+ return self;
+}
+@end
+
+@interface PBServiceOptions ()
+@property (retain) NSMutableArray* mutableUninterpretedOptionList;
+@end
+
+@implementation PBServiceOptions
+
+@synthesize mutableUninterpretedOptionList;
+- (void) dealloc {
+ self.mutableUninterpretedOptionList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ }
+ return self;
+}
+static PBServiceOptions* defaultPBServiceOptionsInstance = nil;
++ (void) initialize {
+ if (self == [PBServiceOptions class]) {
+ defaultPBServiceOptionsInstance = [[PBServiceOptions alloc] init];
+ }
+}
++ (PBServiceOptions*) defaultInstance {
+ return defaultPBServiceOptionsInstance;
+}
+- (PBServiceOptions*) defaultInstance {
+ return defaultPBServiceOptionsInstance;
+}
+- (NSArray*) uninterpretedOptionList {
+ return mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ id value = [mutableUninterpretedOptionList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (!self.extensionsAreInitialized) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ [output writeMessage:999 value:element];
+ }
+ [self writeExtensionsToCodedOutputStream:output
+ from:1000
+ to:536870912];
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ size += computeMessageSize(999, element);
+ }
+ size += [self extensionsSerializedSize];
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBServiceOptions*) parseFromData:(NSData*) data {
+ return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromData:data] build];
+}
++ (PBServiceOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBServiceOptions*) parseFromInputStream:(NSInputStream*) input {
+ return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromInputStream:input] build];
+}
++ (PBServiceOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBServiceOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromCodedInputStream:input] build];
+}
++ (PBServiceOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBServiceOptions*)[[[PBServiceOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBServiceOptions_Builder*) builder {
+ return [[[PBServiceOptions_Builder alloc] init] autorelease];
+}
++ (PBServiceOptions_Builder*) builderWithPrototype:(PBServiceOptions*) prototype {
+ return [[PBServiceOptions builder] mergeFrom:prototype];
+}
+- (PBServiceOptions_Builder*) builder {
+ return [PBServiceOptions builder];
+}
+@end
+
+@interface PBServiceOptions_Builder()
+@property (retain) PBServiceOptions* result;
+@end
+
+@implementation PBServiceOptions_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBServiceOptions alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBExtendableMessage*) internalGetResult {
+ return result;
+}
+- (PBServiceOptions_Builder*) clear {
+ self.result = [[[PBServiceOptions alloc] init] autorelease];
+ return self;
+}
+- (PBServiceOptions_Builder*) clone {
+ return [PBServiceOptions builderWithPrototype:result];
+}
+- (PBServiceOptions*) defaultInstance {
+ return [PBServiceOptions defaultInstance];
+}
+- (PBServiceOptions*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBServiceOptions*) buildPartial {
+ PBServiceOptions* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBServiceOptions_Builder*) mergeFrom:(PBServiceOptions*) other {
+ if (other == [PBServiceOptions defaultInstance]) {
+ return self;
+ }
+ if (other.mutableUninterpretedOptionList.count > 0) {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList];
+ }
+ [self mergeExtensionFields:other];
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBServiceOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBServiceOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 7994: {
+ PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addUninterpretedOption:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) uninterpretedOptionList {
+ if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; }
+ return result.mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ return [result uninterpretedOptionAtIndex:index];
+}
+- (PBServiceOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value {
+ [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBServiceOptions_Builder*) addAllUninterpretedOption:(NSArray*) values {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:values];
+ return self;
+}
+- (PBServiceOptions_Builder*) clearUninterpretedOptionList {
+ result.mutableUninterpretedOptionList = nil;
+ return self;
+}
+- (PBServiceOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObject:value];
+ return self;
+}
+@end
+
+@interface PBMethodOptions ()
+@property (retain) NSMutableArray* mutableUninterpretedOptionList;
+@end
+
+@implementation PBMethodOptions
+
+@synthesize mutableUninterpretedOptionList;
+- (void) dealloc {
+ self.mutableUninterpretedOptionList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ }
+ return self;
+}
+static PBMethodOptions* defaultPBMethodOptionsInstance = nil;
++ (void) initialize {
+ if (self == [PBMethodOptions class]) {
+ defaultPBMethodOptionsInstance = [[PBMethodOptions alloc] init];
+ }
+}
++ (PBMethodOptions*) defaultInstance {
+ return defaultPBMethodOptionsInstance;
+}
+- (PBMethodOptions*) defaultInstance {
+ return defaultPBMethodOptionsInstance;
+}
+- (NSArray*) uninterpretedOptionList {
+ return mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ id value = [mutableUninterpretedOptionList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ if (!self.extensionsAreInitialized) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ [output writeMessage:999 value:element];
+ }
+ [self writeExtensionsToCodedOutputStream:output
+ from:1000
+ to:536870912];
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ for (PBUninterpretedOption* element in self.uninterpretedOptionList) {
+ size += computeMessageSize(999, element);
+ }
+ size += [self extensionsSerializedSize];
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBMethodOptions*) parseFromData:(NSData*) data {
+ return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromData:data] build];
+}
++ (PBMethodOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBMethodOptions*) parseFromInputStream:(NSInputStream*) input {
+ return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromInputStream:input] build];
+}
++ (PBMethodOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBMethodOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromCodedInputStream:input] build];
+}
++ (PBMethodOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBMethodOptions*)[[[PBMethodOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBMethodOptions_Builder*) builder {
+ return [[[PBMethodOptions_Builder alloc] init] autorelease];
+}
++ (PBMethodOptions_Builder*) builderWithPrototype:(PBMethodOptions*) prototype {
+ return [[PBMethodOptions builder] mergeFrom:prototype];
+}
+- (PBMethodOptions_Builder*) builder {
+ return [PBMethodOptions builder];
+}
+@end
+
+@interface PBMethodOptions_Builder()
+@property (retain) PBMethodOptions* result;
+@end
+
+@implementation PBMethodOptions_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBMethodOptions alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBExtendableMessage*) internalGetResult {
+ return result;
+}
+- (PBMethodOptions_Builder*) clear {
+ self.result = [[[PBMethodOptions alloc] init] autorelease];
+ return self;
+}
+- (PBMethodOptions_Builder*) clone {
+ return [PBMethodOptions builderWithPrototype:result];
+}
+- (PBMethodOptions*) defaultInstance {
+ return [PBMethodOptions defaultInstance];
+}
+- (PBMethodOptions*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBMethodOptions*) buildPartial {
+ PBMethodOptions* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBMethodOptions_Builder*) mergeFrom:(PBMethodOptions*) other {
+ if (other == [PBMethodOptions defaultInstance]) {
+ return self;
+ }
+ if (other.mutableUninterpretedOptionList.count > 0) {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:other.mutableUninterpretedOptionList];
+ }
+ [self mergeExtensionFields:other];
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBMethodOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBMethodOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 7994: {
+ PBUninterpretedOption_Builder* subBuilder = [PBUninterpretedOption builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addUninterpretedOption:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) uninterpretedOptionList {
+ if (result.mutableUninterpretedOptionList == nil) { return [NSArray array]; }
+ return result.mutableUninterpretedOptionList;
+}
+- (PBUninterpretedOption*) uninterpretedOptionAtIndex:(int32_t) index {
+ return [result uninterpretedOptionAtIndex:index];
+}
+- (PBMethodOptions_Builder*) replaceUninterpretedOptionAtIndex:(int32_t) index with:(PBUninterpretedOption*) value {
+ [result.mutableUninterpretedOptionList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBMethodOptions_Builder*) addAllUninterpretedOption:(NSArray*) values {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObjectsFromArray:values];
+ return self;
+}
+- (PBMethodOptions_Builder*) clearUninterpretedOptionList {
+ result.mutableUninterpretedOptionList = nil;
+ return self;
+}
+- (PBMethodOptions_Builder*) addUninterpretedOption:(PBUninterpretedOption*) value {
+ if (result.mutableUninterpretedOptionList == nil) {
+ result.mutableUninterpretedOptionList = [NSMutableArray array];
+ }
+ [result.mutableUninterpretedOptionList addObject:value];
+ return self;
+}
+@end
+
+@interface PBUninterpretedOption ()
+@property (retain) NSMutableArray* mutableNameList;
+@property (retain) NSString* identifierValue;
+@property int64_t positiveIntValue;
+@property int64_t negativeIntValue;
+@property Float64 doubleValue;
+@property (retain) NSData* stringValue;
+@end
+
+@implementation PBUninterpretedOption
+
+@synthesize mutableNameList;
+- (BOOL) hasIdentifierValue {
+ return !!hasIdentifierValue_;
+}
+- (void) setHasIdentifierValue:(BOOL) value {
+ hasIdentifierValue_ = !!value;
+}
+@synthesize identifierValue;
+- (BOOL) hasPositiveIntValue {
+ return !!hasPositiveIntValue_;
+}
+- (void) setHasPositiveIntValue:(BOOL) value {
+ hasPositiveIntValue_ = !!value;
+}
+@synthesize positiveIntValue;
+- (BOOL) hasNegativeIntValue {
+ return !!hasNegativeIntValue_;
+}
+- (void) setHasNegativeIntValue:(BOOL) value {
+ hasNegativeIntValue_ = !!value;
+}
+@synthesize negativeIntValue;
+- (BOOL) hasDoubleValue {
+ return !!hasDoubleValue_;
+}
+- (void) setHasDoubleValue:(BOOL) value {
+ hasDoubleValue_ = !!value;
+}
+@synthesize doubleValue;
+- (BOOL) hasStringValue {
+ return !!hasStringValue_;
+}
+- (void) setHasStringValue:(BOOL) value {
+ hasStringValue_ = !!value;
+}
+@synthesize stringValue;
+- (void) dealloc {
+ self.mutableNameList = nil;
+ self.identifierValue = nil;
+ self.stringValue = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.identifierValue = @"";
+ self.positiveIntValue = 0L;
+ self.negativeIntValue = 0L;
+ self.doubleValue = 0;
+ self.stringValue = [NSData data];
+ }
+ return self;
+}
+static PBUninterpretedOption* defaultPBUninterpretedOptionInstance = nil;
++ (void) initialize {
+ if (self == [PBUninterpretedOption class]) {
+ defaultPBUninterpretedOptionInstance = [[PBUninterpretedOption alloc] init];
+ }
+}
++ (PBUninterpretedOption*) defaultInstance {
+ return defaultPBUninterpretedOptionInstance;
+}
+- (PBUninterpretedOption*) defaultInstance {
+ return defaultPBUninterpretedOptionInstance;
+}
+- (NSArray*) nameList {
+ return mutableNameList;
+}
+- (PBUninterpretedOption_NamePart*) nameAtIndex:(int32_t) index {
+ id value = [mutableNameList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (PBUninterpretedOption_NamePart* element in self.nameList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (PBUninterpretedOption_NamePart* element in self.nameList) {
+ [output writeMessage:2 value:element];
+ }
+ if (self.hasIdentifierValue) {
+ [output writeString:3 value:self.identifierValue];
+ }
+ if (self.hasPositiveIntValue) {
+ [output writeUInt64:4 value:self.positiveIntValue];
+ }
+ if (self.hasNegativeIntValue) {
+ [output writeInt64:5 value:self.negativeIntValue];
+ }
+ if (self.hasDoubleValue) {
+ [output writeDouble:6 value:self.doubleValue];
+ }
+ if (self.hasStringValue) {
+ [output writeData:7 value:self.stringValue];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ for (PBUninterpretedOption_NamePart* element in self.nameList) {
+ size += computeMessageSize(2, element);
+ }
+ if (self.hasIdentifierValue) {
+ size += computeStringSize(3, self.identifierValue);
+ }
+ if (self.hasPositiveIntValue) {
+ size += computeUInt64Size(4, self.positiveIntValue);
+ }
+ if (self.hasNegativeIntValue) {
+ size += computeInt64Size(5, self.negativeIntValue);
+ }
+ if (self.hasDoubleValue) {
+ size += computeDoubleSize(6, self.doubleValue);
+ }
+ if (self.hasStringValue) {
+ size += computeDataSize(7, self.stringValue);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBUninterpretedOption*) parseFromData:(NSData*) data {
+ return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromData:data] build];
+}
++ (PBUninterpretedOption*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBUninterpretedOption*) parseFromInputStream:(NSInputStream*) input {
+ return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromInputStream:input] build];
+}
++ (PBUninterpretedOption*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBUninterpretedOption*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromCodedInputStream:input] build];
+}
++ (PBUninterpretedOption*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBUninterpretedOption*)[[[PBUninterpretedOption builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBUninterpretedOption_Builder*) builder {
+ return [[[PBUninterpretedOption_Builder alloc] init] autorelease];
+}
++ (PBUninterpretedOption_Builder*) builderWithPrototype:(PBUninterpretedOption*) prototype {
+ return [[PBUninterpretedOption builder] mergeFrom:prototype];
+}
+- (PBUninterpretedOption_Builder*) builder {
+ return [PBUninterpretedOption builder];
+}
+@end
+
+@interface PBUninterpretedOption_NamePart ()
+@property (retain) NSString* namePart;
+@property BOOL isExtension;
+@end
+
+@implementation PBUninterpretedOption_NamePart
+
+- (BOOL) hasNamePart {
+ return !!hasNamePart_;
+}
+- (void) setHasNamePart:(BOOL) value {
+ hasNamePart_ = !!value;
+}
+@synthesize namePart;
+- (BOOL) hasIsExtension {
+ return !!hasIsExtension_;
+}
+- (void) setHasIsExtension:(BOOL) value {
+ hasIsExtension_ = !!value;
+}
+- (BOOL) isExtension {
+ return !!isExtension_;
+}
+- (void) setIsExtension:(BOOL) value {
+ isExtension_ = !!value;
+}
+- (void) dealloc {
+ self.namePart = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.namePart = @"";
+ self.isExtension = NO;
+ }
+ return self;
+}
+static PBUninterpretedOption_NamePart* defaultPBUninterpretedOption_NamePartInstance = nil;
++ (void) initialize {
+ if (self == [PBUninterpretedOption_NamePart class]) {
+ defaultPBUninterpretedOption_NamePartInstance = [[PBUninterpretedOption_NamePart alloc] init];
+ }
+}
++ (PBUninterpretedOption_NamePart*) defaultInstance {
+ return defaultPBUninterpretedOption_NamePartInstance;
+}
+- (PBUninterpretedOption_NamePart*) defaultInstance {
+ return defaultPBUninterpretedOption_NamePartInstance;
+}
+- (BOOL) isInitialized {
+ if (!self.hasNamePart) {
+ return NO;
+ }
+ if (!self.hasIsExtension) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasNamePart) {
+ [output writeString:1 value:self.namePart];
+ }
+ if (self.hasIsExtension) {
+ [output writeBool:2 value:self.isExtension];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasNamePart) {
+ size += computeStringSize(1, self.namePart);
+ }
+ if (self.hasIsExtension) {
+ size += computeBoolSize(2, self.isExtension);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (PBUninterpretedOption_NamePart*) parseFromData:(NSData*) data {
+ return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromData:data] build];
+}
++ (PBUninterpretedOption_NamePart*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (PBUninterpretedOption_NamePart*) parseFromInputStream:(NSInputStream*) input {
+ return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromInputStream:input] build];
+}
++ (PBUninterpretedOption_NamePart*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBUninterpretedOption_NamePart*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromCodedInputStream:input] build];
+}
++ (PBUninterpretedOption_NamePart*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (PBUninterpretedOption_NamePart*)[[[PBUninterpretedOption_NamePart builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (PBUninterpretedOption_NamePart_Builder*) builder {
+ return [[[PBUninterpretedOption_NamePart_Builder alloc] init] autorelease];
+}
++ (PBUninterpretedOption_NamePart_Builder*) builderWithPrototype:(PBUninterpretedOption_NamePart*) prototype {
+ return [[PBUninterpretedOption_NamePart builder] mergeFrom:prototype];
+}
+- (PBUninterpretedOption_NamePart_Builder*) builder {
+ return [PBUninterpretedOption_NamePart builder];
+}
+@end
+
+@interface PBUninterpretedOption_NamePart_Builder()
+@property (retain) PBUninterpretedOption_NamePart* result;
+@end
+
+@implementation PBUninterpretedOption_NamePart_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBUninterpretedOption_NamePart alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBUninterpretedOption_NamePart_Builder*) clear {
+ self.result = [[[PBUninterpretedOption_NamePart alloc] init] autorelease];
+ return self;
+}
+- (PBUninterpretedOption_NamePart_Builder*) clone {
+ return [PBUninterpretedOption_NamePart builderWithPrototype:result];
+}
+- (PBUninterpretedOption_NamePart*) defaultInstance {
+ return [PBUninterpretedOption_NamePart defaultInstance];
+}
+- (PBUninterpretedOption_NamePart*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBUninterpretedOption_NamePart*) buildPartial {
+ PBUninterpretedOption_NamePart* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBUninterpretedOption_NamePart_Builder*) mergeFrom:(PBUninterpretedOption_NamePart*) other {
+ if (other == [PBUninterpretedOption_NamePart defaultInstance]) {
+ return self;
+ }
+ if (other.hasNamePart) {
+ [self setNamePart:other.namePart];
+ }
+ if (other.hasIsExtension) {
+ [self setIsExtension:other.isExtension];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBUninterpretedOption_NamePart_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBUninterpretedOption_NamePart_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setNamePart:[input readString]];
+ break;
+ }
+ case 16: {
+ [self setIsExtension:[input readBool]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasNamePart {
+ return result.hasNamePart;
+}
+- (NSString*) namePart {
+ return result.namePart;
+}
+- (PBUninterpretedOption_NamePart_Builder*) setNamePart:(NSString*) value {
+ result.hasNamePart = YES;
+ result.namePart = value;
+ return self;
+}
+- (PBUninterpretedOption_NamePart_Builder*) clearNamePart {
+ result.hasNamePart = NO;
+ result.namePart = @"";
+ return self;
+}
+- (BOOL) hasIsExtension {
+ return result.hasIsExtension;
+}
+- (BOOL) isExtension {
+ return result.isExtension;
+}
+- (PBUninterpretedOption_NamePart_Builder*) setIsExtension:(BOOL) value {
+ result.hasIsExtension = YES;
+ result.isExtension = value;
+ return self;
+}
+- (PBUninterpretedOption_NamePart_Builder*) clearIsExtension {
+ result.hasIsExtension = NO;
+ result.isExtension = NO;
+ return self;
+}
+@end
+
+@interface PBUninterpretedOption_Builder()
+@property (retain) PBUninterpretedOption* result;
+@end
+
+@implementation PBUninterpretedOption_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[PBUninterpretedOption alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (PBUninterpretedOption_Builder*) clear {
+ self.result = [[[PBUninterpretedOption alloc] init] autorelease];
+ return self;
+}
+- (PBUninterpretedOption_Builder*) clone {
+ return [PBUninterpretedOption builderWithPrototype:result];
+}
+- (PBUninterpretedOption*) defaultInstance {
+ return [PBUninterpretedOption defaultInstance];
+}
+- (PBUninterpretedOption*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (PBUninterpretedOption*) buildPartial {
+ PBUninterpretedOption* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (PBUninterpretedOption_Builder*) mergeFrom:(PBUninterpretedOption*) other {
+ if (other == [PBUninterpretedOption defaultInstance]) {
+ return self;
+ }
+ if (other.mutableNameList.count > 0) {
+ if (result.mutableNameList == nil) {
+ result.mutableNameList = [NSMutableArray array];
+ }
+ [result.mutableNameList addObjectsFromArray:other.mutableNameList];
+ }
+ if (other.hasIdentifierValue) {
+ [self setIdentifierValue:other.identifierValue];
+ }
+ if (other.hasPositiveIntValue) {
+ [self setPositiveIntValue:other.positiveIntValue];
+ }
+ if (other.hasNegativeIntValue) {
+ [self setNegativeIntValue:other.negativeIntValue];
+ }
+ if (other.hasDoubleValue) {
+ [self setDoubleValue:other.doubleValue];
+ }
+ if (other.hasStringValue) {
+ [self setStringValue:other.stringValue];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (PBUninterpretedOption_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (PBUninterpretedOption_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 18: {
+ PBUninterpretedOption_NamePart_Builder* subBuilder = [PBUninterpretedOption_NamePart builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addName:[subBuilder buildPartial]];
+ break;
+ }
+ case 26: {
+ [self setIdentifierValue:[input readString]];
+ break;
+ }
+ case 32: {
+ [self setPositiveIntValue:[input readUInt64]];
+ break;
+ }
+ case 40: {
+ [self setNegativeIntValue:[input readInt64]];
+ break;
+ }
+ case 49: {
+ [self setDoubleValue:[input readDouble]];
+ break;
+ }
+ case 58: {
+ [self setStringValue:[input readData]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) nameList {
+ if (result.mutableNameList == nil) { return [NSArray array]; }
+ return result.mutableNameList;
+}
+- (PBUninterpretedOption_NamePart*) nameAtIndex:(int32_t) index {
+ return [result nameAtIndex:index];
+}
+- (PBUninterpretedOption_Builder*) replaceNameAtIndex:(int32_t) index with:(PBUninterpretedOption_NamePart*) value {
+ [result.mutableNameList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (PBUninterpretedOption_Builder*) addAllName:(NSArray*) values {
+ if (result.mutableNameList == nil) {
+ result.mutableNameList = [NSMutableArray array];
+ }
+ [result.mutableNameList addObjectsFromArray:values];
+ return self;
+}
+- (PBUninterpretedOption_Builder*) clearNameList {
+ result.mutableNameList = nil;
+ return self;
+}
+- (PBUninterpretedOption_Builder*) addName:(PBUninterpretedOption_NamePart*) value {
+ if (result.mutableNameList == nil) {
+ result.mutableNameList = [NSMutableArray array];
+ }
+ [result.mutableNameList addObject:value];
+ return self;
+}
+- (BOOL) hasIdentifierValue {
+ return result.hasIdentifierValue;
+}
+- (NSString*) identifierValue {
+ return result.identifierValue;
+}
+- (PBUninterpretedOption_Builder*) setIdentifierValue:(NSString*) value {
+ result.hasIdentifierValue = YES;
+ result.identifierValue = value;
+ return self;
+}
+- (PBUninterpretedOption_Builder*) clearIdentifierValue {
+ result.hasIdentifierValue = NO;
+ result.identifierValue = @"";
+ return self;
+}
+- (BOOL) hasPositiveIntValue {
+ return result.hasPositiveIntValue;
+}
+- (int64_t) positiveIntValue {
+ return result.positiveIntValue;
+}
+- (PBUninterpretedOption_Builder*) setPositiveIntValue:(int64_t) value {
+ result.hasPositiveIntValue = YES;
+ result.positiveIntValue = value;
+ return self;
+}
+- (PBUninterpretedOption_Builder*) clearPositiveIntValue {
+ result.hasPositiveIntValue = NO;
+ result.positiveIntValue = 0L;
+ return self;
+}
+- (BOOL) hasNegativeIntValue {
+ return result.hasNegativeIntValue;
+}
+- (int64_t) negativeIntValue {
+ return result.negativeIntValue;
+}
+- (PBUninterpretedOption_Builder*) setNegativeIntValue:(int64_t) value {
+ result.hasNegativeIntValue = YES;
+ result.negativeIntValue = value;
+ return self;
+}
+- (PBUninterpretedOption_Builder*) clearNegativeIntValue {
+ result.hasNegativeIntValue = NO;
+ result.negativeIntValue = 0L;
+ return self;
+}
+- (BOOL) hasDoubleValue {
+ return result.hasDoubleValue;
+}
+- (Float64) doubleValue {
+ return result.doubleValue;
+}
+- (PBUninterpretedOption_Builder*) setDoubleValue:(Float64) value {
+ result.hasDoubleValue = YES;
+ result.doubleValue = value;
+ return self;
+}
+- (PBUninterpretedOption_Builder*) clearDoubleValue {
+ result.hasDoubleValue = NO;
+ result.doubleValue = 0;
+ return self;
+}
+- (BOOL) hasStringValue {
+ return result.hasStringValue;
+}
+- (NSData*) stringValue {
+ return result.stringValue;
+}
+- (PBUninterpretedOption_Builder*) setStringValue:(NSData*) value {
+ result.hasStringValue = YES;
+ result.stringValue = value;
+ return self;
+}
+- (PBUninterpretedOption_Builder*) clearStringValue {
+ result.hasStringValue = NO;
+ result.stringValue = [NSData data];
+ return self;
+}
+@end
+
diff --git a/proto/Mumble.pb.h b/proto/Mumble.pb.h
new file mode 100644
index 0000000..1c96eb9
--- /dev/null
+++ b/proto/Mumble.pb.h
@@ -0,0 +1,2774 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+#import "ProtocolBuffers.h"
+
+#import "ObjectivecDescriptor.pb.h"
+
+@class MPACL;
+@class MPACL_Builder;
+@class MPACL_ChanACL;
+@class MPACL_ChanACL_Builder;
+@class MPACL_ChanGroup;
+@class MPACL_ChanGroup_Builder;
+@class MPAuthenticate;
+@class MPAuthenticate_Builder;
+@class MPBanList;
+@class MPBanList_BanEntry;
+@class MPBanList_BanEntry_Builder;
+@class MPBanList_Builder;
+@class MPChannelRemove;
+@class MPChannelRemove_Builder;
+@class MPChannelState;
+@class MPChannelState_Builder;
+@class MPCodecVersion;
+@class MPCodecVersion_Builder;
+@class MPContextAction;
+@class MPContextActionAdd;
+@class MPContextActionAdd_Builder;
+@class MPContextAction_Builder;
+@class MPCryptSetup;
+@class MPCryptSetup_Builder;
+@class MPPermissionDenied;
+@class MPPermissionDenied_Builder;
+@class MPPermissionQuery;
+@class MPPermissionQuery_Builder;
+@class MPPing;
+@class MPPing_Builder;
+@class MPQueryUsers;
+@class MPQueryUsers_Builder;
+@class MPReject;
+@class MPReject_Builder;
+@class MPRequestBlob;
+@class MPRequestBlob_Builder;
+@class MPServerConfig;
+@class MPServerConfig_Builder;
+@class MPServerSync;
+@class MPServerSync_Builder;
+@class MPTextMessage;
+@class MPTextMessage_Builder;
+@class MPUDPTunnel;
+@class MPUDPTunnel_Builder;
+@class MPUserList;
+@class MPUserList_Builder;
+@class MPUserList_User;
+@class MPUserList_User_Builder;
+@class MPUserRemove;
+@class MPUserRemove_Builder;
+@class MPUserState;
+@class MPUserState_Builder;
+@class MPUserStats;
+@class MPUserStats_Builder;
+@class MPUserStats_Stats;
+@class MPUserStats_Stats_Builder;
+@class MPVersion;
+@class MPVersion_Builder;
+@class MPVoiceTarget;
+@class MPVoiceTarget_Builder;
+@class MPVoiceTarget_Target;
+@class MPVoiceTarget_Target_Builder;
+@class ObjectiveCFileOptions;
+@class ObjectiveCFileOptions_Builder;
+@class PBDescriptorProto;
+@class PBDescriptorProto_Builder;
+@class PBDescriptorProto_ExtensionRange;
+@class PBDescriptorProto_ExtensionRange_Builder;
+@class PBEnumDescriptorProto;
+@class PBEnumDescriptorProto_Builder;
+@class PBEnumOptions;
+@class PBEnumOptions_Builder;
+@class PBEnumValueDescriptorProto;
+@class PBEnumValueDescriptorProto_Builder;
+@class PBEnumValueOptions;
+@class PBEnumValueOptions_Builder;
+@class PBFieldDescriptorProto;
+@class PBFieldDescriptorProto_Builder;
+@class PBFieldOptions;
+@class PBFieldOptions_Builder;
+@class PBFileDescriptorProto;
+@class PBFileDescriptorProto_Builder;
+@class PBFileDescriptorSet;
+@class PBFileDescriptorSet_Builder;
+@class PBFileOptions;
+@class PBFileOptions_Builder;
+@class PBMessageOptions;
+@class PBMessageOptions_Builder;
+@class PBMethodDescriptorProto;
+@class PBMethodDescriptorProto_Builder;
+@class PBMethodOptions;
+@class PBMethodOptions_Builder;
+@class PBServiceDescriptorProto;
+@class PBServiceDescriptorProto_Builder;
+@class PBServiceOptions;
+@class PBServiceOptions_Builder;
+@class PBUninterpretedOption;
+@class PBUninterpretedOption_Builder;
+@class PBUninterpretedOption_NamePart;
+@class PBUninterpretedOption_NamePart_Builder;
+typedef enum {
+ MPReject_RejectTypeNone = 0,
+ MPReject_RejectTypeWrongVersion = 1,
+ MPReject_RejectTypeInvalidUsername = 2,
+ MPReject_RejectTypeWrongUserPw = 3,
+ MPReject_RejectTypeWrongServerPw = 4,
+ MPReject_RejectTypeUsernameInUse = 5,
+ MPReject_RejectTypeServerFull = 6,
+ MPReject_RejectTypeNoCertificate = 7,
+} MPReject_RejectType;
+
+BOOL MPReject_RejectTypeIsValidValue(MPReject_RejectType value);
+
+typedef enum {
+ MPPermissionDenied_DenyTypeText = 0,
+ MPPermissionDenied_DenyTypePermission = 1,
+ MPPermissionDenied_DenyTypeSuperUser = 2,
+ MPPermissionDenied_DenyTypeChannelName = 3,
+ MPPermissionDenied_DenyTypeTextTooLong = 4,
+ MPPermissionDenied_DenyTypeH9K = 5,
+ MPPermissionDenied_DenyTypeTemporaryChannel = 6,
+ MPPermissionDenied_DenyTypeMissingCertificate = 7,
+ MPPermissionDenied_DenyTypeUserName = 8,
+ MPPermissionDenied_DenyTypeChannelFull = 9,
+} MPPermissionDenied_DenyType;
+
+BOOL MPPermissionDenied_DenyTypeIsValidValue(MPPermissionDenied_DenyType value);
+
+typedef enum {
+ MPContextActionAdd_ContextServer = 1,
+ MPContextActionAdd_ContextChannel = 2,
+ MPContextActionAdd_ContextUser = 4,
+} MPContextActionAdd_Context;
+
+BOOL MPContextActionAdd_ContextIsValidValue(MPContextActionAdd_Context value);
+
+
+@interface MPMumbleRoot : NSObject {
+}
++ (PBExtensionRegistry*) extensionRegistry;
++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry;
+@end
+
+@interface MPVersion : PBGeneratedMessage {
+@private
+ BOOL hasRelease_:1;
+ BOOL hasOs_:1;
+ BOOL hasOsVersion_:1;
+ BOOL hasVersion_:1;
+ NSString* release;
+ NSString* os;
+ NSString* osVersion;
+ int32_t version;
+}
+- (BOOL) hasVersion;
+- (BOOL) hasRelease;
+- (BOOL) hasOs;
+- (BOOL) hasOsVersion;
+@property (readonly) int32_t version;
+@property (readonly, retain) NSString* release;
+@property (readonly, retain) NSString* os;
+@property (readonly, retain) NSString* osVersion;
+
++ (MPVersion*) defaultInstance;
+- (MPVersion*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPVersion_Builder*) builder;
++ (MPVersion_Builder*) builder;
++ (MPVersion_Builder*) builderWithPrototype:(MPVersion*) prototype;
+
++ (MPVersion*) parseFromData:(NSData*) data;
++ (MPVersion*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPVersion*) parseFromInputStream:(NSInputStream*) input;
++ (MPVersion*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPVersion_Builder : PBGeneratedMessage_Builder {
+@private
+ MPVersion* result;
+}
+
+- (MPVersion*) defaultInstance;
+
+- (MPVersion_Builder*) clear;
+- (MPVersion_Builder*) clone;
+
+- (MPVersion*) build;
+- (MPVersion*) buildPartial;
+
+- (MPVersion_Builder*) mergeFrom:(MPVersion*) other;
+- (MPVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasVersion;
+- (int32_t) version;
+- (MPVersion_Builder*) setVersion:(int32_t) value;
+- (MPVersion_Builder*) clearVersion;
+
+- (BOOL) hasRelease;
+- (NSString*) release;
+- (MPVersion_Builder*) setRelease:(NSString*) value;
+- (MPVersion_Builder*) clearRelease;
+
+- (BOOL) hasOs;
+- (NSString*) os;
+- (MPVersion_Builder*) setOs:(NSString*) value;
+- (MPVersion_Builder*) clearOs;
+
+- (BOOL) hasOsVersion;
+- (NSString*) osVersion;
+- (MPVersion_Builder*) setOsVersion:(NSString*) value;
+- (MPVersion_Builder*) clearOsVersion;
+@end
+
+@interface MPUDPTunnel : PBGeneratedMessage {
+@private
+ BOOL hasPacket_:1;
+ NSData* packet;
+}
+- (BOOL) hasPacket;
+@property (readonly, retain) NSData* packet;
+
++ (MPUDPTunnel*) defaultInstance;
+- (MPUDPTunnel*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPUDPTunnel_Builder*) builder;
++ (MPUDPTunnel_Builder*) builder;
++ (MPUDPTunnel_Builder*) builderWithPrototype:(MPUDPTunnel*) prototype;
+
++ (MPUDPTunnel*) parseFromData:(NSData*) data;
++ (MPUDPTunnel*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUDPTunnel*) parseFromInputStream:(NSInputStream*) input;
++ (MPUDPTunnel*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUDPTunnel*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPUDPTunnel*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPUDPTunnel_Builder : PBGeneratedMessage_Builder {
+@private
+ MPUDPTunnel* result;
+}
+
+- (MPUDPTunnel*) defaultInstance;
+
+- (MPUDPTunnel_Builder*) clear;
+- (MPUDPTunnel_Builder*) clone;
+
+- (MPUDPTunnel*) build;
+- (MPUDPTunnel*) buildPartial;
+
+- (MPUDPTunnel_Builder*) mergeFrom:(MPUDPTunnel*) other;
+- (MPUDPTunnel_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPUDPTunnel_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasPacket;
+- (NSData*) packet;
+- (MPUDPTunnel_Builder*) setPacket:(NSData*) value;
+- (MPUDPTunnel_Builder*) clearPacket;
+@end
+
+@interface MPAuthenticate : PBGeneratedMessage {
+@private
+ BOOL hasUsername_:1;
+ BOOL hasPassword_:1;
+ NSString* username;
+ NSString* password;
+ NSMutableArray* mutableCeltVersionsList;
+ NSMutableArray* mutableTokensList;
+}
+- (BOOL) hasUsername;
+- (BOOL) hasPassword;
+@property (readonly, retain) NSString* username;
+@property (readonly, retain) NSString* password;
+- (NSArray*) tokensList;
+- (NSString*) tokensAtIndex:(int32_t) index;
+- (NSArray*) celtVersionsList;
+- (int32_t) celtVersionsAtIndex:(int32_t) index;
+
++ (MPAuthenticate*) defaultInstance;
+- (MPAuthenticate*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPAuthenticate_Builder*) builder;
++ (MPAuthenticate_Builder*) builder;
++ (MPAuthenticate_Builder*) builderWithPrototype:(MPAuthenticate*) prototype;
+
++ (MPAuthenticate*) parseFromData:(NSData*) data;
++ (MPAuthenticate*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPAuthenticate*) parseFromInputStream:(NSInputStream*) input;
++ (MPAuthenticate*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPAuthenticate*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPAuthenticate*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPAuthenticate_Builder : PBGeneratedMessage_Builder {
+@private
+ MPAuthenticate* result;
+}
+
+- (MPAuthenticate*) defaultInstance;
+
+- (MPAuthenticate_Builder*) clear;
+- (MPAuthenticate_Builder*) clone;
+
+- (MPAuthenticate*) build;
+- (MPAuthenticate*) buildPartial;
+
+- (MPAuthenticate_Builder*) mergeFrom:(MPAuthenticate*) other;
+- (MPAuthenticate_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPAuthenticate_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasUsername;
+- (NSString*) username;
+- (MPAuthenticate_Builder*) setUsername:(NSString*) value;
+- (MPAuthenticate_Builder*) clearUsername;
+
+- (BOOL) hasPassword;
+- (NSString*) password;
+- (MPAuthenticate_Builder*) setPassword:(NSString*) value;
+- (MPAuthenticate_Builder*) clearPassword;
+
+- (NSArray*) tokensList;
+- (NSString*) tokensAtIndex:(int32_t) index;
+- (MPAuthenticate_Builder*) replaceTokensAtIndex:(int32_t) index with:(NSString*) value;
+- (MPAuthenticate_Builder*) addTokens:(NSString*) value;
+- (MPAuthenticate_Builder*) addAllTokens:(NSArray*) values;
+- (MPAuthenticate_Builder*) clearTokensList;
+
+- (NSArray*) celtVersionsList;
+- (int32_t) celtVersionsAtIndex:(int32_t) index;
+- (MPAuthenticate_Builder*) replaceCeltVersionsAtIndex:(int32_t) index with:(int32_t) value;
+- (MPAuthenticate_Builder*) addCeltVersions:(int32_t) value;
+- (MPAuthenticate_Builder*) addAllCeltVersions:(NSArray*) values;
+- (MPAuthenticate_Builder*) clearCeltVersionsList;
+@end
+
+@interface MPPing : PBGeneratedMessage {
+@private
+ BOOL hasUdpPingAvg_:1;
+ BOOL hasUdpPingVar_:1;
+ BOOL hasTcpPingAvg_:1;
+ BOOL hasTcpPingVar_:1;
+ BOOL hasTimestamp_:1;
+ BOOL hasGood_:1;
+ BOOL hasLate_:1;
+ BOOL hasLost_:1;
+ BOOL hasResync_:1;
+ BOOL hasUdpPackets_:1;
+ BOOL hasTcpPackets_:1;
+ Float32 udpPingAvg;
+ Float32 udpPingVar;
+ Float32 tcpPingAvg;
+ Float32 tcpPingVar;
+ int64_t timestamp;
+ int32_t good;
+ int32_t late;
+ int32_t lost;
+ int32_t resync;
+ int32_t udpPackets;
+ int32_t tcpPackets;
+}
+- (BOOL) hasTimestamp;
+- (BOOL) hasGood;
+- (BOOL) hasLate;
+- (BOOL) hasLost;
+- (BOOL) hasResync;
+- (BOOL) hasUdpPackets;
+- (BOOL) hasTcpPackets;
+- (BOOL) hasUdpPingAvg;
+- (BOOL) hasUdpPingVar;
+- (BOOL) hasTcpPingAvg;
+- (BOOL) hasTcpPingVar;
+@property (readonly) int64_t timestamp;
+@property (readonly) int32_t good;
+@property (readonly) int32_t late;
+@property (readonly) int32_t lost;
+@property (readonly) int32_t resync;
+@property (readonly) int32_t udpPackets;
+@property (readonly) int32_t tcpPackets;
+@property (readonly) Float32 udpPingAvg;
+@property (readonly) Float32 udpPingVar;
+@property (readonly) Float32 tcpPingAvg;
+@property (readonly) Float32 tcpPingVar;
+
++ (MPPing*) defaultInstance;
+- (MPPing*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPPing_Builder*) builder;
++ (MPPing_Builder*) builder;
++ (MPPing_Builder*) builderWithPrototype:(MPPing*) prototype;
+
++ (MPPing*) parseFromData:(NSData*) data;
++ (MPPing*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPPing*) parseFromInputStream:(NSInputStream*) input;
++ (MPPing*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPPing*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPPing*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPPing_Builder : PBGeneratedMessage_Builder {
+@private
+ MPPing* result;
+}
+
+- (MPPing*) defaultInstance;
+
+- (MPPing_Builder*) clear;
+- (MPPing_Builder*) clone;
+
+- (MPPing*) build;
+- (MPPing*) buildPartial;
+
+- (MPPing_Builder*) mergeFrom:(MPPing*) other;
+- (MPPing_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPPing_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasTimestamp;
+- (int64_t) timestamp;
+- (MPPing_Builder*) setTimestamp:(int64_t) value;
+- (MPPing_Builder*) clearTimestamp;
+
+- (BOOL) hasGood;
+- (int32_t) good;
+- (MPPing_Builder*) setGood:(int32_t) value;
+- (MPPing_Builder*) clearGood;
+
+- (BOOL) hasLate;
+- (int32_t) late;
+- (MPPing_Builder*) setLate:(int32_t) value;
+- (MPPing_Builder*) clearLate;
+
+- (BOOL) hasLost;
+- (int32_t) lost;
+- (MPPing_Builder*) setLost:(int32_t) value;
+- (MPPing_Builder*) clearLost;
+
+- (BOOL) hasResync;
+- (int32_t) resync;
+- (MPPing_Builder*) setResync:(int32_t) value;
+- (MPPing_Builder*) clearResync;
+
+- (BOOL) hasUdpPackets;
+- (int32_t) udpPackets;
+- (MPPing_Builder*) setUdpPackets:(int32_t) value;
+- (MPPing_Builder*) clearUdpPackets;
+
+- (BOOL) hasTcpPackets;
+- (int32_t) tcpPackets;
+- (MPPing_Builder*) setTcpPackets:(int32_t) value;
+- (MPPing_Builder*) clearTcpPackets;
+
+- (BOOL) hasUdpPingAvg;
+- (Float32) udpPingAvg;
+- (MPPing_Builder*) setUdpPingAvg:(Float32) value;
+- (MPPing_Builder*) clearUdpPingAvg;
+
+- (BOOL) hasUdpPingVar;
+- (Float32) udpPingVar;
+- (MPPing_Builder*) setUdpPingVar:(Float32) value;
+- (MPPing_Builder*) clearUdpPingVar;
+
+- (BOOL) hasTcpPingAvg;
+- (Float32) tcpPingAvg;
+- (MPPing_Builder*) setTcpPingAvg:(Float32) value;
+- (MPPing_Builder*) clearTcpPingAvg;
+
+- (BOOL) hasTcpPingVar;
+- (Float32) tcpPingVar;
+- (MPPing_Builder*) setTcpPingVar:(Float32) value;
+- (MPPing_Builder*) clearTcpPingVar;
+@end
+
+@interface MPReject : PBGeneratedMessage {
+@private
+ BOOL hasReason_:1;
+ BOOL hasType_:1;
+ NSString* reason;
+ MPReject_RejectType type;
+}
+- (BOOL) hasType;
+- (BOOL) hasReason;
+@property (readonly) MPReject_RejectType type;
+@property (readonly, retain) NSString* reason;
+
++ (MPReject*) defaultInstance;
+- (MPReject*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPReject_Builder*) builder;
++ (MPReject_Builder*) builder;
++ (MPReject_Builder*) builderWithPrototype:(MPReject*) prototype;
+
++ (MPReject*) parseFromData:(NSData*) data;
++ (MPReject*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPReject*) parseFromInputStream:(NSInputStream*) input;
++ (MPReject*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPReject*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPReject*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPReject_Builder : PBGeneratedMessage_Builder {
+@private
+ MPReject* result;
+}
+
+- (MPReject*) defaultInstance;
+
+- (MPReject_Builder*) clear;
+- (MPReject_Builder*) clone;
+
+- (MPReject*) build;
+- (MPReject*) buildPartial;
+
+- (MPReject_Builder*) mergeFrom:(MPReject*) other;
+- (MPReject_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPReject_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasType;
+- (MPReject_RejectType) type;
+- (MPReject_Builder*) setType:(MPReject_RejectType) value;
+- (MPReject_Builder*) clearType;
+
+- (BOOL) hasReason;
+- (NSString*) reason;
+- (MPReject_Builder*) setReason:(NSString*) value;
+- (MPReject_Builder*) clearReason;
+@end
+
+@interface MPServerConfig : PBGeneratedMessage {
+@private
+ BOOL hasAllowHtml_:1;
+ BOOL hasWelcomeText_:1;
+ BOOL hasMaxBandwidth_:1;
+ BOOL hasMessageLength_:1;
+ BOOL hasImageMessageLength_:1;
+ BOOL allowHtml_:1;
+ NSString* welcomeText;
+ int32_t maxBandwidth;
+ int32_t messageLength;
+ int32_t imageMessageLength;
+}
+- (BOOL) hasMaxBandwidth;
+- (BOOL) hasWelcomeText;
+- (BOOL) hasAllowHtml;
+- (BOOL) hasMessageLength;
+- (BOOL) hasImageMessageLength;
+@property (readonly) int32_t maxBandwidth;
+@property (readonly, retain) NSString* welcomeText;
+- (BOOL) allowHtml;
+@property (readonly) int32_t messageLength;
+@property (readonly) int32_t imageMessageLength;
+
++ (MPServerConfig*) defaultInstance;
+- (MPServerConfig*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPServerConfig_Builder*) builder;
++ (MPServerConfig_Builder*) builder;
++ (MPServerConfig_Builder*) builderWithPrototype:(MPServerConfig*) prototype;
+
++ (MPServerConfig*) parseFromData:(NSData*) data;
++ (MPServerConfig*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPServerConfig*) parseFromInputStream:(NSInputStream*) input;
++ (MPServerConfig*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPServerConfig*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPServerConfig*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPServerConfig_Builder : PBGeneratedMessage_Builder {
+@private
+ MPServerConfig* result;
+}
+
+- (MPServerConfig*) defaultInstance;
+
+- (MPServerConfig_Builder*) clear;
+- (MPServerConfig_Builder*) clone;
+
+- (MPServerConfig*) build;
+- (MPServerConfig*) buildPartial;
+
+- (MPServerConfig_Builder*) mergeFrom:(MPServerConfig*) other;
+- (MPServerConfig_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPServerConfig_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasMaxBandwidth;
+- (int32_t) maxBandwidth;
+- (MPServerConfig_Builder*) setMaxBandwidth:(int32_t) value;
+- (MPServerConfig_Builder*) clearMaxBandwidth;
+
+- (BOOL) hasWelcomeText;
+- (NSString*) welcomeText;
+- (MPServerConfig_Builder*) setWelcomeText:(NSString*) value;
+- (MPServerConfig_Builder*) clearWelcomeText;
+
+- (BOOL) hasAllowHtml;
+- (BOOL) allowHtml;
+- (MPServerConfig_Builder*) setAllowHtml:(BOOL) value;
+- (MPServerConfig_Builder*) clearAllowHtml;
+
+- (BOOL) hasMessageLength;
+- (int32_t) messageLength;
+- (MPServerConfig_Builder*) setMessageLength:(int32_t) value;
+- (MPServerConfig_Builder*) clearMessageLength;
+
+- (BOOL) hasImageMessageLength;
+- (int32_t) imageMessageLength;
+- (MPServerConfig_Builder*) setImageMessageLength:(int32_t) value;
+- (MPServerConfig_Builder*) clearImageMessageLength;
+@end
+
+@interface MPServerSync : PBGeneratedMessage {
+@private
+ BOOL hasPermissions_:1;
+ BOOL hasWelcomeText_:1;
+ BOOL hasSession_:1;
+ BOOL hasMaxBandwidth_:1;
+ int64_t permissions;
+ NSString* welcomeText;
+ int32_t session;
+ int32_t maxBandwidth;
+}
+- (BOOL) hasSession;
+- (BOOL) hasMaxBandwidth;
+- (BOOL) hasWelcomeText;
+- (BOOL) hasPermissions;
+@property (readonly) int32_t session;
+@property (readonly) int32_t maxBandwidth;
+@property (readonly, retain) NSString* welcomeText;
+@property (readonly) int64_t permissions;
+
++ (MPServerSync*) defaultInstance;
+- (MPServerSync*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPServerSync_Builder*) builder;
++ (MPServerSync_Builder*) builder;
++ (MPServerSync_Builder*) builderWithPrototype:(MPServerSync*) prototype;
+
++ (MPServerSync*) parseFromData:(NSData*) data;
++ (MPServerSync*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPServerSync*) parseFromInputStream:(NSInputStream*) input;
++ (MPServerSync*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPServerSync*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPServerSync*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPServerSync_Builder : PBGeneratedMessage_Builder {
+@private
+ MPServerSync* result;
+}
+
+- (MPServerSync*) defaultInstance;
+
+- (MPServerSync_Builder*) clear;
+- (MPServerSync_Builder*) clone;
+
+- (MPServerSync*) build;
+- (MPServerSync*) buildPartial;
+
+- (MPServerSync_Builder*) mergeFrom:(MPServerSync*) other;
+- (MPServerSync_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPServerSync_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasSession;
+- (int32_t) session;
+- (MPServerSync_Builder*) setSession:(int32_t) value;
+- (MPServerSync_Builder*) clearSession;
+
+- (BOOL) hasMaxBandwidth;
+- (int32_t) maxBandwidth;
+- (MPServerSync_Builder*) setMaxBandwidth:(int32_t) value;
+- (MPServerSync_Builder*) clearMaxBandwidth;
+
+- (BOOL) hasWelcomeText;
+- (NSString*) welcomeText;
+- (MPServerSync_Builder*) setWelcomeText:(NSString*) value;
+- (MPServerSync_Builder*) clearWelcomeText;
+
+- (BOOL) hasPermissions;
+- (int64_t) permissions;
+- (MPServerSync_Builder*) setPermissions:(int64_t) value;
+- (MPServerSync_Builder*) clearPermissions;
+@end
+
+@interface MPChannelRemove : PBGeneratedMessage {
+@private
+ BOOL hasChannelId_:1;
+ int32_t channelId;
+}
+- (BOOL) hasChannelId;
+@property (readonly) int32_t channelId;
+
++ (MPChannelRemove*) defaultInstance;
+- (MPChannelRemove*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPChannelRemove_Builder*) builder;
++ (MPChannelRemove_Builder*) builder;
++ (MPChannelRemove_Builder*) builderWithPrototype:(MPChannelRemove*) prototype;
+
++ (MPChannelRemove*) parseFromData:(NSData*) data;
++ (MPChannelRemove*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPChannelRemove*) parseFromInputStream:(NSInputStream*) input;
++ (MPChannelRemove*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPChannelRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPChannelRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPChannelRemove_Builder : PBGeneratedMessage_Builder {
+@private
+ MPChannelRemove* result;
+}
+
+- (MPChannelRemove*) defaultInstance;
+
+- (MPChannelRemove_Builder*) clear;
+- (MPChannelRemove_Builder*) clone;
+
+- (MPChannelRemove*) build;
+- (MPChannelRemove*) buildPartial;
+
+- (MPChannelRemove_Builder*) mergeFrom:(MPChannelRemove*) other;
+- (MPChannelRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPChannelRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasChannelId;
+- (int32_t) channelId;
+- (MPChannelRemove_Builder*) setChannelId:(int32_t) value;
+- (MPChannelRemove_Builder*) clearChannelId;
+@end
+
+@interface MPChannelState : PBGeneratedMessage {
+@private
+ BOOL hasTemporary_:1;
+ BOOL hasPosition_:1;
+ BOOL hasName_:1;
+ BOOL hasDescription_:1;
+ BOOL hasDescriptionHash_:1;
+ BOOL hasChannelId_:1;
+ BOOL hasParent_:1;
+ BOOL temporary_:1;
+ int32_t position;
+ NSString* name;
+ NSString* description;
+ NSData* descriptionHash;
+ int32_t channelId;
+ int32_t parent;
+ NSMutableArray* mutableLinksList;
+ NSMutableArray* mutableLinksAddList;
+ NSMutableArray* mutableLinksRemoveList;
+}
+- (BOOL) hasChannelId;
+- (BOOL) hasParent;
+- (BOOL) hasName;
+- (BOOL) hasDescription;
+- (BOOL) hasTemporary;
+- (BOOL) hasPosition;
+- (BOOL) hasDescriptionHash;
+@property (readonly) int32_t channelId;
+@property (readonly) int32_t parent;
+@property (readonly, retain) NSString* name;
+@property (readonly, retain) NSString* description;
+- (BOOL) temporary;
+@property (readonly) int32_t position;
+@property (readonly, retain) NSData* descriptionHash;
+- (NSArray*) linksList;
+- (int32_t) linksAtIndex:(int32_t) index;
+- (NSArray*) linksAddList;
+- (int32_t) linksAddAtIndex:(int32_t) index;
+- (NSArray*) linksRemoveList;
+- (int32_t) linksRemoveAtIndex:(int32_t) index;
+
++ (MPChannelState*) defaultInstance;
+- (MPChannelState*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPChannelState_Builder*) builder;
++ (MPChannelState_Builder*) builder;
++ (MPChannelState_Builder*) builderWithPrototype:(MPChannelState*) prototype;
+
++ (MPChannelState*) parseFromData:(NSData*) data;
++ (MPChannelState*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPChannelState*) parseFromInputStream:(NSInputStream*) input;
++ (MPChannelState*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPChannelState*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPChannelState*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPChannelState_Builder : PBGeneratedMessage_Builder {
+@private
+ MPChannelState* result;
+}
+
+- (MPChannelState*) defaultInstance;
+
+- (MPChannelState_Builder*) clear;
+- (MPChannelState_Builder*) clone;
+
+- (MPChannelState*) build;
+- (MPChannelState*) buildPartial;
+
+- (MPChannelState_Builder*) mergeFrom:(MPChannelState*) other;
+- (MPChannelState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPChannelState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasChannelId;
+- (int32_t) channelId;
+- (MPChannelState_Builder*) setChannelId:(int32_t) value;
+- (MPChannelState_Builder*) clearChannelId;
+
+- (BOOL) hasParent;
+- (int32_t) parent;
+- (MPChannelState_Builder*) setParent:(int32_t) value;
+- (MPChannelState_Builder*) clearParent;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (MPChannelState_Builder*) setName:(NSString*) value;
+- (MPChannelState_Builder*) clearName;
+
+- (NSArray*) linksList;
+- (int32_t) linksAtIndex:(int32_t) index;
+- (MPChannelState_Builder*) replaceLinksAtIndex:(int32_t) index with:(int32_t) value;
+- (MPChannelState_Builder*) addLinks:(int32_t) value;
+- (MPChannelState_Builder*) addAllLinks:(NSArray*) values;
+- (MPChannelState_Builder*) clearLinksList;
+
+- (BOOL) hasDescription;
+- (NSString*) description;
+- (MPChannelState_Builder*) setDescription:(NSString*) value;
+- (MPChannelState_Builder*) clearDescription;
+
+- (NSArray*) linksAddList;
+- (int32_t) linksAddAtIndex:(int32_t) index;
+- (MPChannelState_Builder*) replaceLinksAddAtIndex:(int32_t) index with:(int32_t) value;
+- (MPChannelState_Builder*) addLinksAdd:(int32_t) value;
+- (MPChannelState_Builder*) addAllLinksAdd:(NSArray*) values;
+- (MPChannelState_Builder*) clearLinksAddList;
+
+- (NSArray*) linksRemoveList;
+- (int32_t) linksRemoveAtIndex:(int32_t) index;
+- (MPChannelState_Builder*) replaceLinksRemoveAtIndex:(int32_t) index with:(int32_t) value;
+- (MPChannelState_Builder*) addLinksRemove:(int32_t) value;
+- (MPChannelState_Builder*) addAllLinksRemove:(NSArray*) values;
+- (MPChannelState_Builder*) clearLinksRemoveList;
+
+- (BOOL) hasTemporary;
+- (BOOL) temporary;
+- (MPChannelState_Builder*) setTemporary:(BOOL) value;
+- (MPChannelState_Builder*) clearTemporary;
+
+- (BOOL) hasPosition;
+- (int32_t) position;
+- (MPChannelState_Builder*) setPosition:(int32_t) value;
+- (MPChannelState_Builder*) clearPosition;
+
+- (BOOL) hasDescriptionHash;
+- (NSData*) descriptionHash;
+- (MPChannelState_Builder*) setDescriptionHash:(NSData*) value;
+- (MPChannelState_Builder*) clearDescriptionHash;
+@end
+
+@interface MPUserRemove : PBGeneratedMessage {
+@private
+ BOOL hasBan_:1;
+ BOOL hasReason_:1;
+ BOOL hasSession_:1;
+ BOOL hasActor_:1;
+ BOOL ban_:1;
+ NSString* reason;
+ int32_t session;
+ int32_t actor;
+}
+- (BOOL) hasSession;
+- (BOOL) hasActor;
+- (BOOL) hasReason;
+- (BOOL) hasBan;
+@property (readonly) int32_t session;
+@property (readonly) int32_t actor;
+@property (readonly, retain) NSString* reason;
+- (BOOL) ban;
+
++ (MPUserRemove*) defaultInstance;
+- (MPUserRemove*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPUserRemove_Builder*) builder;
++ (MPUserRemove_Builder*) builder;
++ (MPUserRemove_Builder*) builderWithPrototype:(MPUserRemove*) prototype;
+
++ (MPUserRemove*) parseFromData:(NSData*) data;
++ (MPUserRemove*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserRemove*) parseFromInputStream:(NSInputStream*) input;
++ (MPUserRemove*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPUserRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPUserRemove_Builder : PBGeneratedMessage_Builder {
+@private
+ MPUserRemove* result;
+}
+
+- (MPUserRemove*) defaultInstance;
+
+- (MPUserRemove_Builder*) clear;
+- (MPUserRemove_Builder*) clone;
+
+- (MPUserRemove*) build;
+- (MPUserRemove*) buildPartial;
+
+- (MPUserRemove_Builder*) mergeFrom:(MPUserRemove*) other;
+- (MPUserRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPUserRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasSession;
+- (int32_t) session;
+- (MPUserRemove_Builder*) setSession:(int32_t) value;
+- (MPUserRemove_Builder*) clearSession;
+
+- (BOOL) hasActor;
+- (int32_t) actor;
+- (MPUserRemove_Builder*) setActor:(int32_t) value;
+- (MPUserRemove_Builder*) clearActor;
+
+- (BOOL) hasReason;
+- (NSString*) reason;
+- (MPUserRemove_Builder*) setReason:(NSString*) value;
+- (MPUserRemove_Builder*) clearReason;
+
+- (BOOL) hasBan;
+- (BOOL) ban;
+- (MPUserRemove_Builder*) setBan:(BOOL) value;
+- (MPUserRemove_Builder*) clearBan;
+@end
+
+@interface MPUserState : PBGeneratedMessage {
+@private
+ BOOL hasMute_:1;
+ BOOL hasDeaf_:1;
+ BOOL hasSuppress_:1;
+ BOOL hasSelfMute_:1;
+ BOOL hasSelfDeaf_:1;
+ BOOL hasName_:1;
+ BOOL hasHash_:1;
+ BOOL hasComment_:1;
+ BOOL hasPluginIdentity_:1;
+ BOOL hasTextureHash_:1;
+ BOOL hasCommentHash_:1;
+ BOOL hasPluginContext_:1;
+ BOOL hasTexture_:1;
+ BOOL hasChannelId_:1;
+ BOOL hasUserId_:1;
+ BOOL hasActor_:1;
+ BOOL hasSession_:1;
+ BOOL mute_:1;
+ BOOL deaf_:1;
+ BOOL suppress_:1;
+ BOOL selfMute_:1;
+ BOOL selfDeaf_:1;
+ NSString* name;
+ NSString* hash;
+ NSString* comment;
+ NSString* pluginIdentity;
+ NSData* textureHash;
+ NSData* commentHash;
+ NSData* pluginContext;
+ NSData* texture;
+ int32_t channelId;
+ int32_t userId;
+ int32_t actor;
+ int32_t session;
+}
+- (BOOL) hasSession;
+- (BOOL) hasActor;
+- (BOOL) hasName;
+- (BOOL) hasUserId;
+- (BOOL) hasChannelId;
+- (BOOL) hasMute;
+- (BOOL) hasDeaf;
+- (BOOL) hasSuppress;
+- (BOOL) hasSelfMute;
+- (BOOL) hasSelfDeaf;
+- (BOOL) hasTexture;
+- (BOOL) hasPluginContext;
+- (BOOL) hasPluginIdentity;
+- (BOOL) hasComment;
+- (BOOL) hasHash;
+- (BOOL) hasCommentHash;
+- (BOOL) hasTextureHash;
+@property (readonly) int32_t session;
+@property (readonly) int32_t actor;
+@property (readonly, retain) NSString* name;
+@property (readonly) int32_t userId;
+@property (readonly) int32_t channelId;
+- (BOOL) mute;
+- (BOOL) deaf;
+- (BOOL) suppress;
+- (BOOL) selfMute;
+- (BOOL) selfDeaf;
+@property (readonly, retain) NSData* texture;
+@property (readonly, retain) NSData* pluginContext;
+@property (readonly, retain) NSString* pluginIdentity;
+@property (readonly, retain) NSString* comment;
+@property (readonly, retain) NSString* hash;
+@property (readonly, retain) NSData* commentHash;
+@property (readonly, retain) NSData* textureHash;
+
++ (MPUserState*) defaultInstance;
+- (MPUserState*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPUserState_Builder*) builder;
++ (MPUserState_Builder*) builder;
++ (MPUserState_Builder*) builderWithPrototype:(MPUserState*) prototype;
+
++ (MPUserState*) parseFromData:(NSData*) data;
++ (MPUserState*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserState*) parseFromInputStream:(NSInputStream*) input;
++ (MPUserState*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserState*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPUserState*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPUserState_Builder : PBGeneratedMessage_Builder {
+@private
+ MPUserState* result;
+}
+
+- (MPUserState*) defaultInstance;
+
+- (MPUserState_Builder*) clear;
+- (MPUserState_Builder*) clone;
+
+- (MPUserState*) build;
+- (MPUserState*) buildPartial;
+
+- (MPUserState_Builder*) mergeFrom:(MPUserState*) other;
+- (MPUserState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPUserState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasSession;
+- (int32_t) session;
+- (MPUserState_Builder*) setSession:(int32_t) value;
+- (MPUserState_Builder*) clearSession;
+
+- (BOOL) hasActor;
+- (int32_t) actor;
+- (MPUserState_Builder*) setActor:(int32_t) value;
+- (MPUserState_Builder*) clearActor;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (MPUserState_Builder*) setName:(NSString*) value;
+- (MPUserState_Builder*) clearName;
+
+- (BOOL) hasUserId;
+- (int32_t) userId;
+- (MPUserState_Builder*) setUserId:(int32_t) value;
+- (MPUserState_Builder*) clearUserId;
+
+- (BOOL) hasChannelId;
+- (int32_t) channelId;
+- (MPUserState_Builder*) setChannelId:(int32_t) value;
+- (MPUserState_Builder*) clearChannelId;
+
+- (BOOL) hasMute;
+- (BOOL) mute;
+- (MPUserState_Builder*) setMute:(BOOL) value;
+- (MPUserState_Builder*) clearMute;
+
+- (BOOL) hasDeaf;
+- (BOOL) deaf;
+- (MPUserState_Builder*) setDeaf:(BOOL) value;
+- (MPUserState_Builder*) clearDeaf;
+
+- (BOOL) hasSuppress;
+- (BOOL) suppress;
+- (MPUserState_Builder*) setSuppress:(BOOL) value;
+- (MPUserState_Builder*) clearSuppress;
+
+- (BOOL) hasSelfMute;
+- (BOOL) selfMute;
+- (MPUserState_Builder*) setSelfMute:(BOOL) value;
+- (MPUserState_Builder*) clearSelfMute;
+
+- (BOOL) hasSelfDeaf;
+- (BOOL) selfDeaf;
+- (MPUserState_Builder*) setSelfDeaf:(BOOL) value;
+- (MPUserState_Builder*) clearSelfDeaf;
+
+- (BOOL) hasTexture;
+- (NSData*) texture;
+- (MPUserState_Builder*) setTexture:(NSData*) value;
+- (MPUserState_Builder*) clearTexture;
+
+- (BOOL) hasPluginContext;
+- (NSData*) pluginContext;
+- (MPUserState_Builder*) setPluginContext:(NSData*) value;
+- (MPUserState_Builder*) clearPluginContext;
+
+- (BOOL) hasPluginIdentity;
+- (NSString*) pluginIdentity;
+- (MPUserState_Builder*) setPluginIdentity:(NSString*) value;
+- (MPUserState_Builder*) clearPluginIdentity;
+
+- (BOOL) hasComment;
+- (NSString*) comment;
+- (MPUserState_Builder*) setComment:(NSString*) value;
+- (MPUserState_Builder*) clearComment;
+
+- (BOOL) hasHash;
+- (NSString*) hash;
+- (MPUserState_Builder*) setHash:(NSString*) value;
+- (MPUserState_Builder*) clearHash;
+
+- (BOOL) hasCommentHash;
+- (NSData*) commentHash;
+- (MPUserState_Builder*) setCommentHash:(NSData*) value;
+- (MPUserState_Builder*) clearCommentHash;
+
+- (BOOL) hasTextureHash;
+- (NSData*) textureHash;
+- (MPUserState_Builder*) setTextureHash:(NSData*) value;
+- (MPUserState_Builder*) clearTextureHash;
+@end
+
+@interface MPBanList : PBGeneratedMessage {
+@private
+ BOOL hasQuery_:1;
+ BOOL query_:1;
+ NSMutableArray* mutableBansList;
+}
+- (BOOL) hasQuery;
+- (BOOL) query;
+- (NSArray*) bansList;
+- (MPBanList_BanEntry*) bansAtIndex:(int32_t) index;
+
++ (MPBanList*) defaultInstance;
+- (MPBanList*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPBanList_Builder*) builder;
++ (MPBanList_Builder*) builder;
++ (MPBanList_Builder*) builderWithPrototype:(MPBanList*) prototype;
+
++ (MPBanList*) parseFromData:(NSData*) data;
++ (MPBanList*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPBanList*) parseFromInputStream:(NSInputStream*) input;
++ (MPBanList*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPBanList*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPBanList*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPBanList_BanEntry : PBGeneratedMessage {
+@private
+ BOOL hasName_:1;
+ BOOL hasHash_:1;
+ BOOL hasReason_:1;
+ BOOL hasStart_:1;
+ BOOL hasAddress_:1;
+ BOOL hasMask_:1;
+ BOOL hasDuration_:1;
+ NSString* name;
+ NSString* hash;
+ NSString* reason;
+ NSString* start;
+ NSData* address;
+ int32_t mask;
+ int32_t duration;
+}
+- (BOOL) hasAddress;
+- (BOOL) hasMask;
+- (BOOL) hasName;
+- (BOOL) hasHash;
+- (BOOL) hasReason;
+- (BOOL) hasStart;
+- (BOOL) hasDuration;
+@property (readonly, retain) NSData* address;
+@property (readonly) int32_t mask;
+@property (readonly, retain) NSString* name;
+@property (readonly, retain) NSString* hash;
+@property (readonly, retain) NSString* reason;
+@property (readonly, retain) NSString* start;
+@property (readonly) int32_t duration;
+
++ (MPBanList_BanEntry*) defaultInstance;
+- (MPBanList_BanEntry*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPBanList_BanEntry_Builder*) builder;
++ (MPBanList_BanEntry_Builder*) builder;
++ (MPBanList_BanEntry_Builder*) builderWithPrototype:(MPBanList_BanEntry*) prototype;
+
++ (MPBanList_BanEntry*) parseFromData:(NSData*) data;
++ (MPBanList_BanEntry*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPBanList_BanEntry*) parseFromInputStream:(NSInputStream*) input;
++ (MPBanList_BanEntry*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPBanList_BanEntry*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPBanList_BanEntry*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPBanList_BanEntry_Builder : PBGeneratedMessage_Builder {
+@private
+ MPBanList_BanEntry* result;
+}
+
+- (MPBanList_BanEntry*) defaultInstance;
+
+- (MPBanList_BanEntry_Builder*) clear;
+- (MPBanList_BanEntry_Builder*) clone;
+
+- (MPBanList_BanEntry*) build;
+- (MPBanList_BanEntry*) buildPartial;
+
+- (MPBanList_BanEntry_Builder*) mergeFrom:(MPBanList_BanEntry*) other;
+- (MPBanList_BanEntry_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPBanList_BanEntry_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasAddress;
+- (NSData*) address;
+- (MPBanList_BanEntry_Builder*) setAddress:(NSData*) value;
+- (MPBanList_BanEntry_Builder*) clearAddress;
+
+- (BOOL) hasMask;
+- (int32_t) mask;
+- (MPBanList_BanEntry_Builder*) setMask:(int32_t) value;
+- (MPBanList_BanEntry_Builder*) clearMask;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (MPBanList_BanEntry_Builder*) setName:(NSString*) value;
+- (MPBanList_BanEntry_Builder*) clearName;
+
+- (BOOL) hasHash;
+- (NSString*) hash;
+- (MPBanList_BanEntry_Builder*) setHash:(NSString*) value;
+- (MPBanList_BanEntry_Builder*) clearHash;
+
+- (BOOL) hasReason;
+- (NSString*) reason;
+- (MPBanList_BanEntry_Builder*) setReason:(NSString*) value;
+- (MPBanList_BanEntry_Builder*) clearReason;
+
+- (BOOL) hasStart;
+- (NSString*) start;
+- (MPBanList_BanEntry_Builder*) setStart:(NSString*) value;
+- (MPBanList_BanEntry_Builder*) clearStart;
+
+- (BOOL) hasDuration;
+- (int32_t) duration;
+- (MPBanList_BanEntry_Builder*) setDuration:(int32_t) value;
+- (MPBanList_BanEntry_Builder*) clearDuration;
+@end
+
+@interface MPBanList_Builder : PBGeneratedMessage_Builder {
+@private
+ MPBanList* result;
+}
+
+- (MPBanList*) defaultInstance;
+
+- (MPBanList_Builder*) clear;
+- (MPBanList_Builder*) clone;
+
+- (MPBanList*) build;
+- (MPBanList*) buildPartial;
+
+- (MPBanList_Builder*) mergeFrom:(MPBanList*) other;
+- (MPBanList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPBanList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) bansList;
+- (MPBanList_BanEntry*) bansAtIndex:(int32_t) index;
+- (MPBanList_Builder*) replaceBansAtIndex:(int32_t) index with:(MPBanList_BanEntry*) value;
+- (MPBanList_Builder*) addBans:(MPBanList_BanEntry*) value;
+- (MPBanList_Builder*) addAllBans:(NSArray*) values;
+- (MPBanList_Builder*) clearBansList;
+
+- (BOOL) hasQuery;
+- (BOOL) query;
+- (MPBanList_Builder*) setQuery:(BOOL) value;
+- (MPBanList_Builder*) clearQuery;
+@end
+
+@interface MPTextMessage : PBGeneratedMessage {
+@private
+ BOOL hasMessage_:1;
+ BOOL hasActor_:1;
+ NSString* message;
+ int32_t actor;
+ NSMutableArray* mutableSessionList;
+ NSMutableArray* mutableChannelIdList;
+ NSMutableArray* mutableTreeIdList;
+}
+- (BOOL) hasActor;
+- (BOOL) hasMessage;
+@property (readonly) int32_t actor;
+@property (readonly, retain) NSString* message;
+- (NSArray*) sessionList;
+- (int32_t) sessionAtIndex:(int32_t) index;
+- (NSArray*) channelIdList;
+- (int32_t) channelIdAtIndex:(int32_t) index;
+- (NSArray*) treeIdList;
+- (int32_t) treeIdAtIndex:(int32_t) index;
+
++ (MPTextMessage*) defaultInstance;
+- (MPTextMessage*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPTextMessage_Builder*) builder;
++ (MPTextMessage_Builder*) builder;
++ (MPTextMessage_Builder*) builderWithPrototype:(MPTextMessage*) prototype;
+
++ (MPTextMessage*) parseFromData:(NSData*) data;
++ (MPTextMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPTextMessage*) parseFromInputStream:(NSInputStream*) input;
++ (MPTextMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPTextMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPTextMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPTextMessage_Builder : PBGeneratedMessage_Builder {
+@private
+ MPTextMessage* result;
+}
+
+- (MPTextMessage*) defaultInstance;
+
+- (MPTextMessage_Builder*) clear;
+- (MPTextMessage_Builder*) clone;
+
+- (MPTextMessage*) build;
+- (MPTextMessage*) buildPartial;
+
+- (MPTextMessage_Builder*) mergeFrom:(MPTextMessage*) other;
+- (MPTextMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPTextMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasActor;
+- (int32_t) actor;
+- (MPTextMessage_Builder*) setActor:(int32_t) value;
+- (MPTextMessage_Builder*) clearActor;
+
+- (NSArray*) sessionList;
+- (int32_t) sessionAtIndex:(int32_t) index;
+- (MPTextMessage_Builder*) replaceSessionAtIndex:(int32_t) index with:(int32_t) value;
+- (MPTextMessage_Builder*) addSession:(int32_t) value;
+- (MPTextMessage_Builder*) addAllSession:(NSArray*) values;
+- (MPTextMessage_Builder*) clearSessionList;
+
+- (NSArray*) channelIdList;
+- (int32_t) channelIdAtIndex:(int32_t) index;
+- (MPTextMessage_Builder*) replaceChannelIdAtIndex:(int32_t) index with:(int32_t) value;
+- (MPTextMessage_Builder*) addChannelId:(int32_t) value;
+- (MPTextMessage_Builder*) addAllChannelId:(NSArray*) values;
+- (MPTextMessage_Builder*) clearChannelIdList;
+
+- (NSArray*) treeIdList;
+- (int32_t) treeIdAtIndex:(int32_t) index;
+- (MPTextMessage_Builder*) replaceTreeIdAtIndex:(int32_t) index with:(int32_t) value;
+- (MPTextMessage_Builder*) addTreeId:(int32_t) value;
+- (MPTextMessage_Builder*) addAllTreeId:(NSArray*) values;
+- (MPTextMessage_Builder*) clearTreeIdList;
+
+- (BOOL) hasMessage;
+- (NSString*) message;
+- (MPTextMessage_Builder*) setMessage:(NSString*) value;
+- (MPTextMessage_Builder*) clearMessage;
+@end
+
+@interface MPPermissionDenied : PBGeneratedMessage {
+@private
+ BOOL hasReason_:1;
+ BOOL hasName_:1;
+ BOOL hasPermission_:1;
+ BOOL hasChannelId_:1;
+ BOOL hasSession_:1;
+ BOOL hasType_:1;
+ NSString* reason;
+ NSString* name;
+ int32_t permission;
+ int32_t channelId;
+ int32_t session;
+ MPPermissionDenied_DenyType type;
+}
+- (BOOL) hasPermission;
+- (BOOL) hasChannelId;
+- (BOOL) hasSession;
+- (BOOL) hasReason;
+- (BOOL) hasType;
+- (BOOL) hasName;
+@property (readonly) int32_t permission;
+@property (readonly) int32_t channelId;
+@property (readonly) int32_t session;
+@property (readonly, retain) NSString* reason;
+@property (readonly) MPPermissionDenied_DenyType type;
+@property (readonly, retain) NSString* name;
+
++ (MPPermissionDenied*) defaultInstance;
+- (MPPermissionDenied*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPPermissionDenied_Builder*) builder;
++ (MPPermissionDenied_Builder*) builder;
++ (MPPermissionDenied_Builder*) builderWithPrototype:(MPPermissionDenied*) prototype;
+
++ (MPPermissionDenied*) parseFromData:(NSData*) data;
++ (MPPermissionDenied*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPPermissionDenied*) parseFromInputStream:(NSInputStream*) input;
++ (MPPermissionDenied*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPPermissionDenied*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPPermissionDenied*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPPermissionDenied_Builder : PBGeneratedMessage_Builder {
+@private
+ MPPermissionDenied* result;
+}
+
+- (MPPermissionDenied*) defaultInstance;
+
+- (MPPermissionDenied_Builder*) clear;
+- (MPPermissionDenied_Builder*) clone;
+
+- (MPPermissionDenied*) build;
+- (MPPermissionDenied*) buildPartial;
+
+- (MPPermissionDenied_Builder*) mergeFrom:(MPPermissionDenied*) other;
+- (MPPermissionDenied_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPPermissionDenied_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasPermission;
+- (int32_t) permission;
+- (MPPermissionDenied_Builder*) setPermission:(int32_t) value;
+- (MPPermissionDenied_Builder*) clearPermission;
+
+- (BOOL) hasChannelId;
+- (int32_t) channelId;
+- (MPPermissionDenied_Builder*) setChannelId:(int32_t) value;
+- (MPPermissionDenied_Builder*) clearChannelId;
+
+- (BOOL) hasSession;
+- (int32_t) session;
+- (MPPermissionDenied_Builder*) setSession:(int32_t) value;
+- (MPPermissionDenied_Builder*) clearSession;
+
+- (BOOL) hasReason;
+- (NSString*) reason;
+- (MPPermissionDenied_Builder*) setReason:(NSString*) value;
+- (MPPermissionDenied_Builder*) clearReason;
+
+- (BOOL) hasType;
+- (MPPermissionDenied_DenyType) type;
+- (MPPermissionDenied_Builder*) setType:(MPPermissionDenied_DenyType) value;
+- (MPPermissionDenied_Builder*) clearType;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (MPPermissionDenied_Builder*) setName:(NSString*) value;
+- (MPPermissionDenied_Builder*) clearName;
+@end
+
+@interface MPACL : PBGeneratedMessage {
+@private
+ BOOL hasInheritAcls_:1;
+ BOOL hasQuery_:1;
+ BOOL hasChannelId_:1;
+ BOOL inheritAcls_:1;
+ BOOL query_:1;
+ int32_t channelId;
+ NSMutableArray* mutableGroupsList;
+ NSMutableArray* mutableAclsList;
+}
+- (BOOL) hasChannelId;
+- (BOOL) hasInheritAcls;
+- (BOOL) hasQuery;
+@property (readonly) int32_t channelId;
+- (BOOL) inheritAcls;
+- (BOOL) query;
+- (NSArray*) groupsList;
+- (MPACL_ChanGroup*) groupsAtIndex:(int32_t) index;
+- (NSArray*) aclsList;
+- (MPACL_ChanACL*) aclsAtIndex:(int32_t) index;
+
++ (MPACL*) defaultInstance;
+- (MPACL*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPACL_Builder*) builder;
++ (MPACL_Builder*) builder;
++ (MPACL_Builder*) builderWithPrototype:(MPACL*) prototype;
+
++ (MPACL*) parseFromData:(NSData*) data;
++ (MPACL*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPACL*) parseFromInputStream:(NSInputStream*) input;
++ (MPACL*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPACL*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPACL*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPACL_ChanGroup : PBGeneratedMessage {
+@private
+ BOOL hasInherited_:1;
+ BOOL hasInherit_:1;
+ BOOL hasInheritable_:1;
+ BOOL hasName_:1;
+ BOOL inherited_:1;
+ BOOL inherit_:1;
+ BOOL inheritable_:1;
+ NSString* name;
+ NSMutableArray* mutableAddList;
+ NSMutableArray* mutableRemoveList;
+ NSMutableArray* mutableInheritedMembersList;
+}
+- (BOOL) hasName;
+- (BOOL) hasInherited;
+- (BOOL) hasInherit;
+- (BOOL) hasInheritable;
+@property (readonly, retain) NSString* name;
+- (BOOL) inherited;
+- (BOOL) inherit;
+- (BOOL) inheritable;
+- (NSArray*) addList;
+- (int32_t) addAtIndex:(int32_t) index;
+- (NSArray*) removeList;
+- (int32_t) removeAtIndex:(int32_t) index;
+- (NSArray*) inheritedMembersList;
+- (int32_t) inheritedMembersAtIndex:(int32_t) index;
+
++ (MPACL_ChanGroup*) defaultInstance;
+- (MPACL_ChanGroup*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPACL_ChanGroup_Builder*) builder;
++ (MPACL_ChanGroup_Builder*) builder;
++ (MPACL_ChanGroup_Builder*) builderWithPrototype:(MPACL_ChanGroup*) prototype;
+
++ (MPACL_ChanGroup*) parseFromData:(NSData*) data;
++ (MPACL_ChanGroup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPACL_ChanGroup*) parseFromInputStream:(NSInputStream*) input;
++ (MPACL_ChanGroup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPACL_ChanGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPACL_ChanGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPACL_ChanGroup_Builder : PBGeneratedMessage_Builder {
+@private
+ MPACL_ChanGroup* result;
+}
+
+- (MPACL_ChanGroup*) defaultInstance;
+
+- (MPACL_ChanGroup_Builder*) clear;
+- (MPACL_ChanGroup_Builder*) clone;
+
+- (MPACL_ChanGroup*) build;
+- (MPACL_ChanGroup*) buildPartial;
+
+- (MPACL_ChanGroup_Builder*) mergeFrom:(MPACL_ChanGroup*) other;
+- (MPACL_ChanGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPACL_ChanGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (MPACL_ChanGroup_Builder*) setName:(NSString*) value;
+- (MPACL_ChanGroup_Builder*) clearName;
+
+- (BOOL) hasInherited;
+- (BOOL) inherited;
+- (MPACL_ChanGroup_Builder*) setInherited:(BOOL) value;
+- (MPACL_ChanGroup_Builder*) clearInherited;
+
+- (BOOL) hasInherit;
+- (BOOL) inherit;
+- (MPACL_ChanGroup_Builder*) setInherit:(BOOL) value;
+- (MPACL_ChanGroup_Builder*) clearInherit;
+
+- (BOOL) hasInheritable;
+- (BOOL) inheritable;
+- (MPACL_ChanGroup_Builder*) setInheritable:(BOOL) value;
+- (MPACL_ChanGroup_Builder*) clearInheritable;
+
+- (NSArray*) addList;
+- (int32_t) addAtIndex:(int32_t) index;
+- (MPACL_ChanGroup_Builder*) replaceAddAtIndex:(int32_t) index with:(int32_t) value;
+- (MPACL_ChanGroup_Builder*) addAdd:(int32_t) value;
+- (MPACL_ChanGroup_Builder*) addAllAdd:(NSArray*) values;
+- (MPACL_ChanGroup_Builder*) clearAddList;
+
+- (NSArray*) removeList;
+- (int32_t) removeAtIndex:(int32_t) index;
+- (MPACL_ChanGroup_Builder*) replaceRemoveAtIndex:(int32_t) index with:(int32_t) value;
+- (MPACL_ChanGroup_Builder*) addRemove:(int32_t) value;
+- (MPACL_ChanGroup_Builder*) addAllRemove:(NSArray*) values;
+- (MPACL_ChanGroup_Builder*) clearRemoveList;
+
+- (NSArray*) inheritedMembersList;
+- (int32_t) inheritedMembersAtIndex:(int32_t) index;
+- (MPACL_ChanGroup_Builder*) replaceInheritedMembersAtIndex:(int32_t) index with:(int32_t) value;
+- (MPACL_ChanGroup_Builder*) addInheritedMembers:(int32_t) value;
+- (MPACL_ChanGroup_Builder*) addAllInheritedMembers:(NSArray*) values;
+- (MPACL_ChanGroup_Builder*) clearInheritedMembersList;
+@end
+
+@interface MPACL_ChanACL : PBGeneratedMessage {
+@private
+ BOOL hasApplyHere_:1;
+ BOOL hasApplySubs_:1;
+ BOOL hasInherited_:1;
+ BOOL hasGroup_:1;
+ BOOL hasUserId_:1;
+ BOOL hasGrant_:1;
+ BOOL hasDeny_:1;
+ BOOL applyHere_:1;
+ BOOL applySubs_:1;
+ BOOL inherited_:1;
+ NSString* group;
+ int32_t userId;
+ int32_t grant;
+ int32_t deny;
+}
+- (BOOL) hasApplyHere;
+- (BOOL) hasApplySubs;
+- (BOOL) hasInherited;
+- (BOOL) hasUserId;
+- (BOOL) hasGroup;
+- (BOOL) hasGrant;
+- (BOOL) hasDeny;
+- (BOOL) applyHere;
+- (BOOL) applySubs;
+- (BOOL) inherited;
+@property (readonly) int32_t userId;
+@property (readonly, retain) NSString* group;
+@property (readonly) int32_t grant;
+@property (readonly) int32_t deny;
+
++ (MPACL_ChanACL*) defaultInstance;
+- (MPACL_ChanACL*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPACL_ChanACL_Builder*) builder;
++ (MPACL_ChanACL_Builder*) builder;
++ (MPACL_ChanACL_Builder*) builderWithPrototype:(MPACL_ChanACL*) prototype;
+
++ (MPACL_ChanACL*) parseFromData:(NSData*) data;
++ (MPACL_ChanACL*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPACL_ChanACL*) parseFromInputStream:(NSInputStream*) input;
++ (MPACL_ChanACL*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPACL_ChanACL*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPACL_ChanACL*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPACL_ChanACL_Builder : PBGeneratedMessage_Builder {
+@private
+ MPACL_ChanACL* result;
+}
+
+- (MPACL_ChanACL*) defaultInstance;
+
+- (MPACL_ChanACL_Builder*) clear;
+- (MPACL_ChanACL_Builder*) clone;
+
+- (MPACL_ChanACL*) build;
+- (MPACL_ChanACL*) buildPartial;
+
+- (MPACL_ChanACL_Builder*) mergeFrom:(MPACL_ChanACL*) other;
+- (MPACL_ChanACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPACL_ChanACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasApplyHere;
+- (BOOL) applyHere;
+- (MPACL_ChanACL_Builder*) setApplyHere:(BOOL) value;
+- (MPACL_ChanACL_Builder*) clearApplyHere;
+
+- (BOOL) hasApplySubs;
+- (BOOL) applySubs;
+- (MPACL_ChanACL_Builder*) setApplySubs:(BOOL) value;
+- (MPACL_ChanACL_Builder*) clearApplySubs;
+
+- (BOOL) hasInherited;
+- (BOOL) inherited;
+- (MPACL_ChanACL_Builder*) setInherited:(BOOL) value;
+- (MPACL_ChanACL_Builder*) clearInherited;
+
+- (BOOL) hasUserId;
+- (int32_t) userId;
+- (MPACL_ChanACL_Builder*) setUserId:(int32_t) value;
+- (MPACL_ChanACL_Builder*) clearUserId;
+
+- (BOOL) hasGroup;
+- (NSString*) group;
+- (MPACL_ChanACL_Builder*) setGroup:(NSString*) value;
+- (MPACL_ChanACL_Builder*) clearGroup;
+
+- (BOOL) hasGrant;
+- (int32_t) grant;
+- (MPACL_ChanACL_Builder*) setGrant:(int32_t) value;
+- (MPACL_ChanACL_Builder*) clearGrant;
+
+- (BOOL) hasDeny;
+- (int32_t) deny;
+- (MPACL_ChanACL_Builder*) setDeny:(int32_t) value;
+- (MPACL_ChanACL_Builder*) clearDeny;
+@end
+
+@interface MPACL_Builder : PBGeneratedMessage_Builder {
+@private
+ MPACL* result;
+}
+
+- (MPACL*) defaultInstance;
+
+- (MPACL_Builder*) clear;
+- (MPACL_Builder*) clone;
+
+- (MPACL*) build;
+- (MPACL*) buildPartial;
+
+- (MPACL_Builder*) mergeFrom:(MPACL*) other;
+- (MPACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasChannelId;
+- (int32_t) channelId;
+- (MPACL_Builder*) setChannelId:(int32_t) value;
+- (MPACL_Builder*) clearChannelId;
+
+- (BOOL) hasInheritAcls;
+- (BOOL) inheritAcls;
+- (MPACL_Builder*) setInheritAcls:(BOOL) value;
+- (MPACL_Builder*) clearInheritAcls;
+
+- (NSArray*) groupsList;
+- (MPACL_ChanGroup*) groupsAtIndex:(int32_t) index;
+- (MPACL_Builder*) replaceGroupsAtIndex:(int32_t) index with:(MPACL_ChanGroup*) value;
+- (MPACL_Builder*) addGroups:(MPACL_ChanGroup*) value;
+- (MPACL_Builder*) addAllGroups:(NSArray*) values;
+- (MPACL_Builder*) clearGroupsList;
+
+- (NSArray*) aclsList;
+- (MPACL_ChanACL*) aclsAtIndex:(int32_t) index;
+- (MPACL_Builder*) replaceAclsAtIndex:(int32_t) index with:(MPACL_ChanACL*) value;
+- (MPACL_Builder*) addAcls:(MPACL_ChanACL*) value;
+- (MPACL_Builder*) addAllAcls:(NSArray*) values;
+- (MPACL_Builder*) clearAclsList;
+
+- (BOOL) hasQuery;
+- (BOOL) query;
+- (MPACL_Builder*) setQuery:(BOOL) value;
+- (MPACL_Builder*) clearQuery;
+@end
+
+@interface MPQueryUsers : PBGeneratedMessage {
+@private
+ NSMutableArray* mutableNamesList;
+ NSMutableArray* mutableIdsList;
+}
+- (NSArray*) idsList;
+- (int32_t) idsAtIndex:(int32_t) index;
+- (NSArray*) namesList;
+- (NSString*) namesAtIndex:(int32_t) index;
+
++ (MPQueryUsers*) defaultInstance;
+- (MPQueryUsers*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPQueryUsers_Builder*) builder;
++ (MPQueryUsers_Builder*) builder;
++ (MPQueryUsers_Builder*) builderWithPrototype:(MPQueryUsers*) prototype;
+
++ (MPQueryUsers*) parseFromData:(NSData*) data;
++ (MPQueryUsers*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPQueryUsers*) parseFromInputStream:(NSInputStream*) input;
++ (MPQueryUsers*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPQueryUsers*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPQueryUsers*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPQueryUsers_Builder : PBGeneratedMessage_Builder {
+@private
+ MPQueryUsers* result;
+}
+
+- (MPQueryUsers*) defaultInstance;
+
+- (MPQueryUsers_Builder*) clear;
+- (MPQueryUsers_Builder*) clone;
+
+- (MPQueryUsers*) build;
+- (MPQueryUsers*) buildPartial;
+
+- (MPQueryUsers_Builder*) mergeFrom:(MPQueryUsers*) other;
+- (MPQueryUsers_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPQueryUsers_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) idsList;
+- (int32_t) idsAtIndex:(int32_t) index;
+- (MPQueryUsers_Builder*) replaceIdsAtIndex:(int32_t) index with:(int32_t) value;
+- (MPQueryUsers_Builder*) addIds:(int32_t) value;
+- (MPQueryUsers_Builder*) addAllIds:(NSArray*) values;
+- (MPQueryUsers_Builder*) clearIdsList;
+
+- (NSArray*) namesList;
+- (NSString*) namesAtIndex:(int32_t) index;
+- (MPQueryUsers_Builder*) replaceNamesAtIndex:(int32_t) index with:(NSString*) value;
+- (MPQueryUsers_Builder*) addNames:(NSString*) value;
+- (MPQueryUsers_Builder*) addAllNames:(NSArray*) values;
+- (MPQueryUsers_Builder*) clearNamesList;
+@end
+
+@interface MPCryptSetup : PBGeneratedMessage {
+@private
+ BOOL hasKey_:1;
+ BOOL hasClientNonce_:1;
+ BOOL hasServerNonce_:1;
+ NSData* key;
+ NSData* clientNonce;
+ NSData* serverNonce;
+}
+- (BOOL) hasKey;
+- (BOOL) hasClientNonce;
+- (BOOL) hasServerNonce;
+@property (readonly, retain) NSData* key;
+@property (readonly, retain) NSData* clientNonce;
+@property (readonly, retain) NSData* serverNonce;
+
++ (MPCryptSetup*) defaultInstance;
+- (MPCryptSetup*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPCryptSetup_Builder*) builder;
++ (MPCryptSetup_Builder*) builder;
++ (MPCryptSetup_Builder*) builderWithPrototype:(MPCryptSetup*) prototype;
+
++ (MPCryptSetup*) parseFromData:(NSData*) data;
++ (MPCryptSetup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPCryptSetup*) parseFromInputStream:(NSInputStream*) input;
++ (MPCryptSetup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPCryptSetup*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPCryptSetup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPCryptSetup_Builder : PBGeneratedMessage_Builder {
+@private
+ MPCryptSetup* result;
+}
+
+- (MPCryptSetup*) defaultInstance;
+
+- (MPCryptSetup_Builder*) clear;
+- (MPCryptSetup_Builder*) clone;
+
+- (MPCryptSetup*) build;
+- (MPCryptSetup*) buildPartial;
+
+- (MPCryptSetup_Builder*) mergeFrom:(MPCryptSetup*) other;
+- (MPCryptSetup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPCryptSetup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasKey;
+- (NSData*) key;
+- (MPCryptSetup_Builder*) setKey:(NSData*) value;
+- (MPCryptSetup_Builder*) clearKey;
+
+- (BOOL) hasClientNonce;
+- (NSData*) clientNonce;
+- (MPCryptSetup_Builder*) setClientNonce:(NSData*) value;
+- (MPCryptSetup_Builder*) clearClientNonce;
+
+- (BOOL) hasServerNonce;
+- (NSData*) serverNonce;
+- (MPCryptSetup_Builder*) setServerNonce:(NSData*) value;
+- (MPCryptSetup_Builder*) clearServerNonce;
+@end
+
+@interface MPContextActionAdd : PBGeneratedMessage {
+@private
+ BOOL hasAction_:1;
+ BOOL hasText_:1;
+ BOOL hasContext_:1;
+ NSString* action;
+ NSString* text;
+ int32_t context;
+}
+- (BOOL) hasAction;
+- (BOOL) hasText;
+- (BOOL) hasContext;
+@property (readonly, retain) NSString* action;
+@property (readonly, retain) NSString* text;
+@property (readonly) int32_t context;
+
++ (MPContextActionAdd*) defaultInstance;
+- (MPContextActionAdd*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPContextActionAdd_Builder*) builder;
++ (MPContextActionAdd_Builder*) builder;
++ (MPContextActionAdd_Builder*) builderWithPrototype:(MPContextActionAdd*) prototype;
+
++ (MPContextActionAdd*) parseFromData:(NSData*) data;
++ (MPContextActionAdd*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPContextActionAdd*) parseFromInputStream:(NSInputStream*) input;
++ (MPContextActionAdd*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPContextActionAdd*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPContextActionAdd*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPContextActionAdd_Builder : PBGeneratedMessage_Builder {
+@private
+ MPContextActionAdd* result;
+}
+
+- (MPContextActionAdd*) defaultInstance;
+
+- (MPContextActionAdd_Builder*) clear;
+- (MPContextActionAdd_Builder*) clone;
+
+- (MPContextActionAdd*) build;
+- (MPContextActionAdd*) buildPartial;
+
+- (MPContextActionAdd_Builder*) mergeFrom:(MPContextActionAdd*) other;
+- (MPContextActionAdd_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPContextActionAdd_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasAction;
+- (NSString*) action;
+- (MPContextActionAdd_Builder*) setAction:(NSString*) value;
+- (MPContextActionAdd_Builder*) clearAction;
+
+- (BOOL) hasText;
+- (NSString*) text;
+- (MPContextActionAdd_Builder*) setText:(NSString*) value;
+- (MPContextActionAdd_Builder*) clearText;
+
+- (BOOL) hasContext;
+- (int32_t) context;
+- (MPContextActionAdd_Builder*) setContext:(int32_t) value;
+- (MPContextActionAdd_Builder*) clearContext;
+@end
+
+@interface MPContextAction : PBGeneratedMessage {
+@private
+ BOOL hasAction_:1;
+ BOOL hasSession_:1;
+ BOOL hasChannelId_:1;
+ NSString* action;
+ int32_t session;
+ int32_t channelId;
+}
+- (BOOL) hasSession;
+- (BOOL) hasChannelId;
+- (BOOL) hasAction;
+@property (readonly) int32_t session;
+@property (readonly) int32_t channelId;
+@property (readonly, retain) NSString* action;
+
++ (MPContextAction*) defaultInstance;
+- (MPContextAction*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPContextAction_Builder*) builder;
++ (MPContextAction_Builder*) builder;
++ (MPContextAction_Builder*) builderWithPrototype:(MPContextAction*) prototype;
+
++ (MPContextAction*) parseFromData:(NSData*) data;
++ (MPContextAction*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPContextAction*) parseFromInputStream:(NSInputStream*) input;
++ (MPContextAction*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPContextAction*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPContextAction*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPContextAction_Builder : PBGeneratedMessage_Builder {
+@private
+ MPContextAction* result;
+}
+
+- (MPContextAction*) defaultInstance;
+
+- (MPContextAction_Builder*) clear;
+- (MPContextAction_Builder*) clone;
+
+- (MPContextAction*) build;
+- (MPContextAction*) buildPartial;
+
+- (MPContextAction_Builder*) mergeFrom:(MPContextAction*) other;
+- (MPContextAction_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPContextAction_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasSession;
+- (int32_t) session;
+- (MPContextAction_Builder*) setSession:(int32_t) value;
+- (MPContextAction_Builder*) clearSession;
+
+- (BOOL) hasChannelId;
+- (int32_t) channelId;
+- (MPContextAction_Builder*) setChannelId:(int32_t) value;
+- (MPContextAction_Builder*) clearChannelId;
+
+- (BOOL) hasAction;
+- (NSString*) action;
+- (MPContextAction_Builder*) setAction:(NSString*) value;
+- (MPContextAction_Builder*) clearAction;
+@end
+
+@interface MPUserList : PBGeneratedMessage {
+@private
+ NSMutableArray* mutableUsersList;
+}
+- (NSArray*) usersList;
+- (MPUserList_User*) usersAtIndex:(int32_t) index;
+
++ (MPUserList*) defaultInstance;
+- (MPUserList*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPUserList_Builder*) builder;
++ (MPUserList_Builder*) builder;
++ (MPUserList_Builder*) builderWithPrototype:(MPUserList*) prototype;
+
++ (MPUserList*) parseFromData:(NSData*) data;
++ (MPUserList*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserList*) parseFromInputStream:(NSInputStream*) input;
++ (MPUserList*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserList*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPUserList*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPUserList_User : PBGeneratedMessage {
+@private
+ BOOL hasName_:1;
+ BOOL hasUserId_:1;
+ NSString* name;
+ int32_t userId;
+}
+- (BOOL) hasUserId;
+- (BOOL) hasName;
+@property (readonly) int32_t userId;
+@property (readonly, retain) NSString* name;
+
++ (MPUserList_User*) defaultInstance;
+- (MPUserList_User*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPUserList_User_Builder*) builder;
++ (MPUserList_User_Builder*) builder;
++ (MPUserList_User_Builder*) builderWithPrototype:(MPUserList_User*) prototype;
+
++ (MPUserList_User*) parseFromData:(NSData*) data;
++ (MPUserList_User*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserList_User*) parseFromInputStream:(NSInputStream*) input;
++ (MPUserList_User*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserList_User*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPUserList_User*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPUserList_User_Builder : PBGeneratedMessage_Builder {
+@private
+ MPUserList_User* result;
+}
+
+- (MPUserList_User*) defaultInstance;
+
+- (MPUserList_User_Builder*) clear;
+- (MPUserList_User_Builder*) clone;
+
+- (MPUserList_User*) build;
+- (MPUserList_User*) buildPartial;
+
+- (MPUserList_User_Builder*) mergeFrom:(MPUserList_User*) other;
+- (MPUserList_User_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPUserList_User_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasUserId;
+- (int32_t) userId;
+- (MPUserList_User_Builder*) setUserId:(int32_t) value;
+- (MPUserList_User_Builder*) clearUserId;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (MPUserList_User_Builder*) setName:(NSString*) value;
+- (MPUserList_User_Builder*) clearName;
+@end
+
+@interface MPUserList_Builder : PBGeneratedMessage_Builder {
+@private
+ MPUserList* result;
+}
+
+- (MPUserList*) defaultInstance;
+
+- (MPUserList_Builder*) clear;
+- (MPUserList_Builder*) clone;
+
+- (MPUserList*) build;
+- (MPUserList*) buildPartial;
+
+- (MPUserList_Builder*) mergeFrom:(MPUserList*) other;
+- (MPUserList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPUserList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) usersList;
+- (MPUserList_User*) usersAtIndex:(int32_t) index;
+- (MPUserList_Builder*) replaceUsersAtIndex:(int32_t) index with:(MPUserList_User*) value;
+- (MPUserList_Builder*) addUsers:(MPUserList_User*) value;
+- (MPUserList_Builder*) addAllUsers:(NSArray*) values;
+- (MPUserList_Builder*) clearUsersList;
+@end
+
+@interface MPVoiceTarget : PBGeneratedMessage {
+@private
+ BOOL hasId_:1;
+ int32_t id;
+ NSMutableArray* mutableTargetsList;
+}
+- (BOOL) hasId;
+@property (readonly) int32_t id;
+- (NSArray*) targetsList;
+- (MPVoiceTarget_Target*) targetsAtIndex:(int32_t) index;
+
++ (MPVoiceTarget*) defaultInstance;
+- (MPVoiceTarget*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPVoiceTarget_Builder*) builder;
++ (MPVoiceTarget_Builder*) builder;
++ (MPVoiceTarget_Builder*) builderWithPrototype:(MPVoiceTarget*) prototype;
+
++ (MPVoiceTarget*) parseFromData:(NSData*) data;
++ (MPVoiceTarget*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPVoiceTarget*) parseFromInputStream:(NSInputStream*) input;
++ (MPVoiceTarget*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPVoiceTarget*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPVoiceTarget*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPVoiceTarget_Target : PBGeneratedMessage {
+@private
+ BOOL hasLinks_:1;
+ BOOL hasChildren_:1;
+ BOOL hasGroup_:1;
+ BOOL hasChannelId_:1;
+ BOOL links_:1;
+ BOOL children_:1;
+ NSString* group;
+ int32_t channelId;
+ NSMutableArray* mutableSessionList;
+}
+- (BOOL) hasChannelId;
+- (BOOL) hasGroup;
+- (BOOL) hasLinks;
+- (BOOL) hasChildren;
+@property (readonly) int32_t channelId;
+@property (readonly, retain) NSString* group;
+- (BOOL) links;
+- (BOOL) children;
+- (NSArray*) sessionList;
+- (int32_t) sessionAtIndex:(int32_t) index;
+
++ (MPVoiceTarget_Target*) defaultInstance;
+- (MPVoiceTarget_Target*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPVoiceTarget_Target_Builder*) builder;
++ (MPVoiceTarget_Target_Builder*) builder;
++ (MPVoiceTarget_Target_Builder*) builderWithPrototype:(MPVoiceTarget_Target*) prototype;
+
++ (MPVoiceTarget_Target*) parseFromData:(NSData*) data;
++ (MPVoiceTarget_Target*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPVoiceTarget_Target*) parseFromInputStream:(NSInputStream*) input;
++ (MPVoiceTarget_Target*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPVoiceTarget_Target*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPVoiceTarget_Target*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPVoiceTarget_Target_Builder : PBGeneratedMessage_Builder {
+@private
+ MPVoiceTarget_Target* result;
+}
+
+- (MPVoiceTarget_Target*) defaultInstance;
+
+- (MPVoiceTarget_Target_Builder*) clear;
+- (MPVoiceTarget_Target_Builder*) clone;
+
+- (MPVoiceTarget_Target*) build;
+- (MPVoiceTarget_Target*) buildPartial;
+
+- (MPVoiceTarget_Target_Builder*) mergeFrom:(MPVoiceTarget_Target*) other;
+- (MPVoiceTarget_Target_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPVoiceTarget_Target_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) sessionList;
+- (int32_t) sessionAtIndex:(int32_t) index;
+- (MPVoiceTarget_Target_Builder*) replaceSessionAtIndex:(int32_t) index with:(int32_t) value;
+- (MPVoiceTarget_Target_Builder*) addSession:(int32_t) value;
+- (MPVoiceTarget_Target_Builder*) addAllSession:(NSArray*) values;
+- (MPVoiceTarget_Target_Builder*) clearSessionList;
+
+- (BOOL) hasChannelId;
+- (int32_t) channelId;
+- (MPVoiceTarget_Target_Builder*) setChannelId:(int32_t) value;
+- (MPVoiceTarget_Target_Builder*) clearChannelId;
+
+- (BOOL) hasGroup;
+- (NSString*) group;
+- (MPVoiceTarget_Target_Builder*) setGroup:(NSString*) value;
+- (MPVoiceTarget_Target_Builder*) clearGroup;
+
+- (BOOL) hasLinks;
+- (BOOL) links;
+- (MPVoiceTarget_Target_Builder*) setLinks:(BOOL) value;
+- (MPVoiceTarget_Target_Builder*) clearLinks;
+
+- (BOOL) hasChildren;
+- (BOOL) children;
+- (MPVoiceTarget_Target_Builder*) setChildren:(BOOL) value;
+- (MPVoiceTarget_Target_Builder*) clearChildren;
+@end
+
+@interface MPVoiceTarget_Builder : PBGeneratedMessage_Builder {
+@private
+ MPVoiceTarget* result;
+}
+
+- (MPVoiceTarget*) defaultInstance;
+
+- (MPVoiceTarget_Builder*) clear;
+- (MPVoiceTarget_Builder*) clone;
+
+- (MPVoiceTarget*) build;
+- (MPVoiceTarget*) buildPartial;
+
+- (MPVoiceTarget_Builder*) mergeFrom:(MPVoiceTarget*) other;
+- (MPVoiceTarget_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPVoiceTarget_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasId;
+- (int32_t) id;
+- (MPVoiceTarget_Builder*) setId:(int32_t) value;
+- (MPVoiceTarget_Builder*) clearId;
+
+- (NSArray*) targetsList;
+- (MPVoiceTarget_Target*) targetsAtIndex:(int32_t) index;
+- (MPVoiceTarget_Builder*) replaceTargetsAtIndex:(int32_t) index with:(MPVoiceTarget_Target*) value;
+- (MPVoiceTarget_Builder*) addTargets:(MPVoiceTarget_Target*) value;
+- (MPVoiceTarget_Builder*) addAllTargets:(NSArray*) values;
+- (MPVoiceTarget_Builder*) clearTargetsList;
+@end
+
+@interface MPPermissionQuery : PBGeneratedMessage {
+@private
+ BOOL hasFlush_:1;
+ BOOL hasChannelId_:1;
+ BOOL hasPermissions_:1;
+ BOOL flush_:1;
+ int32_t channelId;
+ int32_t permissions;
+}
+- (BOOL) hasChannelId;
+- (BOOL) hasPermissions;
+- (BOOL) hasFlush;
+@property (readonly) int32_t channelId;
+@property (readonly) int32_t permissions;
+- (BOOL) flush;
+
++ (MPPermissionQuery*) defaultInstance;
+- (MPPermissionQuery*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPPermissionQuery_Builder*) builder;
++ (MPPermissionQuery_Builder*) builder;
++ (MPPermissionQuery_Builder*) builderWithPrototype:(MPPermissionQuery*) prototype;
+
++ (MPPermissionQuery*) parseFromData:(NSData*) data;
++ (MPPermissionQuery*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPPermissionQuery*) parseFromInputStream:(NSInputStream*) input;
++ (MPPermissionQuery*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPPermissionQuery*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPPermissionQuery*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPPermissionQuery_Builder : PBGeneratedMessage_Builder {
+@private
+ MPPermissionQuery* result;
+}
+
+- (MPPermissionQuery*) defaultInstance;
+
+- (MPPermissionQuery_Builder*) clear;
+- (MPPermissionQuery_Builder*) clone;
+
+- (MPPermissionQuery*) build;
+- (MPPermissionQuery*) buildPartial;
+
+- (MPPermissionQuery_Builder*) mergeFrom:(MPPermissionQuery*) other;
+- (MPPermissionQuery_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPPermissionQuery_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasChannelId;
+- (int32_t) channelId;
+- (MPPermissionQuery_Builder*) setChannelId:(int32_t) value;
+- (MPPermissionQuery_Builder*) clearChannelId;
+
+- (BOOL) hasPermissions;
+- (int32_t) permissions;
+- (MPPermissionQuery_Builder*) setPermissions:(int32_t) value;
+- (MPPermissionQuery_Builder*) clearPermissions;
+
+- (BOOL) hasFlush;
+- (BOOL) flush;
+- (MPPermissionQuery_Builder*) setFlush:(BOOL) value;
+- (MPPermissionQuery_Builder*) clearFlush;
+@end
+
+@interface MPCodecVersion : PBGeneratedMessage {
+@private
+ BOOL hasPreferAlpha_:1;
+ BOOL hasAlpha_:1;
+ BOOL hasBeta_:1;
+ BOOL preferAlpha_:1;
+ int32_t alpha;
+ int32_t beta;
+}
+- (BOOL) hasAlpha;
+- (BOOL) hasBeta;
+- (BOOL) hasPreferAlpha;
+@property (readonly) int32_t alpha;
+@property (readonly) int32_t beta;
+- (BOOL) preferAlpha;
+
++ (MPCodecVersion*) defaultInstance;
+- (MPCodecVersion*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPCodecVersion_Builder*) builder;
++ (MPCodecVersion_Builder*) builder;
++ (MPCodecVersion_Builder*) builderWithPrototype:(MPCodecVersion*) prototype;
+
++ (MPCodecVersion*) parseFromData:(NSData*) data;
++ (MPCodecVersion*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPCodecVersion*) parseFromInputStream:(NSInputStream*) input;
++ (MPCodecVersion*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPCodecVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPCodecVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPCodecVersion_Builder : PBGeneratedMessage_Builder {
+@private
+ MPCodecVersion* result;
+}
+
+- (MPCodecVersion*) defaultInstance;
+
+- (MPCodecVersion_Builder*) clear;
+- (MPCodecVersion_Builder*) clone;
+
+- (MPCodecVersion*) build;
+- (MPCodecVersion*) buildPartial;
+
+- (MPCodecVersion_Builder*) mergeFrom:(MPCodecVersion*) other;
+- (MPCodecVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPCodecVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasAlpha;
+- (int32_t) alpha;
+- (MPCodecVersion_Builder*) setAlpha:(int32_t) value;
+- (MPCodecVersion_Builder*) clearAlpha;
+
+- (BOOL) hasBeta;
+- (int32_t) beta;
+- (MPCodecVersion_Builder*) setBeta:(int32_t) value;
+- (MPCodecVersion_Builder*) clearBeta;
+
+- (BOOL) hasPreferAlpha;
+- (BOOL) preferAlpha;
+- (MPCodecVersion_Builder*) setPreferAlpha:(BOOL) value;
+- (MPCodecVersion_Builder*) clearPreferAlpha;
+@end
+
+@interface MPUserStats : PBGeneratedMessage {
+@private
+ BOOL hasStrongCertificate_:1;
+ BOOL hasStatsOnly_:1;
+ BOOL hasTcpPingVar_:1;
+ BOOL hasTcpPingAvg_:1;
+ BOOL hasUdpPingVar_:1;
+ BOOL hasUdpPingAvg_:1;
+ BOOL hasFromServer_:1;
+ BOOL hasFromClient_:1;
+ BOOL hasVersion_:1;
+ BOOL hasAddress_:1;
+ BOOL hasTcpPackets_:1;
+ BOOL hasUdpPackets_:1;
+ BOOL hasBandwidth_:1;
+ BOOL hasOnlinesecs_:1;
+ BOOL hasIdlesecs_:1;
+ BOOL hasSession_:1;
+ BOOL strongCertificate_:1;
+ BOOL statsOnly_:1;
+ Float32 tcpPingVar;
+ Float32 tcpPingAvg;
+ Float32 udpPingVar;
+ Float32 udpPingAvg;
+ MPUserStats_Stats* fromServer;
+ MPUserStats_Stats* fromClient;
+ MPVersion* version;
+ NSData* address;
+ int32_t tcpPackets;
+ int32_t udpPackets;
+ int32_t bandwidth;
+ int32_t onlinesecs;
+ int32_t idlesecs;
+ int32_t session;
+ NSMutableArray* mutableCeltVersionsList;
+ NSMutableArray* mutableCertificatesList;
+}
+- (BOOL) hasSession;
+- (BOOL) hasStatsOnly;
+- (BOOL) hasFromClient;
+- (BOOL) hasFromServer;
+- (BOOL) hasUdpPackets;
+- (BOOL) hasTcpPackets;
+- (BOOL) hasUdpPingAvg;
+- (BOOL) hasUdpPingVar;
+- (BOOL) hasTcpPingAvg;
+- (BOOL) hasTcpPingVar;
+- (BOOL) hasVersion;
+- (BOOL) hasAddress;
+- (BOOL) hasBandwidth;
+- (BOOL) hasOnlinesecs;
+- (BOOL) hasIdlesecs;
+- (BOOL) hasStrongCertificate;
+@property (readonly) int32_t session;
+- (BOOL) statsOnly;
+@property (readonly, retain) MPUserStats_Stats* fromClient;
+@property (readonly, retain) MPUserStats_Stats* fromServer;
+@property (readonly) int32_t udpPackets;
+@property (readonly) int32_t tcpPackets;
+@property (readonly) Float32 udpPingAvg;
+@property (readonly) Float32 udpPingVar;
+@property (readonly) Float32 tcpPingAvg;
+@property (readonly) Float32 tcpPingVar;
+@property (readonly, retain) MPVersion* version;
+@property (readonly, retain) NSData* address;
+@property (readonly) int32_t bandwidth;
+@property (readonly) int32_t onlinesecs;
+@property (readonly) int32_t idlesecs;
+- (BOOL) strongCertificate;
+- (NSArray*) certificatesList;
+- (NSData*) certificatesAtIndex:(int32_t) index;
+- (NSArray*) celtVersionsList;
+- (int32_t) celtVersionsAtIndex:(int32_t) index;
+
++ (MPUserStats*) defaultInstance;
+- (MPUserStats*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPUserStats_Builder*) builder;
++ (MPUserStats_Builder*) builder;
++ (MPUserStats_Builder*) builderWithPrototype:(MPUserStats*) prototype;
+
++ (MPUserStats*) parseFromData:(NSData*) data;
++ (MPUserStats*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserStats*) parseFromInputStream:(NSInputStream*) input;
++ (MPUserStats*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserStats*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPUserStats*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPUserStats_Stats : PBGeneratedMessage {
+@private
+ BOOL hasGood_:1;
+ BOOL hasLate_:1;
+ BOOL hasLost_:1;
+ BOOL hasResync_:1;
+ int32_t good;
+ int32_t late;
+ int32_t lost;
+ int32_t resync;
+}
+- (BOOL) hasGood;
+- (BOOL) hasLate;
+- (BOOL) hasLost;
+- (BOOL) hasResync;
+@property (readonly) int32_t good;
+@property (readonly) int32_t late;
+@property (readonly) int32_t lost;
+@property (readonly) int32_t resync;
+
++ (MPUserStats_Stats*) defaultInstance;
+- (MPUserStats_Stats*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPUserStats_Stats_Builder*) builder;
++ (MPUserStats_Stats_Builder*) builder;
++ (MPUserStats_Stats_Builder*) builderWithPrototype:(MPUserStats_Stats*) prototype;
+
++ (MPUserStats_Stats*) parseFromData:(NSData*) data;
++ (MPUserStats_Stats*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserStats_Stats*) parseFromInputStream:(NSInputStream*) input;
++ (MPUserStats_Stats*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPUserStats_Stats*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPUserStats_Stats*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPUserStats_Stats_Builder : PBGeneratedMessage_Builder {
+@private
+ MPUserStats_Stats* result;
+}
+
+- (MPUserStats_Stats*) defaultInstance;
+
+- (MPUserStats_Stats_Builder*) clear;
+- (MPUserStats_Stats_Builder*) clone;
+
+- (MPUserStats_Stats*) build;
+- (MPUserStats_Stats*) buildPartial;
+
+- (MPUserStats_Stats_Builder*) mergeFrom:(MPUserStats_Stats*) other;
+- (MPUserStats_Stats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPUserStats_Stats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasGood;
+- (int32_t) good;
+- (MPUserStats_Stats_Builder*) setGood:(int32_t) value;
+- (MPUserStats_Stats_Builder*) clearGood;
+
+- (BOOL) hasLate;
+- (int32_t) late;
+- (MPUserStats_Stats_Builder*) setLate:(int32_t) value;
+- (MPUserStats_Stats_Builder*) clearLate;
+
+- (BOOL) hasLost;
+- (int32_t) lost;
+- (MPUserStats_Stats_Builder*) setLost:(int32_t) value;
+- (MPUserStats_Stats_Builder*) clearLost;
+
+- (BOOL) hasResync;
+- (int32_t) resync;
+- (MPUserStats_Stats_Builder*) setResync:(int32_t) value;
+- (MPUserStats_Stats_Builder*) clearResync;
+@end
+
+@interface MPUserStats_Builder : PBGeneratedMessage_Builder {
+@private
+ MPUserStats* result;
+}
+
+- (MPUserStats*) defaultInstance;
+
+- (MPUserStats_Builder*) clear;
+- (MPUserStats_Builder*) clone;
+
+- (MPUserStats*) build;
+- (MPUserStats*) buildPartial;
+
+- (MPUserStats_Builder*) mergeFrom:(MPUserStats*) other;
+- (MPUserStats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPUserStats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasSession;
+- (int32_t) session;
+- (MPUserStats_Builder*) setSession:(int32_t) value;
+- (MPUserStats_Builder*) clearSession;
+
+- (BOOL) hasStatsOnly;
+- (BOOL) statsOnly;
+- (MPUserStats_Builder*) setStatsOnly:(BOOL) value;
+- (MPUserStats_Builder*) clearStatsOnly;
+
+- (NSArray*) certificatesList;
+- (NSData*) certificatesAtIndex:(int32_t) index;
+- (MPUserStats_Builder*) replaceCertificatesAtIndex:(int32_t) index with:(NSData*) value;
+- (MPUserStats_Builder*) addCertificates:(NSData*) value;
+- (MPUserStats_Builder*) addAllCertificates:(NSArray*) values;
+- (MPUserStats_Builder*) clearCertificatesList;
+
+- (BOOL) hasFromClient;
+- (MPUserStats_Stats*) fromClient;
+- (MPUserStats_Builder*) setFromClient:(MPUserStats_Stats*) value;
+- (MPUserStats_Builder*) setFromClientBuilder:(MPUserStats_Stats_Builder*) builderForValue;
+- (MPUserStats_Builder*) mergeFromClient:(MPUserStats_Stats*) value;
+- (MPUserStats_Builder*) clearFromClient;
+
+- (BOOL) hasFromServer;
+- (MPUserStats_Stats*) fromServer;
+- (MPUserStats_Builder*) setFromServer:(MPUserStats_Stats*) value;
+- (MPUserStats_Builder*) setFromServerBuilder:(MPUserStats_Stats_Builder*) builderForValue;
+- (MPUserStats_Builder*) mergeFromServer:(MPUserStats_Stats*) value;
+- (MPUserStats_Builder*) clearFromServer;
+
+- (BOOL) hasUdpPackets;
+- (int32_t) udpPackets;
+- (MPUserStats_Builder*) setUdpPackets:(int32_t) value;
+- (MPUserStats_Builder*) clearUdpPackets;
+
+- (BOOL) hasTcpPackets;
+- (int32_t) tcpPackets;
+- (MPUserStats_Builder*) setTcpPackets:(int32_t) value;
+- (MPUserStats_Builder*) clearTcpPackets;
+
+- (BOOL) hasUdpPingAvg;
+- (Float32) udpPingAvg;
+- (MPUserStats_Builder*) setUdpPingAvg:(Float32) value;
+- (MPUserStats_Builder*) clearUdpPingAvg;
+
+- (BOOL) hasUdpPingVar;
+- (Float32) udpPingVar;
+- (MPUserStats_Builder*) setUdpPingVar:(Float32) value;
+- (MPUserStats_Builder*) clearUdpPingVar;
+
+- (BOOL) hasTcpPingAvg;
+- (Float32) tcpPingAvg;
+- (MPUserStats_Builder*) setTcpPingAvg:(Float32) value;
+- (MPUserStats_Builder*) clearTcpPingAvg;
+
+- (BOOL) hasTcpPingVar;
+- (Float32) tcpPingVar;
+- (MPUserStats_Builder*) setTcpPingVar:(Float32) value;
+- (MPUserStats_Builder*) clearTcpPingVar;
+
+- (BOOL) hasVersion;
+- (MPVersion*) version;
+- (MPUserStats_Builder*) setVersion:(MPVersion*) value;
+- (MPUserStats_Builder*) setVersionBuilder:(MPVersion_Builder*) builderForValue;
+- (MPUserStats_Builder*) mergeVersion:(MPVersion*) value;
+- (MPUserStats_Builder*) clearVersion;
+
+- (NSArray*) celtVersionsList;
+- (int32_t) celtVersionsAtIndex:(int32_t) index;
+- (MPUserStats_Builder*) replaceCeltVersionsAtIndex:(int32_t) index with:(int32_t) value;
+- (MPUserStats_Builder*) addCeltVersions:(int32_t) value;
+- (MPUserStats_Builder*) addAllCeltVersions:(NSArray*) values;
+- (MPUserStats_Builder*) clearCeltVersionsList;
+
+- (BOOL) hasAddress;
+- (NSData*) address;
+- (MPUserStats_Builder*) setAddress:(NSData*) value;
+- (MPUserStats_Builder*) clearAddress;
+
+- (BOOL) hasBandwidth;
+- (int32_t) bandwidth;
+- (MPUserStats_Builder*) setBandwidth:(int32_t) value;
+- (MPUserStats_Builder*) clearBandwidth;
+
+- (BOOL) hasOnlinesecs;
+- (int32_t) onlinesecs;
+- (MPUserStats_Builder*) setOnlinesecs:(int32_t) value;
+- (MPUserStats_Builder*) clearOnlinesecs;
+
+- (BOOL) hasIdlesecs;
+- (int32_t) idlesecs;
+- (MPUserStats_Builder*) setIdlesecs:(int32_t) value;
+- (MPUserStats_Builder*) clearIdlesecs;
+
+- (BOOL) hasStrongCertificate;
+- (BOOL) strongCertificate;
+- (MPUserStats_Builder*) setStrongCertificate:(BOOL) value;
+- (MPUserStats_Builder*) clearStrongCertificate;
+@end
+
+@interface MPRequestBlob : PBGeneratedMessage {
+@private
+ NSMutableArray* mutableSessionTextureList;
+ NSMutableArray* mutableSessionCommentList;
+ NSMutableArray* mutableChannelDescriptionList;
+}
+- (NSArray*) sessionTextureList;
+- (int32_t) sessionTextureAtIndex:(int32_t) index;
+- (NSArray*) sessionCommentList;
+- (int32_t) sessionCommentAtIndex:(int32_t) index;
+- (NSArray*) channelDescriptionList;
+- (int32_t) channelDescriptionAtIndex:(int32_t) index;
+
++ (MPRequestBlob*) defaultInstance;
+- (MPRequestBlob*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (MPRequestBlob_Builder*) builder;
++ (MPRequestBlob_Builder*) builder;
++ (MPRequestBlob_Builder*) builderWithPrototype:(MPRequestBlob*) prototype;
+
++ (MPRequestBlob*) parseFromData:(NSData*) data;
++ (MPRequestBlob*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPRequestBlob*) parseFromInputStream:(NSInputStream*) input;
++ (MPRequestBlob*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (MPRequestBlob*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (MPRequestBlob*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface MPRequestBlob_Builder : PBGeneratedMessage_Builder {
+@private
+ MPRequestBlob* result;
+}
+
+- (MPRequestBlob*) defaultInstance;
+
+- (MPRequestBlob_Builder*) clear;
+- (MPRequestBlob_Builder*) clone;
+
+- (MPRequestBlob*) build;
+- (MPRequestBlob*) buildPartial;
+
+- (MPRequestBlob_Builder*) mergeFrom:(MPRequestBlob*) other;
+- (MPRequestBlob_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (MPRequestBlob_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (NSArray*) sessionTextureList;
+- (int32_t) sessionTextureAtIndex:(int32_t) index;
+- (MPRequestBlob_Builder*) replaceSessionTextureAtIndex:(int32_t) index with:(int32_t) value;
+- (MPRequestBlob_Builder*) addSessionTexture:(int32_t) value;
+- (MPRequestBlob_Builder*) addAllSessionTexture:(NSArray*) values;
+- (MPRequestBlob_Builder*) clearSessionTextureList;
+
+- (NSArray*) sessionCommentList;
+- (int32_t) sessionCommentAtIndex:(int32_t) index;
+- (MPRequestBlob_Builder*) replaceSessionCommentAtIndex:(int32_t) index with:(int32_t) value;
+- (MPRequestBlob_Builder*) addSessionComment:(int32_t) value;
+- (MPRequestBlob_Builder*) addAllSessionComment:(NSArray*) values;
+- (MPRequestBlob_Builder*) clearSessionCommentList;
+
+- (NSArray*) channelDescriptionList;
+- (int32_t) channelDescriptionAtIndex:(int32_t) index;
+- (MPRequestBlob_Builder*) replaceChannelDescriptionAtIndex:(int32_t) index with:(int32_t) value;
+- (MPRequestBlob_Builder*) addChannelDescription:(int32_t) value;
+- (MPRequestBlob_Builder*) addAllChannelDescription:(NSArray*) values;
+- (MPRequestBlob_Builder*) clearChannelDescriptionList;
+@end
+
diff --git a/proto/Mumble.pb.m b/proto/Mumble.pb.m
new file mode 100644
index 0000000..0166b3e
--- /dev/null
+++ b/proto/Mumble.pb.m
@@ -0,0 +1,11061 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+#import "Mumble.pb.h"
+
+@implementation MPMumbleRoot
+static PBExtensionRegistry* extensionRegistry = nil;
++ (PBExtensionRegistry*) extensionRegistry {
+ return extensionRegistry;
+}
+
++ (void) initialize {
+ if (self == [MPMumbleRoot class]) {
+ PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry];
+ [self registerAllExtensions:registry];
+ [ObjectivecDescriptorRoot registerAllExtensions:registry];
+ extensionRegistry = [registry retain];
+ }
+}
++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry {
+}
+@end
+
+@interface MPVersion ()
+@property int32_t version;
+@property (retain) NSString* release;
+@property (retain) NSString* os;
+@property (retain) NSString* osVersion;
+@end
+
+@implementation MPVersion
+
+- (BOOL) hasVersion {
+ return !!hasVersion_;
+}
+- (void) setHasVersion:(BOOL) value {
+ hasVersion_ = !!value;
+}
+@synthesize version;
+- (BOOL) hasRelease {
+ return !!hasRelease_;
+}
+- (void) setHasRelease:(BOOL) value {
+ hasRelease_ = !!value;
+}
+@synthesize release;
+- (BOOL) hasOs {
+ return !!hasOs_;
+}
+- (void) setHasOs:(BOOL) value {
+ hasOs_ = !!value;
+}
+@synthesize os;
+- (BOOL) hasOsVersion {
+ return !!hasOsVersion_;
+}
+- (void) setHasOsVersion:(BOOL) value {
+ hasOsVersion_ = !!value;
+}
+@synthesize osVersion;
+- (void) dealloc {
+ self.release = nil;
+ self.os = nil;
+ self.osVersion = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.version = 0;
+ self.release = @"";
+ self.os = @"";
+ self.osVersion = @"";
+ }
+ return self;
+}
+static MPVersion* defaultMPVersionInstance = nil;
++ (void) initialize {
+ if (self == [MPVersion class]) {
+ defaultMPVersionInstance = [[MPVersion alloc] init];
+ }
+}
++ (MPVersion*) defaultInstance {
+ return defaultMPVersionInstance;
+}
+- (MPVersion*) defaultInstance {
+ return defaultMPVersionInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasVersion) {
+ [output writeUInt32:1 value:self.version];
+ }
+ if (self.hasRelease) {
+ [output writeString:2 value:self.release];
+ }
+ if (self.hasOs) {
+ [output writeString:3 value:self.os];
+ }
+ if (self.hasOsVersion) {
+ [output writeString:4 value:self.osVersion];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasVersion) {
+ size += computeUInt32Size(1, self.version);
+ }
+ if (self.hasRelease) {
+ size += computeStringSize(2, self.release);
+ }
+ if (self.hasOs) {
+ size += computeStringSize(3, self.os);
+ }
+ if (self.hasOsVersion) {
+ size += computeStringSize(4, self.osVersion);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPVersion*) parseFromData:(NSData*) data {
+ return (MPVersion*)[[[MPVersion builder] mergeFromData:data] build];
+}
++ (MPVersion*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPVersion*)[[[MPVersion builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPVersion*) parseFromInputStream:(NSInputStream*) input {
+ return (MPVersion*)[[[MPVersion builder] mergeFromInputStream:input] build];
+}
++ (MPVersion*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPVersion*)[[[MPVersion builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPVersion*)[[[MPVersion builder] mergeFromCodedInputStream:input] build];
+}
++ (MPVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPVersion*)[[[MPVersion builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPVersion_Builder*) builder {
+ return [[[MPVersion_Builder alloc] init] autorelease];
+}
++ (MPVersion_Builder*) builderWithPrototype:(MPVersion*) prototype {
+ return [[MPVersion builder] mergeFrom:prototype];
+}
+- (MPVersion_Builder*) builder {
+ return [MPVersion builder];
+}
+@end
+
+@interface MPVersion_Builder()
+@property (retain) MPVersion* result;
+@end
+
+@implementation MPVersion_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPVersion alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPVersion_Builder*) clear {
+ self.result = [[[MPVersion alloc] init] autorelease];
+ return self;
+}
+- (MPVersion_Builder*) clone {
+ return [MPVersion builderWithPrototype:result];
+}
+- (MPVersion*) defaultInstance {
+ return [MPVersion defaultInstance];
+}
+- (MPVersion*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPVersion*) buildPartial {
+ MPVersion* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPVersion_Builder*) mergeFrom:(MPVersion*) other {
+ if (other == [MPVersion defaultInstance]) {
+ return self;
+ }
+ if (other.hasVersion) {
+ [self setVersion:other.version];
+ }
+ if (other.hasRelease) {
+ [self setRelease:other.release];
+ }
+ if (other.hasOs) {
+ [self setOs:other.os];
+ }
+ if (other.hasOsVersion) {
+ [self setOsVersion:other.osVersion];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setVersion:[input readUInt32]];
+ break;
+ }
+ case 18: {
+ [self setRelease:[input readString]];
+ break;
+ }
+ case 26: {
+ [self setOs:[input readString]];
+ break;
+ }
+ case 34: {
+ [self setOsVersion:[input readString]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasVersion {
+ return result.hasVersion;
+}
+- (int32_t) version {
+ return result.version;
+}
+- (MPVersion_Builder*) setVersion:(int32_t) value {
+ result.hasVersion = YES;
+ result.version = value;
+ return self;
+}
+- (MPVersion_Builder*) clearVersion {
+ result.hasVersion = NO;
+ result.version = 0;
+ return self;
+}
+- (BOOL) hasRelease {
+ return result.hasRelease;
+}
+- (NSString*) release {
+ return result.release;
+}
+- (MPVersion_Builder*) setRelease:(NSString*) value {
+ result.hasRelease = YES;
+ result.release = value;
+ return self;
+}
+- (MPVersion_Builder*) clearRelease {
+ result.hasRelease = NO;
+ result.release = @"";
+ return self;
+}
+- (BOOL) hasOs {
+ return result.hasOs;
+}
+- (NSString*) os {
+ return result.os;
+}
+- (MPVersion_Builder*) setOs:(NSString*) value {
+ result.hasOs = YES;
+ result.os = value;
+ return self;
+}
+- (MPVersion_Builder*) clearOs {
+ result.hasOs = NO;
+ result.os = @"";
+ return self;
+}
+- (BOOL) hasOsVersion {
+ return result.hasOsVersion;
+}
+- (NSString*) osVersion {
+ return result.osVersion;
+}
+- (MPVersion_Builder*) setOsVersion:(NSString*) value {
+ result.hasOsVersion = YES;
+ result.osVersion = value;
+ return self;
+}
+- (MPVersion_Builder*) clearOsVersion {
+ result.hasOsVersion = NO;
+ result.osVersion = @"";
+ return self;
+}
+@end
+
+@interface MPUDPTunnel ()
+@property (retain) NSData* packet;
+@end
+
+@implementation MPUDPTunnel
+
+- (BOOL) hasPacket {
+ return !!hasPacket_;
+}
+- (void) setHasPacket:(BOOL) value {
+ hasPacket_ = !!value;
+}
+@synthesize packet;
+- (void) dealloc {
+ self.packet = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.packet = [NSData data];
+ }
+ return self;
+}
+static MPUDPTunnel* defaultMPUDPTunnelInstance = nil;
++ (void) initialize {
+ if (self == [MPUDPTunnel class]) {
+ defaultMPUDPTunnelInstance = [[MPUDPTunnel alloc] init];
+ }
+}
++ (MPUDPTunnel*) defaultInstance {
+ return defaultMPUDPTunnelInstance;
+}
+- (MPUDPTunnel*) defaultInstance {
+ return defaultMPUDPTunnelInstance;
+}
+- (BOOL) isInitialized {
+ if (!self.hasPacket) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasPacket) {
+ [output writeData:1 value:self.packet];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasPacket) {
+ size += computeDataSize(1, self.packet);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPUDPTunnel*) parseFromData:(NSData*) data {
+ return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromData:data] build];
+}
++ (MPUDPTunnel*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPUDPTunnel*) parseFromInputStream:(NSInputStream*) input {
+ return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromInputStream:input] build];
+}
++ (MPUDPTunnel*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUDPTunnel*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromCodedInputStream:input] build];
+}
++ (MPUDPTunnel*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUDPTunnel*)[[[MPUDPTunnel builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUDPTunnel_Builder*) builder {
+ return [[[MPUDPTunnel_Builder alloc] init] autorelease];
+}
++ (MPUDPTunnel_Builder*) builderWithPrototype:(MPUDPTunnel*) prototype {
+ return [[MPUDPTunnel builder] mergeFrom:prototype];
+}
+- (MPUDPTunnel_Builder*) builder {
+ return [MPUDPTunnel builder];
+}
+@end
+
+@interface MPUDPTunnel_Builder()
+@property (retain) MPUDPTunnel* result;
+@end
+
+@implementation MPUDPTunnel_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPUDPTunnel alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPUDPTunnel_Builder*) clear {
+ self.result = [[[MPUDPTunnel alloc] init] autorelease];
+ return self;
+}
+- (MPUDPTunnel_Builder*) clone {
+ return [MPUDPTunnel builderWithPrototype:result];
+}
+- (MPUDPTunnel*) defaultInstance {
+ return [MPUDPTunnel defaultInstance];
+}
+- (MPUDPTunnel*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPUDPTunnel*) buildPartial {
+ MPUDPTunnel* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPUDPTunnel_Builder*) mergeFrom:(MPUDPTunnel*) other {
+ if (other == [MPUDPTunnel defaultInstance]) {
+ return self;
+ }
+ if (other.hasPacket) {
+ [self setPacket:other.packet];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPUDPTunnel_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPUDPTunnel_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setPacket:[input readData]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasPacket {
+ return result.hasPacket;
+}
+- (NSData*) packet {
+ return result.packet;
+}
+- (MPUDPTunnel_Builder*) setPacket:(NSData*) value {
+ result.hasPacket = YES;
+ result.packet = value;
+ return self;
+}
+- (MPUDPTunnel_Builder*) clearPacket {
+ result.hasPacket = NO;
+ result.packet = [NSData data];
+ return self;
+}
+@end
+
+@interface MPAuthenticate ()
+@property (retain) NSString* username;
+@property (retain) NSString* password;
+@property (retain) NSMutableArray* mutableTokensList;
+@property (retain) NSMutableArray* mutableCeltVersionsList;
+@end
+
+@implementation MPAuthenticate
+
+- (BOOL) hasUsername {
+ return !!hasUsername_;
+}
+- (void) setHasUsername:(BOOL) value {
+ hasUsername_ = !!value;
+}
+@synthesize username;
+- (BOOL) hasPassword {
+ return !!hasPassword_;
+}
+- (void) setHasPassword:(BOOL) value {
+ hasPassword_ = !!value;
+}
+@synthesize password;
+@synthesize mutableTokensList;
+@synthesize mutableCeltVersionsList;
+- (void) dealloc {
+ self.username = nil;
+ self.password = nil;
+ self.mutableTokensList = nil;
+ self.mutableCeltVersionsList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.username = @"";
+ self.password = @"";
+ }
+ return self;
+}
+static MPAuthenticate* defaultMPAuthenticateInstance = nil;
++ (void) initialize {
+ if (self == [MPAuthenticate class]) {
+ defaultMPAuthenticateInstance = [[MPAuthenticate alloc] init];
+ }
+}
++ (MPAuthenticate*) defaultInstance {
+ return defaultMPAuthenticateInstance;
+}
+- (MPAuthenticate*) defaultInstance {
+ return defaultMPAuthenticateInstance;
+}
+- (NSArray*) tokensList {
+ return mutableTokensList;
+}
+- (NSString*) tokensAtIndex:(int32_t) index {
+ id value = [mutableTokensList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) celtVersionsList {
+ return mutableCeltVersionsList;
+}
+- (int32_t) celtVersionsAtIndex:(int32_t) index {
+ id value = [mutableCeltVersionsList objectAtIndex:index];
+ return [value intValue];
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasUsername) {
+ [output writeString:1 value:self.username];
+ }
+ if (self.hasPassword) {
+ [output writeString:2 value:self.password];
+ }
+ for (NSString* element in self.mutableTokensList) {
+ [output writeString:3 value:element];
+ }
+ for (NSNumber* value in self.mutableCeltVersionsList) {
+ [output writeInt32:4 value:[value intValue]];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasUsername) {
+ size += computeStringSize(1, self.username);
+ }
+ if (self.hasPassword) {
+ size += computeStringSize(2, self.password);
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSString* element in self.mutableTokensList) {
+ dataSize += computeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * self.mutableTokensList.count;
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableCeltVersionsList) {
+ dataSize += computeInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableCeltVersionsList.count;
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPAuthenticate*) parseFromData:(NSData*) data {
+ return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromData:data] build];
+}
++ (MPAuthenticate*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPAuthenticate*) parseFromInputStream:(NSInputStream*) input {
+ return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromInputStream:input] build];
+}
++ (MPAuthenticate*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPAuthenticate*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromCodedInputStream:input] build];
+}
++ (MPAuthenticate*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPAuthenticate*)[[[MPAuthenticate builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPAuthenticate_Builder*) builder {
+ return [[[MPAuthenticate_Builder alloc] init] autorelease];
+}
++ (MPAuthenticate_Builder*) builderWithPrototype:(MPAuthenticate*) prototype {
+ return [[MPAuthenticate builder] mergeFrom:prototype];
+}
+- (MPAuthenticate_Builder*) builder {
+ return [MPAuthenticate builder];
+}
+@end
+
+@interface MPAuthenticate_Builder()
+@property (retain) MPAuthenticate* result;
+@end
+
+@implementation MPAuthenticate_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPAuthenticate alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPAuthenticate_Builder*) clear {
+ self.result = [[[MPAuthenticate alloc] init] autorelease];
+ return self;
+}
+- (MPAuthenticate_Builder*) clone {
+ return [MPAuthenticate builderWithPrototype:result];
+}
+- (MPAuthenticate*) defaultInstance {
+ return [MPAuthenticate defaultInstance];
+}
+- (MPAuthenticate*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPAuthenticate*) buildPartial {
+ MPAuthenticate* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPAuthenticate_Builder*) mergeFrom:(MPAuthenticate*) other {
+ if (other == [MPAuthenticate defaultInstance]) {
+ return self;
+ }
+ if (other.hasUsername) {
+ [self setUsername:other.username];
+ }
+ if (other.hasPassword) {
+ [self setPassword:other.password];
+ }
+ if (other.mutableTokensList.count > 0) {
+ if (result.mutableTokensList == nil) {
+ result.mutableTokensList = [NSMutableArray array];
+ }
+ [result.mutableTokensList addObjectsFromArray:other.mutableTokensList];
+ }
+ if (other.mutableCeltVersionsList.count > 0) {
+ if (result.mutableCeltVersionsList == nil) {
+ result.mutableCeltVersionsList = [NSMutableArray array];
+ }
+ [result.mutableCeltVersionsList addObjectsFromArray:other.mutableCeltVersionsList];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPAuthenticate_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPAuthenticate_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setUsername:[input readString]];
+ break;
+ }
+ case 18: {
+ [self setPassword:[input readString]];
+ break;
+ }
+ case 26: {
+ [self addTokens:[input readString]];
+ break;
+ }
+ case 32: {
+ [self addCeltVersions:[input readInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasUsername {
+ return result.hasUsername;
+}
+- (NSString*) username {
+ return result.username;
+}
+- (MPAuthenticate_Builder*) setUsername:(NSString*) value {
+ result.hasUsername = YES;
+ result.username = value;
+ return self;
+}
+- (MPAuthenticate_Builder*) clearUsername {
+ result.hasUsername = NO;
+ result.username = @"";
+ return self;
+}
+- (BOOL) hasPassword {
+ return result.hasPassword;
+}
+- (NSString*) password {
+ return result.password;
+}
+- (MPAuthenticate_Builder*) setPassword:(NSString*) value {
+ result.hasPassword = YES;
+ result.password = value;
+ return self;
+}
+- (MPAuthenticate_Builder*) clearPassword {
+ result.hasPassword = NO;
+ result.password = @"";
+ return self;
+}
+- (NSArray*) tokensList {
+ if (result.mutableTokensList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableTokensList;
+}
+- (NSString*) tokensAtIndex:(int32_t) index {
+ return [result tokensAtIndex:index];
+}
+- (MPAuthenticate_Builder*) replaceTokensAtIndex:(int32_t) index with:(NSString*) value {
+ [result.mutableTokensList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (MPAuthenticate_Builder*) addTokens:(NSString*) value {
+ if (result.mutableTokensList == nil) {
+ result.mutableTokensList = [NSMutableArray array];
+ }
+ [result.mutableTokensList addObject:value];
+ return self;
+}
+- (MPAuthenticate_Builder*) addAllTokens:(NSArray*) values {
+ if (result.mutableTokensList == nil) {
+ result.mutableTokensList = [NSMutableArray array];
+ }
+ [result.mutableTokensList addObjectsFromArray:values];
+ return self;
+}
+- (MPAuthenticate_Builder*) clearTokensList {
+ result.mutableTokensList = nil;
+ return self;
+}
+- (NSArray*) celtVersionsList {
+ if (result.mutableCeltVersionsList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableCeltVersionsList;
+}
+- (int32_t) celtVersionsAtIndex:(int32_t) index {
+ return [result celtVersionsAtIndex:index];
+}
+- (MPAuthenticate_Builder*) replaceCeltVersionsAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableCeltVersionsList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPAuthenticate_Builder*) addCeltVersions:(int32_t) value {
+ if (result.mutableCeltVersionsList == nil) {
+ result.mutableCeltVersionsList = [NSMutableArray array];
+ }
+ [result.mutableCeltVersionsList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPAuthenticate_Builder*) addAllCeltVersions:(NSArray*) values {
+ if (result.mutableCeltVersionsList == nil) {
+ result.mutableCeltVersionsList = [NSMutableArray array];
+ }
+ [result.mutableCeltVersionsList addObjectsFromArray:values];
+ return self;
+}
+- (MPAuthenticate_Builder*) clearCeltVersionsList {
+ result.mutableCeltVersionsList = nil;
+ return self;
+}
+@end
+
+@interface MPPing ()
+@property int64_t timestamp;
+@property int32_t good;
+@property int32_t late;
+@property int32_t lost;
+@property int32_t resync;
+@property int32_t udpPackets;
+@property int32_t tcpPackets;
+@property Float32 udpPingAvg;
+@property Float32 udpPingVar;
+@property Float32 tcpPingAvg;
+@property Float32 tcpPingVar;
+@end
+
+@implementation MPPing
+
+- (BOOL) hasTimestamp {
+ return !!hasTimestamp_;
+}
+- (void) setHasTimestamp:(BOOL) value {
+ hasTimestamp_ = !!value;
+}
+@synthesize timestamp;
+- (BOOL) hasGood {
+ return !!hasGood_;
+}
+- (void) setHasGood:(BOOL) value {
+ hasGood_ = !!value;
+}
+@synthesize good;
+- (BOOL) hasLate {
+ return !!hasLate_;
+}
+- (void) setHasLate:(BOOL) value {
+ hasLate_ = !!value;
+}
+@synthesize late;
+- (BOOL) hasLost {
+ return !!hasLost_;
+}
+- (void) setHasLost:(BOOL) value {
+ hasLost_ = !!value;
+}
+@synthesize lost;
+- (BOOL) hasResync {
+ return !!hasResync_;
+}
+- (void) setHasResync:(BOOL) value {
+ hasResync_ = !!value;
+}
+@synthesize resync;
+- (BOOL) hasUdpPackets {
+ return !!hasUdpPackets_;
+}
+- (void) setHasUdpPackets:(BOOL) value {
+ hasUdpPackets_ = !!value;
+}
+@synthesize udpPackets;
+- (BOOL) hasTcpPackets {
+ return !!hasTcpPackets_;
+}
+- (void) setHasTcpPackets:(BOOL) value {
+ hasTcpPackets_ = !!value;
+}
+@synthesize tcpPackets;
+- (BOOL) hasUdpPingAvg {
+ return !!hasUdpPingAvg_;
+}
+- (void) setHasUdpPingAvg:(BOOL) value {
+ hasUdpPingAvg_ = !!value;
+}
+@synthesize udpPingAvg;
+- (BOOL) hasUdpPingVar {
+ return !!hasUdpPingVar_;
+}
+- (void) setHasUdpPingVar:(BOOL) value {
+ hasUdpPingVar_ = !!value;
+}
+@synthesize udpPingVar;
+- (BOOL) hasTcpPingAvg {
+ return !!hasTcpPingAvg_;
+}
+- (void) setHasTcpPingAvg:(BOOL) value {
+ hasTcpPingAvg_ = !!value;
+}
+@synthesize tcpPingAvg;
+- (BOOL) hasTcpPingVar {
+ return !!hasTcpPingVar_;
+}
+- (void) setHasTcpPingVar:(BOOL) value {
+ hasTcpPingVar_ = !!value;
+}
+@synthesize tcpPingVar;
+- (void) dealloc {
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.timestamp = 0L;
+ self.good = 0;
+ self.late = 0;
+ self.lost = 0;
+ self.resync = 0;
+ self.udpPackets = 0;
+ self.tcpPackets = 0;
+ self.udpPingAvg = 0;
+ self.udpPingVar = 0;
+ self.tcpPingAvg = 0;
+ self.tcpPingVar = 0;
+ }
+ return self;
+}
+static MPPing* defaultMPPingInstance = nil;
++ (void) initialize {
+ if (self == [MPPing class]) {
+ defaultMPPingInstance = [[MPPing alloc] init];
+ }
+}
++ (MPPing*) defaultInstance {
+ return defaultMPPingInstance;
+}
+- (MPPing*) defaultInstance {
+ return defaultMPPingInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasTimestamp) {
+ [output writeUInt64:1 value:self.timestamp];
+ }
+ if (self.hasGood) {
+ [output writeUInt32:2 value:self.good];
+ }
+ if (self.hasLate) {
+ [output writeUInt32:3 value:self.late];
+ }
+ if (self.hasLost) {
+ [output writeUInt32:4 value:self.lost];
+ }
+ if (self.hasResync) {
+ [output writeUInt32:5 value:self.resync];
+ }
+ if (self.hasUdpPackets) {
+ [output writeUInt32:6 value:self.udpPackets];
+ }
+ if (self.hasTcpPackets) {
+ [output writeUInt32:7 value:self.tcpPackets];
+ }
+ if (self.hasUdpPingAvg) {
+ [output writeFloat:8 value:self.udpPingAvg];
+ }
+ if (self.hasUdpPingVar) {
+ [output writeFloat:9 value:self.udpPingVar];
+ }
+ if (self.hasTcpPingAvg) {
+ [output writeFloat:10 value:self.tcpPingAvg];
+ }
+ if (self.hasTcpPingVar) {
+ [output writeFloat:11 value:self.tcpPingVar];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasTimestamp) {
+ size += computeUInt64Size(1, self.timestamp);
+ }
+ if (self.hasGood) {
+ size += computeUInt32Size(2, self.good);
+ }
+ if (self.hasLate) {
+ size += computeUInt32Size(3, self.late);
+ }
+ if (self.hasLost) {
+ size += computeUInt32Size(4, self.lost);
+ }
+ if (self.hasResync) {
+ size += computeUInt32Size(5, self.resync);
+ }
+ if (self.hasUdpPackets) {
+ size += computeUInt32Size(6, self.udpPackets);
+ }
+ if (self.hasTcpPackets) {
+ size += computeUInt32Size(7, self.tcpPackets);
+ }
+ if (self.hasUdpPingAvg) {
+ size += computeFloatSize(8, self.udpPingAvg);
+ }
+ if (self.hasUdpPingVar) {
+ size += computeFloatSize(9, self.udpPingVar);
+ }
+ if (self.hasTcpPingAvg) {
+ size += computeFloatSize(10, self.tcpPingAvg);
+ }
+ if (self.hasTcpPingVar) {
+ size += computeFloatSize(11, self.tcpPingVar);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPPing*) parseFromData:(NSData*) data {
+ return (MPPing*)[[[MPPing builder] mergeFromData:data] build];
+}
++ (MPPing*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPPing*)[[[MPPing builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPPing*) parseFromInputStream:(NSInputStream*) input {
+ return (MPPing*)[[[MPPing builder] mergeFromInputStream:input] build];
+}
++ (MPPing*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPPing*)[[[MPPing builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPPing*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPPing*)[[[MPPing builder] mergeFromCodedInputStream:input] build];
+}
++ (MPPing*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPPing*)[[[MPPing builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPPing_Builder*) builder {
+ return [[[MPPing_Builder alloc] init] autorelease];
+}
++ (MPPing_Builder*) builderWithPrototype:(MPPing*) prototype {
+ return [[MPPing builder] mergeFrom:prototype];
+}
+- (MPPing_Builder*) builder {
+ return [MPPing builder];
+}
+@end
+
+@interface MPPing_Builder()
+@property (retain) MPPing* result;
+@end
+
+@implementation MPPing_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPPing alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPPing_Builder*) clear {
+ self.result = [[[MPPing alloc] init] autorelease];
+ return self;
+}
+- (MPPing_Builder*) clone {
+ return [MPPing builderWithPrototype:result];
+}
+- (MPPing*) defaultInstance {
+ return [MPPing defaultInstance];
+}
+- (MPPing*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPPing*) buildPartial {
+ MPPing* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPPing_Builder*) mergeFrom:(MPPing*) other {
+ if (other == [MPPing defaultInstance]) {
+ return self;
+ }
+ if (other.hasTimestamp) {
+ [self setTimestamp:other.timestamp];
+ }
+ if (other.hasGood) {
+ [self setGood:other.good];
+ }
+ if (other.hasLate) {
+ [self setLate:other.late];
+ }
+ if (other.hasLost) {
+ [self setLost:other.lost];
+ }
+ if (other.hasResync) {
+ [self setResync:other.resync];
+ }
+ if (other.hasUdpPackets) {
+ [self setUdpPackets:other.udpPackets];
+ }
+ if (other.hasTcpPackets) {
+ [self setTcpPackets:other.tcpPackets];
+ }
+ if (other.hasUdpPingAvg) {
+ [self setUdpPingAvg:other.udpPingAvg];
+ }
+ if (other.hasUdpPingVar) {
+ [self setUdpPingVar:other.udpPingVar];
+ }
+ if (other.hasTcpPingAvg) {
+ [self setTcpPingAvg:other.tcpPingAvg];
+ }
+ if (other.hasTcpPingVar) {
+ [self setTcpPingVar:other.tcpPingVar];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPPing_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPPing_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setTimestamp:[input readUInt64]];
+ break;
+ }
+ case 16: {
+ [self setGood:[input readUInt32]];
+ break;
+ }
+ case 24: {
+ [self setLate:[input readUInt32]];
+ break;
+ }
+ case 32: {
+ [self setLost:[input readUInt32]];
+ break;
+ }
+ case 40: {
+ [self setResync:[input readUInt32]];
+ break;
+ }
+ case 48: {
+ [self setUdpPackets:[input readUInt32]];
+ break;
+ }
+ case 56: {
+ [self setTcpPackets:[input readUInt32]];
+ break;
+ }
+ case 69: {
+ [self setUdpPingAvg:[input readFloat]];
+ break;
+ }
+ case 77: {
+ [self setUdpPingVar:[input readFloat]];
+ break;
+ }
+ case 85: {
+ [self setTcpPingAvg:[input readFloat]];
+ break;
+ }
+ case 93: {
+ [self setTcpPingVar:[input readFloat]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasTimestamp {
+ return result.hasTimestamp;
+}
+- (int64_t) timestamp {
+ return result.timestamp;
+}
+- (MPPing_Builder*) setTimestamp:(int64_t) value {
+ result.hasTimestamp = YES;
+ result.timestamp = value;
+ return self;
+}
+- (MPPing_Builder*) clearTimestamp {
+ result.hasTimestamp = NO;
+ result.timestamp = 0L;
+ return self;
+}
+- (BOOL) hasGood {
+ return result.hasGood;
+}
+- (int32_t) good {
+ return result.good;
+}
+- (MPPing_Builder*) setGood:(int32_t) value {
+ result.hasGood = YES;
+ result.good = value;
+ return self;
+}
+- (MPPing_Builder*) clearGood {
+ result.hasGood = NO;
+ result.good = 0;
+ return self;
+}
+- (BOOL) hasLate {
+ return result.hasLate;
+}
+- (int32_t) late {
+ return result.late;
+}
+- (MPPing_Builder*) setLate:(int32_t) value {
+ result.hasLate = YES;
+ result.late = value;
+ return self;
+}
+- (MPPing_Builder*) clearLate {
+ result.hasLate = NO;
+ result.late = 0;
+ return self;
+}
+- (BOOL) hasLost {
+ return result.hasLost;
+}
+- (int32_t) lost {
+ return result.lost;
+}
+- (MPPing_Builder*) setLost:(int32_t) value {
+ result.hasLost = YES;
+ result.lost = value;
+ return self;
+}
+- (MPPing_Builder*) clearLost {
+ result.hasLost = NO;
+ result.lost = 0;
+ return self;
+}
+- (BOOL) hasResync {
+ return result.hasResync;
+}
+- (int32_t) resync {
+ return result.resync;
+}
+- (MPPing_Builder*) setResync:(int32_t) value {
+ result.hasResync = YES;
+ result.resync = value;
+ return self;
+}
+- (MPPing_Builder*) clearResync {
+ result.hasResync = NO;
+ result.resync = 0;
+ return self;
+}
+- (BOOL) hasUdpPackets {
+ return result.hasUdpPackets;
+}
+- (int32_t) udpPackets {
+ return result.udpPackets;
+}
+- (MPPing_Builder*) setUdpPackets:(int32_t) value {
+ result.hasUdpPackets = YES;
+ result.udpPackets = value;
+ return self;
+}
+- (MPPing_Builder*) clearUdpPackets {
+ result.hasUdpPackets = NO;
+ result.udpPackets = 0;
+ return self;
+}
+- (BOOL) hasTcpPackets {
+ return result.hasTcpPackets;
+}
+- (int32_t) tcpPackets {
+ return result.tcpPackets;
+}
+- (MPPing_Builder*) setTcpPackets:(int32_t) value {
+ result.hasTcpPackets = YES;
+ result.tcpPackets = value;
+ return self;
+}
+- (MPPing_Builder*) clearTcpPackets {
+ result.hasTcpPackets = NO;
+ result.tcpPackets = 0;
+ return self;
+}
+- (BOOL) hasUdpPingAvg {
+ return result.hasUdpPingAvg;
+}
+- (Float32) udpPingAvg {
+ return result.udpPingAvg;
+}
+- (MPPing_Builder*) setUdpPingAvg:(Float32) value {
+ result.hasUdpPingAvg = YES;
+ result.udpPingAvg = value;
+ return self;
+}
+- (MPPing_Builder*) clearUdpPingAvg {
+ result.hasUdpPingAvg = NO;
+ result.udpPingAvg = 0;
+ return self;
+}
+- (BOOL) hasUdpPingVar {
+ return result.hasUdpPingVar;
+}
+- (Float32) udpPingVar {
+ return result.udpPingVar;
+}
+- (MPPing_Builder*) setUdpPingVar:(Float32) value {
+ result.hasUdpPingVar = YES;
+ result.udpPingVar = value;
+ return self;
+}
+- (MPPing_Builder*) clearUdpPingVar {
+ result.hasUdpPingVar = NO;
+ result.udpPingVar = 0;
+ return self;
+}
+- (BOOL) hasTcpPingAvg {
+ return result.hasTcpPingAvg;
+}
+- (Float32) tcpPingAvg {
+ return result.tcpPingAvg;
+}
+- (MPPing_Builder*) setTcpPingAvg:(Float32) value {
+ result.hasTcpPingAvg = YES;
+ result.tcpPingAvg = value;
+ return self;
+}
+- (MPPing_Builder*) clearTcpPingAvg {
+ result.hasTcpPingAvg = NO;
+ result.tcpPingAvg = 0;
+ return self;
+}
+- (BOOL) hasTcpPingVar {
+ return result.hasTcpPingVar;
+}
+- (Float32) tcpPingVar {
+ return result.tcpPingVar;
+}
+- (MPPing_Builder*) setTcpPingVar:(Float32) value {
+ result.hasTcpPingVar = YES;
+ result.tcpPingVar = value;
+ return self;
+}
+- (MPPing_Builder*) clearTcpPingVar {
+ result.hasTcpPingVar = NO;
+ result.tcpPingVar = 0;
+ return self;
+}
+@end
+
+@interface MPReject ()
+@property MPReject_RejectType type;
+@property (retain) NSString* reason;
+@end
+
+@implementation MPReject
+
+- (BOOL) hasType {
+ return !!hasType_;
+}
+- (void) setHasType:(BOOL) value {
+ hasType_ = !!value;
+}
+@synthesize type;
+- (BOOL) hasReason {
+ return !!hasReason_;
+}
+- (void) setHasReason:(BOOL) value {
+ hasReason_ = !!value;
+}
+@synthesize reason;
+- (void) dealloc {
+ self.reason = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.type = MPReject_RejectTypeNone;
+ self.reason = @"";
+ }
+ return self;
+}
+static MPReject* defaultMPRejectInstance = nil;
++ (void) initialize {
+ if (self == [MPReject class]) {
+ defaultMPRejectInstance = [[MPReject alloc] init];
+ }
+}
++ (MPReject*) defaultInstance {
+ return defaultMPRejectInstance;
+}
+- (MPReject*) defaultInstance {
+ return defaultMPRejectInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasType) {
+ [output writeEnum:1 value:self.type];
+ }
+ if (self.hasReason) {
+ [output writeString:2 value:self.reason];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasType) {
+ size += computeEnumSize(1, self.type);
+ }
+ if (self.hasReason) {
+ size += computeStringSize(2, self.reason);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPReject*) parseFromData:(NSData*) data {
+ return (MPReject*)[[[MPReject builder] mergeFromData:data] build];
+}
++ (MPReject*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPReject*)[[[MPReject builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPReject*) parseFromInputStream:(NSInputStream*) input {
+ return (MPReject*)[[[MPReject builder] mergeFromInputStream:input] build];
+}
++ (MPReject*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPReject*)[[[MPReject builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPReject*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPReject*)[[[MPReject builder] mergeFromCodedInputStream:input] build];
+}
++ (MPReject*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPReject*)[[[MPReject builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPReject_Builder*) builder {
+ return [[[MPReject_Builder alloc] init] autorelease];
+}
++ (MPReject_Builder*) builderWithPrototype:(MPReject*) prototype {
+ return [[MPReject builder] mergeFrom:prototype];
+}
+- (MPReject_Builder*) builder {
+ return [MPReject builder];
+}
+@end
+
+BOOL MPReject_RejectTypeIsValidValue(MPReject_RejectType value) {
+ switch (value) {
+ case MPReject_RejectTypeNone:
+ case MPReject_RejectTypeWrongVersion:
+ case MPReject_RejectTypeInvalidUsername:
+ case MPReject_RejectTypeWrongUserPw:
+ case MPReject_RejectTypeWrongServerPw:
+ case MPReject_RejectTypeUsernameInUse:
+ case MPReject_RejectTypeServerFull:
+ case MPReject_RejectTypeNoCertificate:
+ return YES;
+ default:
+ return NO;
+ }
+}
+@interface MPReject_Builder()
+@property (retain) MPReject* result;
+@end
+
+@implementation MPReject_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPReject alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPReject_Builder*) clear {
+ self.result = [[[MPReject alloc] init] autorelease];
+ return self;
+}
+- (MPReject_Builder*) clone {
+ return [MPReject builderWithPrototype:result];
+}
+- (MPReject*) defaultInstance {
+ return [MPReject defaultInstance];
+}
+- (MPReject*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPReject*) buildPartial {
+ MPReject* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPReject_Builder*) mergeFrom:(MPReject*) other {
+ if (other == [MPReject defaultInstance]) {
+ return self;
+ }
+ if (other.hasType) {
+ [self setType:other.type];
+ }
+ if (other.hasReason) {
+ [self setReason:other.reason];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPReject_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPReject_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ int32_t value = [input readEnum];
+ if (MPReject_RejectTypeIsValidValue(value)) {
+ [self setType:value];
+ } else {
+ [unknownFields mergeVarintField:1 value:value];
+ }
+ break;
+ }
+ case 18: {
+ [self setReason:[input readString]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasType {
+ return result.hasType;
+}
+- (MPReject_RejectType) type {
+ return result.type;
+}
+- (MPReject_Builder*) setType:(MPReject_RejectType) value {
+ result.hasType = YES;
+ result.type = value;
+ return self;
+}
+- (MPReject_Builder*) clearType {
+ result.hasType = NO;
+ result.type = MPReject_RejectTypeNone;
+ return self;
+}
+- (BOOL) hasReason {
+ return result.hasReason;
+}
+- (NSString*) reason {
+ return result.reason;
+}
+- (MPReject_Builder*) setReason:(NSString*) value {
+ result.hasReason = YES;
+ result.reason = value;
+ return self;
+}
+- (MPReject_Builder*) clearReason {
+ result.hasReason = NO;
+ result.reason = @"";
+ return self;
+}
+@end
+
+@interface MPServerConfig ()
+@property int32_t maxBandwidth;
+@property (retain) NSString* welcomeText;
+@property BOOL allowHtml;
+@property int32_t messageLength;
+@property int32_t imageMessageLength;
+@end
+
+@implementation MPServerConfig
+
+- (BOOL) hasMaxBandwidth {
+ return !!hasMaxBandwidth_;
+}
+- (void) setHasMaxBandwidth:(BOOL) value {
+ hasMaxBandwidth_ = !!value;
+}
+@synthesize maxBandwidth;
+- (BOOL) hasWelcomeText {
+ return !!hasWelcomeText_;
+}
+- (void) setHasWelcomeText:(BOOL) value {
+ hasWelcomeText_ = !!value;
+}
+@synthesize welcomeText;
+- (BOOL) hasAllowHtml {
+ return !!hasAllowHtml_;
+}
+- (void) setHasAllowHtml:(BOOL) value {
+ hasAllowHtml_ = !!value;
+}
+- (BOOL) allowHtml {
+ return !!allowHtml_;
+}
+- (void) setAllowHtml:(BOOL) value {
+ allowHtml_ = !!value;
+}
+- (BOOL) hasMessageLength {
+ return !!hasMessageLength_;
+}
+- (void) setHasMessageLength:(BOOL) value {
+ hasMessageLength_ = !!value;
+}
+@synthesize messageLength;
+- (BOOL) hasImageMessageLength {
+ return !!hasImageMessageLength_;
+}
+- (void) setHasImageMessageLength:(BOOL) value {
+ hasImageMessageLength_ = !!value;
+}
+@synthesize imageMessageLength;
+- (void) dealloc {
+ self.welcomeText = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.maxBandwidth = 0;
+ self.welcomeText = @"";
+ self.allowHtml = NO;
+ self.messageLength = 0;
+ self.imageMessageLength = 0;
+ }
+ return self;
+}
+static MPServerConfig* defaultMPServerConfigInstance = nil;
++ (void) initialize {
+ if (self == [MPServerConfig class]) {
+ defaultMPServerConfigInstance = [[MPServerConfig alloc] init];
+ }
+}
++ (MPServerConfig*) defaultInstance {
+ return defaultMPServerConfigInstance;
+}
+- (MPServerConfig*) defaultInstance {
+ return defaultMPServerConfigInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasMaxBandwidth) {
+ [output writeUInt32:1 value:self.maxBandwidth];
+ }
+ if (self.hasWelcomeText) {
+ [output writeString:2 value:self.welcomeText];
+ }
+ if (self.hasAllowHtml) {
+ [output writeBool:3 value:self.allowHtml];
+ }
+ if (self.hasMessageLength) {
+ [output writeUInt32:4 value:self.messageLength];
+ }
+ if (self.hasImageMessageLength) {
+ [output writeUInt32:5 value:self.imageMessageLength];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasMaxBandwidth) {
+ size += computeUInt32Size(1, self.maxBandwidth);
+ }
+ if (self.hasWelcomeText) {
+ size += computeStringSize(2, self.welcomeText);
+ }
+ if (self.hasAllowHtml) {
+ size += computeBoolSize(3, self.allowHtml);
+ }
+ if (self.hasMessageLength) {
+ size += computeUInt32Size(4, self.messageLength);
+ }
+ if (self.hasImageMessageLength) {
+ size += computeUInt32Size(5, self.imageMessageLength);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPServerConfig*) parseFromData:(NSData*) data {
+ return (MPServerConfig*)[[[MPServerConfig builder] mergeFromData:data] build];
+}
++ (MPServerConfig*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPServerConfig*)[[[MPServerConfig builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPServerConfig*) parseFromInputStream:(NSInputStream*) input {
+ return (MPServerConfig*)[[[MPServerConfig builder] mergeFromInputStream:input] build];
+}
++ (MPServerConfig*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPServerConfig*)[[[MPServerConfig builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPServerConfig*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPServerConfig*)[[[MPServerConfig builder] mergeFromCodedInputStream:input] build];
+}
++ (MPServerConfig*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPServerConfig*)[[[MPServerConfig builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPServerConfig_Builder*) builder {
+ return [[[MPServerConfig_Builder alloc] init] autorelease];
+}
++ (MPServerConfig_Builder*) builderWithPrototype:(MPServerConfig*) prototype {
+ return [[MPServerConfig builder] mergeFrom:prototype];
+}
+- (MPServerConfig_Builder*) builder {
+ return [MPServerConfig builder];
+}
+@end
+
+@interface MPServerConfig_Builder()
+@property (retain) MPServerConfig* result;
+@end
+
+@implementation MPServerConfig_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPServerConfig alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPServerConfig_Builder*) clear {
+ self.result = [[[MPServerConfig alloc] init] autorelease];
+ return self;
+}
+- (MPServerConfig_Builder*) clone {
+ return [MPServerConfig builderWithPrototype:result];
+}
+- (MPServerConfig*) defaultInstance {
+ return [MPServerConfig defaultInstance];
+}
+- (MPServerConfig*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPServerConfig*) buildPartial {
+ MPServerConfig* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPServerConfig_Builder*) mergeFrom:(MPServerConfig*) other {
+ if (other == [MPServerConfig defaultInstance]) {
+ return self;
+ }
+ if (other.hasMaxBandwidth) {
+ [self setMaxBandwidth:other.maxBandwidth];
+ }
+ if (other.hasWelcomeText) {
+ [self setWelcomeText:other.welcomeText];
+ }
+ if (other.hasAllowHtml) {
+ [self setAllowHtml:other.allowHtml];
+ }
+ if (other.hasMessageLength) {
+ [self setMessageLength:other.messageLength];
+ }
+ if (other.hasImageMessageLength) {
+ [self setImageMessageLength:other.imageMessageLength];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPServerConfig_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPServerConfig_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setMaxBandwidth:[input readUInt32]];
+ break;
+ }
+ case 18: {
+ [self setWelcomeText:[input readString]];
+ break;
+ }
+ case 24: {
+ [self setAllowHtml:[input readBool]];
+ break;
+ }
+ case 32: {
+ [self setMessageLength:[input readUInt32]];
+ break;
+ }
+ case 40: {
+ [self setImageMessageLength:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasMaxBandwidth {
+ return result.hasMaxBandwidth;
+}
+- (int32_t) maxBandwidth {
+ return result.maxBandwidth;
+}
+- (MPServerConfig_Builder*) setMaxBandwidth:(int32_t) value {
+ result.hasMaxBandwidth = YES;
+ result.maxBandwidth = value;
+ return self;
+}
+- (MPServerConfig_Builder*) clearMaxBandwidth {
+ result.hasMaxBandwidth = NO;
+ result.maxBandwidth = 0;
+ return self;
+}
+- (BOOL) hasWelcomeText {
+ return result.hasWelcomeText;
+}
+- (NSString*) welcomeText {
+ return result.welcomeText;
+}
+- (MPServerConfig_Builder*) setWelcomeText:(NSString*) value {
+ result.hasWelcomeText = YES;
+ result.welcomeText = value;
+ return self;
+}
+- (MPServerConfig_Builder*) clearWelcomeText {
+ result.hasWelcomeText = NO;
+ result.welcomeText = @"";
+ return self;
+}
+- (BOOL) hasAllowHtml {
+ return result.hasAllowHtml;
+}
+- (BOOL) allowHtml {
+ return result.allowHtml;
+}
+- (MPServerConfig_Builder*) setAllowHtml:(BOOL) value {
+ result.hasAllowHtml = YES;
+ result.allowHtml = value;
+ return self;
+}
+- (MPServerConfig_Builder*) clearAllowHtml {
+ result.hasAllowHtml = NO;
+ result.allowHtml = NO;
+ return self;
+}
+- (BOOL) hasMessageLength {
+ return result.hasMessageLength;
+}
+- (int32_t) messageLength {
+ return result.messageLength;
+}
+- (MPServerConfig_Builder*) setMessageLength:(int32_t) value {
+ result.hasMessageLength = YES;
+ result.messageLength = value;
+ return self;
+}
+- (MPServerConfig_Builder*) clearMessageLength {
+ result.hasMessageLength = NO;
+ result.messageLength = 0;
+ return self;
+}
+- (BOOL) hasImageMessageLength {
+ return result.hasImageMessageLength;
+}
+- (int32_t) imageMessageLength {
+ return result.imageMessageLength;
+}
+- (MPServerConfig_Builder*) setImageMessageLength:(int32_t) value {
+ result.hasImageMessageLength = YES;
+ result.imageMessageLength = value;
+ return self;
+}
+- (MPServerConfig_Builder*) clearImageMessageLength {
+ result.hasImageMessageLength = NO;
+ result.imageMessageLength = 0;
+ return self;
+}
+@end
+
+@interface MPServerSync ()
+@property int32_t session;
+@property int32_t maxBandwidth;
+@property (retain) NSString* welcomeText;
+@property int64_t permissions;
+@end
+
+@implementation MPServerSync
+
+- (BOOL) hasSession {
+ return !!hasSession_;
+}
+- (void) setHasSession:(BOOL) value {
+ hasSession_ = !!value;
+}
+@synthesize session;
+- (BOOL) hasMaxBandwidth {
+ return !!hasMaxBandwidth_;
+}
+- (void) setHasMaxBandwidth:(BOOL) value {
+ hasMaxBandwidth_ = !!value;
+}
+@synthesize maxBandwidth;
+- (BOOL) hasWelcomeText {
+ return !!hasWelcomeText_;
+}
+- (void) setHasWelcomeText:(BOOL) value {
+ hasWelcomeText_ = !!value;
+}
+@synthesize welcomeText;
+- (BOOL) hasPermissions {
+ return !!hasPermissions_;
+}
+- (void) setHasPermissions:(BOOL) value {
+ hasPermissions_ = !!value;
+}
+@synthesize permissions;
+- (void) dealloc {
+ self.welcomeText = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.session = 0;
+ self.maxBandwidth = 0;
+ self.welcomeText = @"";
+ self.permissions = 0L;
+ }
+ return self;
+}
+static MPServerSync* defaultMPServerSyncInstance = nil;
++ (void) initialize {
+ if (self == [MPServerSync class]) {
+ defaultMPServerSyncInstance = [[MPServerSync alloc] init];
+ }
+}
++ (MPServerSync*) defaultInstance {
+ return defaultMPServerSyncInstance;
+}
+- (MPServerSync*) defaultInstance {
+ return defaultMPServerSyncInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasSession) {
+ [output writeUInt32:1 value:self.session];
+ }
+ if (self.hasMaxBandwidth) {
+ [output writeUInt32:2 value:self.maxBandwidth];
+ }
+ if (self.hasWelcomeText) {
+ [output writeString:3 value:self.welcomeText];
+ }
+ if (self.hasPermissions) {
+ [output writeUInt64:4 value:self.permissions];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasSession) {
+ size += computeUInt32Size(1, self.session);
+ }
+ if (self.hasMaxBandwidth) {
+ size += computeUInt32Size(2, self.maxBandwidth);
+ }
+ if (self.hasWelcomeText) {
+ size += computeStringSize(3, self.welcomeText);
+ }
+ if (self.hasPermissions) {
+ size += computeUInt64Size(4, self.permissions);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPServerSync*) parseFromData:(NSData*) data {
+ return (MPServerSync*)[[[MPServerSync builder] mergeFromData:data] build];
+}
++ (MPServerSync*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPServerSync*)[[[MPServerSync builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPServerSync*) parseFromInputStream:(NSInputStream*) input {
+ return (MPServerSync*)[[[MPServerSync builder] mergeFromInputStream:input] build];
+}
++ (MPServerSync*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPServerSync*)[[[MPServerSync builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPServerSync*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPServerSync*)[[[MPServerSync builder] mergeFromCodedInputStream:input] build];
+}
++ (MPServerSync*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPServerSync*)[[[MPServerSync builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPServerSync_Builder*) builder {
+ return [[[MPServerSync_Builder alloc] init] autorelease];
+}
++ (MPServerSync_Builder*) builderWithPrototype:(MPServerSync*) prototype {
+ return [[MPServerSync builder] mergeFrom:prototype];
+}
+- (MPServerSync_Builder*) builder {
+ return [MPServerSync builder];
+}
+@end
+
+@interface MPServerSync_Builder()
+@property (retain) MPServerSync* result;
+@end
+
+@implementation MPServerSync_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPServerSync alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPServerSync_Builder*) clear {
+ self.result = [[[MPServerSync alloc] init] autorelease];
+ return self;
+}
+- (MPServerSync_Builder*) clone {
+ return [MPServerSync builderWithPrototype:result];
+}
+- (MPServerSync*) defaultInstance {
+ return [MPServerSync defaultInstance];
+}
+- (MPServerSync*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPServerSync*) buildPartial {
+ MPServerSync* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPServerSync_Builder*) mergeFrom:(MPServerSync*) other {
+ if (other == [MPServerSync defaultInstance]) {
+ return self;
+ }
+ if (other.hasSession) {
+ [self setSession:other.session];
+ }
+ if (other.hasMaxBandwidth) {
+ [self setMaxBandwidth:other.maxBandwidth];
+ }
+ if (other.hasWelcomeText) {
+ [self setWelcomeText:other.welcomeText];
+ }
+ if (other.hasPermissions) {
+ [self setPermissions:other.permissions];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPServerSync_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPServerSync_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setSession:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setMaxBandwidth:[input readUInt32]];
+ break;
+ }
+ case 26: {
+ [self setWelcomeText:[input readString]];
+ break;
+ }
+ case 32: {
+ [self setPermissions:[input readUInt64]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasSession {
+ return result.hasSession;
+}
+- (int32_t) session {
+ return result.session;
+}
+- (MPServerSync_Builder*) setSession:(int32_t) value {
+ result.hasSession = YES;
+ result.session = value;
+ return self;
+}
+- (MPServerSync_Builder*) clearSession {
+ result.hasSession = NO;
+ result.session = 0;
+ return self;
+}
+- (BOOL) hasMaxBandwidth {
+ return result.hasMaxBandwidth;
+}
+- (int32_t) maxBandwidth {
+ return result.maxBandwidth;
+}
+- (MPServerSync_Builder*) setMaxBandwidth:(int32_t) value {
+ result.hasMaxBandwidth = YES;
+ result.maxBandwidth = value;
+ return self;
+}
+- (MPServerSync_Builder*) clearMaxBandwidth {
+ result.hasMaxBandwidth = NO;
+ result.maxBandwidth = 0;
+ return self;
+}
+- (BOOL) hasWelcomeText {
+ return result.hasWelcomeText;
+}
+- (NSString*) welcomeText {
+ return result.welcomeText;
+}
+- (MPServerSync_Builder*) setWelcomeText:(NSString*) value {
+ result.hasWelcomeText = YES;
+ result.welcomeText = value;
+ return self;
+}
+- (MPServerSync_Builder*) clearWelcomeText {
+ result.hasWelcomeText = NO;
+ result.welcomeText = @"";
+ return self;
+}
+- (BOOL) hasPermissions {
+ return result.hasPermissions;
+}
+- (int64_t) permissions {
+ return result.permissions;
+}
+- (MPServerSync_Builder*) setPermissions:(int64_t) value {
+ result.hasPermissions = YES;
+ result.permissions = value;
+ return self;
+}
+- (MPServerSync_Builder*) clearPermissions {
+ result.hasPermissions = NO;
+ result.permissions = 0L;
+ return self;
+}
+@end
+
+@interface MPChannelRemove ()
+@property int32_t channelId;
+@end
+
+@implementation MPChannelRemove
+
+- (BOOL) hasChannelId {
+ return !!hasChannelId_;
+}
+- (void) setHasChannelId:(BOOL) value {
+ hasChannelId_ = !!value;
+}
+@synthesize channelId;
+- (void) dealloc {
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.channelId = 0;
+ }
+ return self;
+}
+static MPChannelRemove* defaultMPChannelRemoveInstance = nil;
++ (void) initialize {
+ if (self == [MPChannelRemove class]) {
+ defaultMPChannelRemoveInstance = [[MPChannelRemove alloc] init];
+ }
+}
++ (MPChannelRemove*) defaultInstance {
+ return defaultMPChannelRemoveInstance;
+}
+- (MPChannelRemove*) defaultInstance {
+ return defaultMPChannelRemoveInstance;
+}
+- (BOOL) isInitialized {
+ if (!self.hasChannelId) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasChannelId) {
+ [output writeUInt32:1 value:self.channelId];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasChannelId) {
+ size += computeUInt32Size(1, self.channelId);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPChannelRemove*) parseFromData:(NSData*) data {
+ return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromData:data] build];
+}
++ (MPChannelRemove*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPChannelRemove*) parseFromInputStream:(NSInputStream*) input {
+ return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromInputStream:input] build];
+}
++ (MPChannelRemove*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPChannelRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromCodedInputStream:input] build];
+}
++ (MPChannelRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPChannelRemove*)[[[MPChannelRemove builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPChannelRemove_Builder*) builder {
+ return [[[MPChannelRemove_Builder alloc] init] autorelease];
+}
++ (MPChannelRemove_Builder*) builderWithPrototype:(MPChannelRemove*) prototype {
+ return [[MPChannelRemove builder] mergeFrom:prototype];
+}
+- (MPChannelRemove_Builder*) builder {
+ return [MPChannelRemove builder];
+}
+@end
+
+@interface MPChannelRemove_Builder()
+@property (retain) MPChannelRemove* result;
+@end
+
+@implementation MPChannelRemove_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPChannelRemove alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPChannelRemove_Builder*) clear {
+ self.result = [[[MPChannelRemove alloc] init] autorelease];
+ return self;
+}
+- (MPChannelRemove_Builder*) clone {
+ return [MPChannelRemove builderWithPrototype:result];
+}
+- (MPChannelRemove*) defaultInstance {
+ return [MPChannelRemove defaultInstance];
+}
+- (MPChannelRemove*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPChannelRemove*) buildPartial {
+ MPChannelRemove* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPChannelRemove_Builder*) mergeFrom:(MPChannelRemove*) other {
+ if (other == [MPChannelRemove defaultInstance]) {
+ return self;
+ }
+ if (other.hasChannelId) {
+ [self setChannelId:other.channelId];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPChannelRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPChannelRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setChannelId:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasChannelId {
+ return result.hasChannelId;
+}
+- (int32_t) channelId {
+ return result.channelId;
+}
+- (MPChannelRemove_Builder*) setChannelId:(int32_t) value {
+ result.hasChannelId = YES;
+ result.channelId = value;
+ return self;
+}
+- (MPChannelRemove_Builder*) clearChannelId {
+ result.hasChannelId = NO;
+ result.channelId = 0;
+ return self;
+}
+@end
+
+@interface MPChannelState ()
+@property int32_t channelId;
+@property int32_t parent;
+@property (retain) NSString* name;
+@property (retain) NSMutableArray* mutableLinksList;
+@property (retain) NSString* description;
+@property (retain) NSMutableArray* mutableLinksAddList;
+@property (retain) NSMutableArray* mutableLinksRemoveList;
+@property BOOL temporary;
+@property int32_t position;
+@property (retain) NSData* descriptionHash;
+@end
+
+@implementation MPChannelState
+
+- (BOOL) hasChannelId {
+ return !!hasChannelId_;
+}
+- (void) setHasChannelId:(BOOL) value {
+ hasChannelId_ = !!value;
+}
+@synthesize channelId;
+- (BOOL) hasParent {
+ return !!hasParent_;
+}
+- (void) setHasParent:(BOOL) value {
+ hasParent_ = !!value;
+}
+@synthesize parent;
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+@synthesize mutableLinksList;
+- (BOOL) hasDescription {
+ return !!hasDescription_;
+}
+- (void) setHasDescription:(BOOL) value {
+ hasDescription_ = !!value;
+}
+@synthesize description;
+@synthesize mutableLinksAddList;
+@synthesize mutableLinksRemoveList;
+- (BOOL) hasTemporary {
+ return !!hasTemporary_;
+}
+- (void) setHasTemporary:(BOOL) value {
+ hasTemporary_ = !!value;
+}
+- (BOOL) temporary {
+ return !!temporary_;
+}
+- (void) setTemporary:(BOOL) value {
+ temporary_ = !!value;
+}
+- (BOOL) hasPosition {
+ return !!hasPosition_;
+}
+- (void) setHasPosition:(BOOL) value {
+ hasPosition_ = !!value;
+}
+@synthesize position;
+- (BOOL) hasDescriptionHash {
+ return !!hasDescriptionHash_;
+}
+- (void) setHasDescriptionHash:(BOOL) value {
+ hasDescriptionHash_ = !!value;
+}
+@synthesize descriptionHash;
+- (void) dealloc {
+ self.name = nil;
+ self.mutableLinksList = nil;
+ self.description = nil;
+ self.mutableLinksAddList = nil;
+ self.mutableLinksRemoveList = nil;
+ self.descriptionHash = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.channelId = 0;
+ self.parent = 0;
+ self.name = @"";
+ self.description = @"";
+ self.temporary = NO;
+ self.position = 0;
+ self.descriptionHash = [NSData data];
+ }
+ return self;
+}
+static MPChannelState* defaultMPChannelStateInstance = nil;
++ (void) initialize {
+ if (self == [MPChannelState class]) {
+ defaultMPChannelStateInstance = [[MPChannelState alloc] init];
+ }
+}
++ (MPChannelState*) defaultInstance {
+ return defaultMPChannelStateInstance;
+}
+- (MPChannelState*) defaultInstance {
+ return defaultMPChannelStateInstance;
+}
+- (NSArray*) linksList {
+ return mutableLinksList;
+}
+- (int32_t) linksAtIndex:(int32_t) index {
+ id value = [mutableLinksList objectAtIndex:index];
+ return [value intValue];
+}
+- (NSArray*) linksAddList {
+ return mutableLinksAddList;
+}
+- (int32_t) linksAddAtIndex:(int32_t) index {
+ id value = [mutableLinksAddList objectAtIndex:index];
+ return [value intValue];
+}
+- (NSArray*) linksRemoveList {
+ return mutableLinksRemoveList;
+}
+- (int32_t) linksRemoveAtIndex:(int32_t) index {
+ id value = [mutableLinksRemoveList objectAtIndex:index];
+ return [value intValue];
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasChannelId) {
+ [output writeUInt32:1 value:self.channelId];
+ }
+ if (self.hasParent) {
+ [output writeUInt32:2 value:self.parent];
+ }
+ if (self.hasName) {
+ [output writeString:3 value:self.name];
+ }
+ for (NSNumber* value in self.mutableLinksList) {
+ [output writeUInt32:4 value:[value intValue]];
+ }
+ if (self.hasDescription) {
+ [output writeString:5 value:self.description];
+ }
+ for (NSNumber* value in self.mutableLinksAddList) {
+ [output writeUInt32:6 value:[value intValue]];
+ }
+ for (NSNumber* value in self.mutableLinksRemoveList) {
+ [output writeUInt32:7 value:[value intValue]];
+ }
+ if (self.hasTemporary) {
+ [output writeBool:8 value:self.temporary];
+ }
+ if (self.hasPosition) {
+ [output writeInt32:9 value:self.position];
+ }
+ if (self.hasDescriptionHash) {
+ [output writeData:10 value:self.descriptionHash];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasChannelId) {
+ size += computeUInt32Size(1, self.channelId);
+ }
+ if (self.hasParent) {
+ size += computeUInt32Size(2, self.parent);
+ }
+ if (self.hasName) {
+ size += computeStringSize(3, self.name);
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableLinksList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableLinksList.count;
+ }
+ if (self.hasDescription) {
+ size += computeStringSize(5, self.description);
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableLinksAddList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableLinksAddList.count;
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableLinksRemoveList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableLinksRemoveList.count;
+ }
+ if (self.hasTemporary) {
+ size += computeBoolSize(8, self.temporary);
+ }
+ if (self.hasPosition) {
+ size += computeInt32Size(9, self.position);
+ }
+ if (self.hasDescriptionHash) {
+ size += computeDataSize(10, self.descriptionHash);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPChannelState*) parseFromData:(NSData*) data {
+ return (MPChannelState*)[[[MPChannelState builder] mergeFromData:data] build];
+}
++ (MPChannelState*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPChannelState*)[[[MPChannelState builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPChannelState*) parseFromInputStream:(NSInputStream*) input {
+ return (MPChannelState*)[[[MPChannelState builder] mergeFromInputStream:input] build];
+}
++ (MPChannelState*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPChannelState*)[[[MPChannelState builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPChannelState*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPChannelState*)[[[MPChannelState builder] mergeFromCodedInputStream:input] build];
+}
++ (MPChannelState*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPChannelState*)[[[MPChannelState builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPChannelState_Builder*) builder {
+ return [[[MPChannelState_Builder alloc] init] autorelease];
+}
++ (MPChannelState_Builder*) builderWithPrototype:(MPChannelState*) prototype {
+ return [[MPChannelState builder] mergeFrom:prototype];
+}
+- (MPChannelState_Builder*) builder {
+ return [MPChannelState builder];
+}
+@end
+
+@interface MPChannelState_Builder()
+@property (retain) MPChannelState* result;
+@end
+
+@implementation MPChannelState_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPChannelState alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPChannelState_Builder*) clear {
+ self.result = [[[MPChannelState alloc] init] autorelease];
+ return self;
+}
+- (MPChannelState_Builder*) clone {
+ return [MPChannelState builderWithPrototype:result];
+}
+- (MPChannelState*) defaultInstance {
+ return [MPChannelState defaultInstance];
+}
+- (MPChannelState*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPChannelState*) buildPartial {
+ MPChannelState* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPChannelState_Builder*) mergeFrom:(MPChannelState*) other {
+ if (other == [MPChannelState defaultInstance]) {
+ return self;
+ }
+ if (other.hasChannelId) {
+ [self setChannelId:other.channelId];
+ }
+ if (other.hasParent) {
+ [self setParent:other.parent];
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.mutableLinksList.count > 0) {
+ if (result.mutableLinksList == nil) {
+ result.mutableLinksList = [NSMutableArray array];
+ }
+ [result.mutableLinksList addObjectsFromArray:other.mutableLinksList];
+ }
+ if (other.hasDescription) {
+ [self setDescription:other.description];
+ }
+ if (other.mutableLinksAddList.count > 0) {
+ if (result.mutableLinksAddList == nil) {
+ result.mutableLinksAddList = [NSMutableArray array];
+ }
+ [result.mutableLinksAddList addObjectsFromArray:other.mutableLinksAddList];
+ }
+ if (other.mutableLinksRemoveList.count > 0) {
+ if (result.mutableLinksRemoveList == nil) {
+ result.mutableLinksRemoveList = [NSMutableArray array];
+ }
+ [result.mutableLinksRemoveList addObjectsFromArray:other.mutableLinksRemoveList];
+ }
+ if (other.hasTemporary) {
+ [self setTemporary:other.temporary];
+ }
+ if (other.hasPosition) {
+ [self setPosition:other.position];
+ }
+ if (other.hasDescriptionHash) {
+ [self setDescriptionHash:other.descriptionHash];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPChannelState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPChannelState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setChannelId:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setParent:[input readUInt32]];
+ break;
+ }
+ case 26: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 32: {
+ [self addLinks:[input readUInt32]];
+ break;
+ }
+ case 42: {
+ [self setDescription:[input readString]];
+ break;
+ }
+ case 48: {
+ [self addLinksAdd:[input readUInt32]];
+ break;
+ }
+ case 56: {
+ [self addLinksRemove:[input readUInt32]];
+ break;
+ }
+ case 64: {
+ [self setTemporary:[input readBool]];
+ break;
+ }
+ case 72: {
+ [self setPosition:[input readInt32]];
+ break;
+ }
+ case 82: {
+ [self setDescriptionHash:[input readData]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasChannelId {
+ return result.hasChannelId;
+}
+- (int32_t) channelId {
+ return result.channelId;
+}
+- (MPChannelState_Builder*) setChannelId:(int32_t) value {
+ result.hasChannelId = YES;
+ result.channelId = value;
+ return self;
+}
+- (MPChannelState_Builder*) clearChannelId {
+ result.hasChannelId = NO;
+ result.channelId = 0;
+ return self;
+}
+- (BOOL) hasParent {
+ return result.hasParent;
+}
+- (int32_t) parent {
+ return result.parent;
+}
+- (MPChannelState_Builder*) setParent:(int32_t) value {
+ result.hasParent = YES;
+ result.parent = value;
+ return self;
+}
+- (MPChannelState_Builder*) clearParent {
+ result.hasParent = NO;
+ result.parent = 0;
+ return self;
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (MPChannelState_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (MPChannelState_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (NSArray*) linksList {
+ if (result.mutableLinksList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableLinksList;
+}
+- (int32_t) linksAtIndex:(int32_t) index {
+ return [result linksAtIndex:index];
+}
+- (MPChannelState_Builder*) replaceLinksAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableLinksList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPChannelState_Builder*) addLinks:(int32_t) value {
+ if (result.mutableLinksList == nil) {
+ result.mutableLinksList = [NSMutableArray array];
+ }
+ [result.mutableLinksList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPChannelState_Builder*) addAllLinks:(NSArray*) values {
+ if (result.mutableLinksList == nil) {
+ result.mutableLinksList = [NSMutableArray array];
+ }
+ [result.mutableLinksList addObjectsFromArray:values];
+ return self;
+}
+- (MPChannelState_Builder*) clearLinksList {
+ result.mutableLinksList = nil;
+ return self;
+}
+- (BOOL) hasDescription {
+ return result.hasDescription;
+}
+- (NSString*) description {
+ return result.description;
+}
+- (MPChannelState_Builder*) setDescription:(NSString*) value {
+ result.hasDescription = YES;
+ result.description = value;
+ return self;
+}
+- (MPChannelState_Builder*) clearDescription {
+ result.hasDescription = NO;
+ result.description = @"";
+ return self;
+}
+- (NSArray*) linksAddList {
+ if (result.mutableLinksAddList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableLinksAddList;
+}
+- (int32_t) linksAddAtIndex:(int32_t) index {
+ return [result linksAddAtIndex:index];
+}
+- (MPChannelState_Builder*) replaceLinksAddAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableLinksAddList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPChannelState_Builder*) addLinksAdd:(int32_t) value {
+ if (result.mutableLinksAddList == nil) {
+ result.mutableLinksAddList = [NSMutableArray array];
+ }
+ [result.mutableLinksAddList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPChannelState_Builder*) addAllLinksAdd:(NSArray*) values {
+ if (result.mutableLinksAddList == nil) {
+ result.mutableLinksAddList = [NSMutableArray array];
+ }
+ [result.mutableLinksAddList addObjectsFromArray:values];
+ return self;
+}
+- (MPChannelState_Builder*) clearLinksAddList {
+ result.mutableLinksAddList = nil;
+ return self;
+}
+- (NSArray*) linksRemoveList {
+ if (result.mutableLinksRemoveList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableLinksRemoveList;
+}
+- (int32_t) linksRemoveAtIndex:(int32_t) index {
+ return [result linksRemoveAtIndex:index];
+}
+- (MPChannelState_Builder*) replaceLinksRemoveAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableLinksRemoveList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPChannelState_Builder*) addLinksRemove:(int32_t) value {
+ if (result.mutableLinksRemoveList == nil) {
+ result.mutableLinksRemoveList = [NSMutableArray array];
+ }
+ [result.mutableLinksRemoveList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPChannelState_Builder*) addAllLinksRemove:(NSArray*) values {
+ if (result.mutableLinksRemoveList == nil) {
+ result.mutableLinksRemoveList = [NSMutableArray array];
+ }
+ [result.mutableLinksRemoveList addObjectsFromArray:values];
+ return self;
+}
+- (MPChannelState_Builder*) clearLinksRemoveList {
+ result.mutableLinksRemoveList = nil;
+ return self;
+}
+- (BOOL) hasTemporary {
+ return result.hasTemporary;
+}
+- (BOOL) temporary {
+ return result.temporary;
+}
+- (MPChannelState_Builder*) setTemporary:(BOOL) value {
+ result.hasTemporary = YES;
+ result.temporary = value;
+ return self;
+}
+- (MPChannelState_Builder*) clearTemporary {
+ result.hasTemporary = NO;
+ result.temporary = NO;
+ return self;
+}
+- (BOOL) hasPosition {
+ return result.hasPosition;
+}
+- (int32_t) position {
+ return result.position;
+}
+- (MPChannelState_Builder*) setPosition:(int32_t) value {
+ result.hasPosition = YES;
+ result.position = value;
+ return self;
+}
+- (MPChannelState_Builder*) clearPosition {
+ result.hasPosition = NO;
+ result.position = 0;
+ return self;
+}
+- (BOOL) hasDescriptionHash {
+ return result.hasDescriptionHash;
+}
+- (NSData*) descriptionHash {
+ return result.descriptionHash;
+}
+- (MPChannelState_Builder*) setDescriptionHash:(NSData*) value {
+ result.hasDescriptionHash = YES;
+ result.descriptionHash = value;
+ return self;
+}
+- (MPChannelState_Builder*) clearDescriptionHash {
+ result.hasDescriptionHash = NO;
+ result.descriptionHash = [NSData data];
+ return self;
+}
+@end
+
+@interface MPUserRemove ()
+@property int32_t session;
+@property int32_t actor;
+@property (retain) NSString* reason;
+@property BOOL ban;
+@end
+
+@implementation MPUserRemove
+
+- (BOOL) hasSession {
+ return !!hasSession_;
+}
+- (void) setHasSession:(BOOL) value {
+ hasSession_ = !!value;
+}
+@synthesize session;
+- (BOOL) hasActor {
+ return !!hasActor_;
+}
+- (void) setHasActor:(BOOL) value {
+ hasActor_ = !!value;
+}
+@synthesize actor;
+- (BOOL) hasReason {
+ return !!hasReason_;
+}
+- (void) setHasReason:(BOOL) value {
+ hasReason_ = !!value;
+}
+@synthesize reason;
+- (BOOL) hasBan {
+ return !!hasBan_;
+}
+- (void) setHasBan:(BOOL) value {
+ hasBan_ = !!value;
+}
+- (BOOL) ban {
+ return !!ban_;
+}
+- (void) setBan:(BOOL) value {
+ ban_ = !!value;
+}
+- (void) dealloc {
+ self.reason = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.session = 0;
+ self.actor = 0;
+ self.reason = @"";
+ self.ban = NO;
+ }
+ return self;
+}
+static MPUserRemove* defaultMPUserRemoveInstance = nil;
++ (void) initialize {
+ if (self == [MPUserRemove class]) {
+ defaultMPUserRemoveInstance = [[MPUserRemove alloc] init];
+ }
+}
++ (MPUserRemove*) defaultInstance {
+ return defaultMPUserRemoveInstance;
+}
+- (MPUserRemove*) defaultInstance {
+ return defaultMPUserRemoveInstance;
+}
+- (BOOL) isInitialized {
+ if (!self.hasSession) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasSession) {
+ [output writeUInt32:1 value:self.session];
+ }
+ if (self.hasActor) {
+ [output writeUInt32:2 value:self.actor];
+ }
+ if (self.hasReason) {
+ [output writeString:3 value:self.reason];
+ }
+ if (self.hasBan) {
+ [output writeBool:4 value:self.ban];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasSession) {
+ size += computeUInt32Size(1, self.session);
+ }
+ if (self.hasActor) {
+ size += computeUInt32Size(2, self.actor);
+ }
+ if (self.hasReason) {
+ size += computeStringSize(3, self.reason);
+ }
+ if (self.hasBan) {
+ size += computeBoolSize(4, self.ban);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPUserRemove*) parseFromData:(NSData*) data {
+ return (MPUserRemove*)[[[MPUserRemove builder] mergeFromData:data] build];
+}
++ (MPUserRemove*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserRemove*)[[[MPUserRemove builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPUserRemove*) parseFromInputStream:(NSInputStream*) input {
+ return (MPUserRemove*)[[[MPUserRemove builder] mergeFromInputStream:input] build];
+}
++ (MPUserRemove*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserRemove*)[[[MPUserRemove builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPUserRemove*)[[[MPUserRemove builder] mergeFromCodedInputStream:input] build];
+}
++ (MPUserRemove*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserRemove*)[[[MPUserRemove builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserRemove_Builder*) builder {
+ return [[[MPUserRemove_Builder alloc] init] autorelease];
+}
++ (MPUserRemove_Builder*) builderWithPrototype:(MPUserRemove*) prototype {
+ return [[MPUserRemove builder] mergeFrom:prototype];
+}
+- (MPUserRemove_Builder*) builder {
+ return [MPUserRemove builder];
+}
+@end
+
+@interface MPUserRemove_Builder()
+@property (retain) MPUserRemove* result;
+@end
+
+@implementation MPUserRemove_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPUserRemove alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPUserRemove_Builder*) clear {
+ self.result = [[[MPUserRemove alloc] init] autorelease];
+ return self;
+}
+- (MPUserRemove_Builder*) clone {
+ return [MPUserRemove builderWithPrototype:result];
+}
+- (MPUserRemove*) defaultInstance {
+ return [MPUserRemove defaultInstance];
+}
+- (MPUserRemove*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPUserRemove*) buildPartial {
+ MPUserRemove* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPUserRemove_Builder*) mergeFrom:(MPUserRemove*) other {
+ if (other == [MPUserRemove defaultInstance]) {
+ return self;
+ }
+ if (other.hasSession) {
+ [self setSession:other.session];
+ }
+ if (other.hasActor) {
+ [self setActor:other.actor];
+ }
+ if (other.hasReason) {
+ [self setReason:other.reason];
+ }
+ if (other.hasBan) {
+ [self setBan:other.ban];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPUserRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPUserRemove_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setSession:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setActor:[input readUInt32]];
+ break;
+ }
+ case 26: {
+ [self setReason:[input readString]];
+ break;
+ }
+ case 32: {
+ [self setBan:[input readBool]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasSession {
+ return result.hasSession;
+}
+- (int32_t) session {
+ return result.session;
+}
+- (MPUserRemove_Builder*) setSession:(int32_t) value {
+ result.hasSession = YES;
+ result.session = value;
+ return self;
+}
+- (MPUserRemove_Builder*) clearSession {
+ result.hasSession = NO;
+ result.session = 0;
+ return self;
+}
+- (BOOL) hasActor {
+ return result.hasActor;
+}
+- (int32_t) actor {
+ return result.actor;
+}
+- (MPUserRemove_Builder*) setActor:(int32_t) value {
+ result.hasActor = YES;
+ result.actor = value;
+ return self;
+}
+- (MPUserRemove_Builder*) clearActor {
+ result.hasActor = NO;
+ result.actor = 0;
+ return self;
+}
+- (BOOL) hasReason {
+ return result.hasReason;
+}
+- (NSString*) reason {
+ return result.reason;
+}
+- (MPUserRemove_Builder*) setReason:(NSString*) value {
+ result.hasReason = YES;
+ result.reason = value;
+ return self;
+}
+- (MPUserRemove_Builder*) clearReason {
+ result.hasReason = NO;
+ result.reason = @"";
+ return self;
+}
+- (BOOL) hasBan {
+ return result.hasBan;
+}
+- (BOOL) ban {
+ return result.ban;
+}
+- (MPUserRemove_Builder*) setBan:(BOOL) value {
+ result.hasBan = YES;
+ result.ban = value;
+ return self;
+}
+- (MPUserRemove_Builder*) clearBan {
+ result.hasBan = NO;
+ result.ban = NO;
+ return self;
+}
+@end
+
+@interface MPUserState ()
+@property int32_t session;
+@property int32_t actor;
+@property (retain) NSString* name;
+@property int32_t userId;
+@property int32_t channelId;
+@property BOOL mute;
+@property BOOL deaf;
+@property BOOL suppress;
+@property BOOL selfMute;
+@property BOOL selfDeaf;
+@property (retain) NSData* texture;
+@property (retain) NSData* pluginContext;
+@property (retain) NSString* pluginIdentity;
+@property (retain) NSString* comment;
+@property (retain) NSString* hash;
+@property (retain) NSData* commentHash;
+@property (retain) NSData* textureHash;
+@end
+
+@implementation MPUserState
+
+- (BOOL) hasSession {
+ return !!hasSession_;
+}
+- (void) setHasSession:(BOOL) value {
+ hasSession_ = !!value;
+}
+@synthesize session;
+- (BOOL) hasActor {
+ return !!hasActor_;
+}
+- (void) setHasActor:(BOOL) value {
+ hasActor_ = !!value;
+}
+@synthesize actor;
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+- (BOOL) hasUserId {
+ return !!hasUserId_;
+}
+- (void) setHasUserId:(BOOL) value {
+ hasUserId_ = !!value;
+}
+@synthesize userId;
+- (BOOL) hasChannelId {
+ return !!hasChannelId_;
+}
+- (void) setHasChannelId:(BOOL) value {
+ hasChannelId_ = !!value;
+}
+@synthesize channelId;
+- (BOOL) hasMute {
+ return !!hasMute_;
+}
+- (void) setHasMute:(BOOL) value {
+ hasMute_ = !!value;
+}
+- (BOOL) mute {
+ return !!mute_;
+}
+- (void) setMute:(BOOL) value {
+ mute_ = !!value;
+}
+- (BOOL) hasDeaf {
+ return !!hasDeaf_;
+}
+- (void) setHasDeaf:(BOOL) value {
+ hasDeaf_ = !!value;
+}
+- (BOOL) deaf {
+ return !!deaf_;
+}
+- (void) setDeaf:(BOOL) value {
+ deaf_ = !!value;
+}
+- (BOOL) hasSuppress {
+ return !!hasSuppress_;
+}
+- (void) setHasSuppress:(BOOL) value {
+ hasSuppress_ = !!value;
+}
+- (BOOL) suppress {
+ return !!suppress_;
+}
+- (void) setSuppress:(BOOL) value {
+ suppress_ = !!value;
+}
+- (BOOL) hasSelfMute {
+ return !!hasSelfMute_;
+}
+- (void) setHasSelfMute:(BOOL) value {
+ hasSelfMute_ = !!value;
+}
+- (BOOL) selfMute {
+ return !!selfMute_;
+}
+- (void) setSelfMute:(BOOL) value {
+ selfMute_ = !!value;
+}
+- (BOOL) hasSelfDeaf {
+ return !!hasSelfDeaf_;
+}
+- (void) setHasSelfDeaf:(BOOL) value {
+ hasSelfDeaf_ = !!value;
+}
+- (BOOL) selfDeaf {
+ return !!selfDeaf_;
+}
+- (void) setSelfDeaf:(BOOL) value {
+ selfDeaf_ = !!value;
+}
+- (BOOL) hasTexture {
+ return !!hasTexture_;
+}
+- (void) setHasTexture:(BOOL) value {
+ hasTexture_ = !!value;
+}
+@synthesize texture;
+- (BOOL) hasPluginContext {
+ return !!hasPluginContext_;
+}
+- (void) setHasPluginContext:(BOOL) value {
+ hasPluginContext_ = !!value;
+}
+@synthesize pluginContext;
+- (BOOL) hasPluginIdentity {
+ return !!hasPluginIdentity_;
+}
+- (void) setHasPluginIdentity:(BOOL) value {
+ hasPluginIdentity_ = !!value;
+}
+@synthesize pluginIdentity;
+- (BOOL) hasComment {
+ return !!hasComment_;
+}
+- (void) setHasComment:(BOOL) value {
+ hasComment_ = !!value;
+}
+@synthesize comment;
+- (BOOL) hasHash {
+ return !!hasHash_;
+}
+- (void) setHasHash:(BOOL) value {
+ hasHash_ = !!value;
+}
+@synthesize hash;
+- (BOOL) hasCommentHash {
+ return !!hasCommentHash_;
+}
+- (void) setHasCommentHash:(BOOL) value {
+ hasCommentHash_ = !!value;
+}
+@synthesize commentHash;
+- (BOOL) hasTextureHash {
+ return !!hasTextureHash_;
+}
+- (void) setHasTextureHash:(BOOL) value {
+ hasTextureHash_ = !!value;
+}
+@synthesize textureHash;
+- (void) dealloc {
+ self.name = nil;
+ self.texture = nil;
+ self.pluginContext = nil;
+ self.pluginIdentity = nil;
+ self.comment = nil;
+ self.hash = nil;
+ self.commentHash = nil;
+ self.textureHash = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.session = 0;
+ self.actor = 0;
+ self.name = @"";
+ self.userId = 0;
+ self.channelId = 0;
+ self.mute = NO;
+ self.deaf = NO;
+ self.suppress = NO;
+ self.selfMute = NO;
+ self.selfDeaf = NO;
+ self.texture = [NSData data];
+ self.pluginContext = [NSData data];
+ self.pluginIdentity = @"";
+ self.comment = @"";
+ self.hash = @"";
+ self.commentHash = [NSData data];
+ self.textureHash = [NSData data];
+ }
+ return self;
+}
+static MPUserState* defaultMPUserStateInstance = nil;
++ (void) initialize {
+ if (self == [MPUserState class]) {
+ defaultMPUserStateInstance = [[MPUserState alloc] init];
+ }
+}
++ (MPUserState*) defaultInstance {
+ return defaultMPUserStateInstance;
+}
+- (MPUserState*) defaultInstance {
+ return defaultMPUserStateInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasSession) {
+ [output writeUInt32:1 value:self.session];
+ }
+ if (self.hasActor) {
+ [output writeUInt32:2 value:self.actor];
+ }
+ if (self.hasName) {
+ [output writeString:3 value:self.name];
+ }
+ if (self.hasUserId) {
+ [output writeUInt32:4 value:self.userId];
+ }
+ if (self.hasChannelId) {
+ [output writeUInt32:5 value:self.channelId];
+ }
+ if (self.hasMute) {
+ [output writeBool:6 value:self.mute];
+ }
+ if (self.hasDeaf) {
+ [output writeBool:7 value:self.deaf];
+ }
+ if (self.hasSuppress) {
+ [output writeBool:8 value:self.suppress];
+ }
+ if (self.hasSelfMute) {
+ [output writeBool:9 value:self.selfMute];
+ }
+ if (self.hasSelfDeaf) {
+ [output writeBool:10 value:self.selfDeaf];
+ }
+ if (self.hasTexture) {
+ [output writeData:11 value:self.texture];
+ }
+ if (self.hasPluginContext) {
+ [output writeData:12 value:self.pluginContext];
+ }
+ if (self.hasPluginIdentity) {
+ [output writeString:13 value:self.pluginIdentity];
+ }
+ if (self.hasComment) {
+ [output writeString:14 value:self.comment];
+ }
+ if (self.hasHash) {
+ [output writeString:15 value:self.hash];
+ }
+ if (self.hasCommentHash) {
+ [output writeData:16 value:self.commentHash];
+ }
+ if (self.hasTextureHash) {
+ [output writeData:17 value:self.textureHash];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasSession) {
+ size += computeUInt32Size(1, self.session);
+ }
+ if (self.hasActor) {
+ size += computeUInt32Size(2, self.actor);
+ }
+ if (self.hasName) {
+ size += computeStringSize(3, self.name);
+ }
+ if (self.hasUserId) {
+ size += computeUInt32Size(4, self.userId);
+ }
+ if (self.hasChannelId) {
+ size += computeUInt32Size(5, self.channelId);
+ }
+ if (self.hasMute) {
+ size += computeBoolSize(6, self.mute);
+ }
+ if (self.hasDeaf) {
+ size += computeBoolSize(7, self.deaf);
+ }
+ if (self.hasSuppress) {
+ size += computeBoolSize(8, self.suppress);
+ }
+ if (self.hasSelfMute) {
+ size += computeBoolSize(9, self.selfMute);
+ }
+ if (self.hasSelfDeaf) {
+ size += computeBoolSize(10, self.selfDeaf);
+ }
+ if (self.hasTexture) {
+ size += computeDataSize(11, self.texture);
+ }
+ if (self.hasPluginContext) {
+ size += computeDataSize(12, self.pluginContext);
+ }
+ if (self.hasPluginIdentity) {
+ size += computeStringSize(13, self.pluginIdentity);
+ }
+ if (self.hasComment) {
+ size += computeStringSize(14, self.comment);
+ }
+ if (self.hasHash) {
+ size += computeStringSize(15, self.hash);
+ }
+ if (self.hasCommentHash) {
+ size += computeDataSize(16, self.commentHash);
+ }
+ if (self.hasTextureHash) {
+ size += computeDataSize(17, self.textureHash);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPUserState*) parseFromData:(NSData*) data {
+ return (MPUserState*)[[[MPUserState builder] mergeFromData:data] build];
+}
++ (MPUserState*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserState*)[[[MPUserState builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPUserState*) parseFromInputStream:(NSInputStream*) input {
+ return (MPUserState*)[[[MPUserState builder] mergeFromInputStream:input] build];
+}
++ (MPUserState*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserState*)[[[MPUserState builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserState*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPUserState*)[[[MPUserState builder] mergeFromCodedInputStream:input] build];
+}
++ (MPUserState*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserState*)[[[MPUserState builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserState_Builder*) builder {
+ return [[[MPUserState_Builder alloc] init] autorelease];
+}
++ (MPUserState_Builder*) builderWithPrototype:(MPUserState*) prototype {
+ return [[MPUserState builder] mergeFrom:prototype];
+}
+- (MPUserState_Builder*) builder {
+ return [MPUserState builder];
+}
+@end
+
+@interface MPUserState_Builder()
+@property (retain) MPUserState* result;
+@end
+
+@implementation MPUserState_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPUserState alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPUserState_Builder*) clear {
+ self.result = [[[MPUserState alloc] init] autorelease];
+ return self;
+}
+- (MPUserState_Builder*) clone {
+ return [MPUserState builderWithPrototype:result];
+}
+- (MPUserState*) defaultInstance {
+ return [MPUserState defaultInstance];
+}
+- (MPUserState*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPUserState*) buildPartial {
+ MPUserState* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPUserState_Builder*) mergeFrom:(MPUserState*) other {
+ if (other == [MPUserState defaultInstance]) {
+ return self;
+ }
+ if (other.hasSession) {
+ [self setSession:other.session];
+ }
+ if (other.hasActor) {
+ [self setActor:other.actor];
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.hasUserId) {
+ [self setUserId:other.userId];
+ }
+ if (other.hasChannelId) {
+ [self setChannelId:other.channelId];
+ }
+ if (other.hasMute) {
+ [self setMute:other.mute];
+ }
+ if (other.hasDeaf) {
+ [self setDeaf:other.deaf];
+ }
+ if (other.hasSuppress) {
+ [self setSuppress:other.suppress];
+ }
+ if (other.hasSelfMute) {
+ [self setSelfMute:other.selfMute];
+ }
+ if (other.hasSelfDeaf) {
+ [self setSelfDeaf:other.selfDeaf];
+ }
+ if (other.hasTexture) {
+ [self setTexture:other.texture];
+ }
+ if (other.hasPluginContext) {
+ [self setPluginContext:other.pluginContext];
+ }
+ if (other.hasPluginIdentity) {
+ [self setPluginIdentity:other.pluginIdentity];
+ }
+ if (other.hasComment) {
+ [self setComment:other.comment];
+ }
+ if (other.hasHash) {
+ [self setHash:other.hash];
+ }
+ if (other.hasCommentHash) {
+ [self setCommentHash:other.commentHash];
+ }
+ if (other.hasTextureHash) {
+ [self setTextureHash:other.textureHash];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPUserState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPUserState_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setSession:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setActor:[input readUInt32]];
+ break;
+ }
+ case 26: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 32: {
+ [self setUserId:[input readUInt32]];
+ break;
+ }
+ case 40: {
+ [self setChannelId:[input readUInt32]];
+ break;
+ }
+ case 48: {
+ [self setMute:[input readBool]];
+ break;
+ }
+ case 56: {
+ [self setDeaf:[input readBool]];
+ break;
+ }
+ case 64: {
+ [self setSuppress:[input readBool]];
+ break;
+ }
+ case 72: {
+ [self setSelfMute:[input readBool]];
+ break;
+ }
+ case 80: {
+ [self setSelfDeaf:[input readBool]];
+ break;
+ }
+ case 90: {
+ [self setTexture:[input readData]];
+ break;
+ }
+ case 98: {
+ [self setPluginContext:[input readData]];
+ break;
+ }
+ case 106: {
+ [self setPluginIdentity:[input readString]];
+ break;
+ }
+ case 114: {
+ [self setComment:[input readString]];
+ break;
+ }
+ case 122: {
+ [self setHash:[input readString]];
+ break;
+ }
+ case 130: {
+ [self setCommentHash:[input readData]];
+ break;
+ }
+ case 138: {
+ [self setTextureHash:[input readData]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasSession {
+ return result.hasSession;
+}
+- (int32_t) session {
+ return result.session;
+}
+- (MPUserState_Builder*) setSession:(int32_t) value {
+ result.hasSession = YES;
+ result.session = value;
+ return self;
+}
+- (MPUserState_Builder*) clearSession {
+ result.hasSession = NO;
+ result.session = 0;
+ return self;
+}
+- (BOOL) hasActor {
+ return result.hasActor;
+}
+- (int32_t) actor {
+ return result.actor;
+}
+- (MPUserState_Builder*) setActor:(int32_t) value {
+ result.hasActor = YES;
+ result.actor = value;
+ return self;
+}
+- (MPUserState_Builder*) clearActor {
+ result.hasActor = NO;
+ result.actor = 0;
+ return self;
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (MPUserState_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (MPUserState_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (BOOL) hasUserId {
+ return result.hasUserId;
+}
+- (int32_t) userId {
+ return result.userId;
+}
+- (MPUserState_Builder*) setUserId:(int32_t) value {
+ result.hasUserId = YES;
+ result.userId = value;
+ return self;
+}
+- (MPUserState_Builder*) clearUserId {
+ result.hasUserId = NO;
+ result.userId = 0;
+ return self;
+}
+- (BOOL) hasChannelId {
+ return result.hasChannelId;
+}
+- (int32_t) channelId {
+ return result.channelId;
+}
+- (MPUserState_Builder*) setChannelId:(int32_t) value {
+ result.hasChannelId = YES;
+ result.channelId = value;
+ return self;
+}
+- (MPUserState_Builder*) clearChannelId {
+ result.hasChannelId = NO;
+ result.channelId = 0;
+ return self;
+}
+- (BOOL) hasMute {
+ return result.hasMute;
+}
+- (BOOL) mute {
+ return result.mute;
+}
+- (MPUserState_Builder*) setMute:(BOOL) value {
+ result.hasMute = YES;
+ result.mute = value;
+ return self;
+}
+- (MPUserState_Builder*) clearMute {
+ result.hasMute = NO;
+ result.mute = NO;
+ return self;
+}
+- (BOOL) hasDeaf {
+ return result.hasDeaf;
+}
+- (BOOL) deaf {
+ return result.deaf;
+}
+- (MPUserState_Builder*) setDeaf:(BOOL) value {
+ result.hasDeaf = YES;
+ result.deaf = value;
+ return self;
+}
+- (MPUserState_Builder*) clearDeaf {
+ result.hasDeaf = NO;
+ result.deaf = NO;
+ return self;
+}
+- (BOOL) hasSuppress {
+ return result.hasSuppress;
+}
+- (BOOL) suppress {
+ return result.suppress;
+}
+- (MPUserState_Builder*) setSuppress:(BOOL) value {
+ result.hasSuppress = YES;
+ result.suppress = value;
+ return self;
+}
+- (MPUserState_Builder*) clearSuppress {
+ result.hasSuppress = NO;
+ result.suppress = NO;
+ return self;
+}
+- (BOOL) hasSelfMute {
+ return result.hasSelfMute;
+}
+- (BOOL) selfMute {
+ return result.selfMute;
+}
+- (MPUserState_Builder*) setSelfMute:(BOOL) value {
+ result.hasSelfMute = YES;
+ result.selfMute = value;
+ return self;
+}
+- (MPUserState_Builder*) clearSelfMute {
+ result.hasSelfMute = NO;
+ result.selfMute = NO;
+ return self;
+}
+- (BOOL) hasSelfDeaf {
+ return result.hasSelfDeaf;
+}
+- (BOOL) selfDeaf {
+ return result.selfDeaf;
+}
+- (MPUserState_Builder*) setSelfDeaf:(BOOL) value {
+ result.hasSelfDeaf = YES;
+ result.selfDeaf = value;
+ return self;
+}
+- (MPUserState_Builder*) clearSelfDeaf {
+ result.hasSelfDeaf = NO;
+ result.selfDeaf = NO;
+ return self;
+}
+- (BOOL) hasTexture {
+ return result.hasTexture;
+}
+- (NSData*) texture {
+ return result.texture;
+}
+- (MPUserState_Builder*) setTexture:(NSData*) value {
+ result.hasTexture = YES;
+ result.texture = value;
+ return self;
+}
+- (MPUserState_Builder*) clearTexture {
+ result.hasTexture = NO;
+ result.texture = [NSData data];
+ return self;
+}
+- (BOOL) hasPluginContext {
+ return result.hasPluginContext;
+}
+- (NSData*) pluginContext {
+ return result.pluginContext;
+}
+- (MPUserState_Builder*) setPluginContext:(NSData*) value {
+ result.hasPluginContext = YES;
+ result.pluginContext = value;
+ return self;
+}
+- (MPUserState_Builder*) clearPluginContext {
+ result.hasPluginContext = NO;
+ result.pluginContext = [NSData data];
+ return self;
+}
+- (BOOL) hasPluginIdentity {
+ return result.hasPluginIdentity;
+}
+- (NSString*) pluginIdentity {
+ return result.pluginIdentity;
+}
+- (MPUserState_Builder*) setPluginIdentity:(NSString*) value {
+ result.hasPluginIdentity = YES;
+ result.pluginIdentity = value;
+ return self;
+}
+- (MPUserState_Builder*) clearPluginIdentity {
+ result.hasPluginIdentity = NO;
+ result.pluginIdentity = @"";
+ return self;
+}
+- (BOOL) hasComment {
+ return result.hasComment;
+}
+- (NSString*) comment {
+ return result.comment;
+}
+- (MPUserState_Builder*) setComment:(NSString*) value {
+ result.hasComment = YES;
+ result.comment = value;
+ return self;
+}
+- (MPUserState_Builder*) clearComment {
+ result.hasComment = NO;
+ result.comment = @"";
+ return self;
+}
+- (BOOL) hasHash {
+ return result.hasHash;
+}
+- (NSString*) hash {
+ return result.hash;
+}
+- (MPUserState_Builder*) setHash:(NSString*) value {
+ result.hasHash = YES;
+ result.hash = value;
+ return self;
+}
+- (MPUserState_Builder*) clearHash {
+ result.hasHash = NO;
+ result.hash = @"";
+ return self;
+}
+- (BOOL) hasCommentHash {
+ return result.hasCommentHash;
+}
+- (NSData*) commentHash {
+ return result.commentHash;
+}
+- (MPUserState_Builder*) setCommentHash:(NSData*) value {
+ result.hasCommentHash = YES;
+ result.commentHash = value;
+ return self;
+}
+- (MPUserState_Builder*) clearCommentHash {
+ result.hasCommentHash = NO;
+ result.commentHash = [NSData data];
+ return self;
+}
+- (BOOL) hasTextureHash {
+ return result.hasTextureHash;
+}
+- (NSData*) textureHash {
+ return result.textureHash;
+}
+- (MPUserState_Builder*) setTextureHash:(NSData*) value {
+ result.hasTextureHash = YES;
+ result.textureHash = value;
+ return self;
+}
+- (MPUserState_Builder*) clearTextureHash {
+ result.hasTextureHash = NO;
+ result.textureHash = [NSData data];
+ return self;
+}
+@end
+
+@interface MPBanList ()
+@property (retain) NSMutableArray* mutableBansList;
+@property BOOL query;
+@end
+
+@implementation MPBanList
+
+@synthesize mutableBansList;
+- (BOOL) hasQuery {
+ return !!hasQuery_;
+}
+- (void) setHasQuery:(BOOL) value {
+ hasQuery_ = !!value;
+}
+- (BOOL) query {
+ return !!query_;
+}
+- (void) setQuery:(BOOL) value {
+ query_ = !!value;
+}
+- (void) dealloc {
+ self.mutableBansList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.query = NO;
+ }
+ return self;
+}
+static MPBanList* defaultMPBanListInstance = nil;
++ (void) initialize {
+ if (self == [MPBanList class]) {
+ defaultMPBanListInstance = [[MPBanList alloc] init];
+ }
+}
++ (MPBanList*) defaultInstance {
+ return defaultMPBanListInstance;
+}
+- (MPBanList*) defaultInstance {
+ return defaultMPBanListInstance;
+}
+- (NSArray*) bansList {
+ return mutableBansList;
+}
+- (MPBanList_BanEntry*) bansAtIndex:(int32_t) index {
+ id value = [mutableBansList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (MPBanList_BanEntry* element in self.bansList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (MPBanList_BanEntry* element in self.bansList) {
+ [output writeMessage:1 value:element];
+ }
+ if (self.hasQuery) {
+ [output writeBool:2 value:self.query];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ for (MPBanList_BanEntry* element in self.bansList) {
+ size += computeMessageSize(1, element);
+ }
+ if (self.hasQuery) {
+ size += computeBoolSize(2, self.query);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPBanList*) parseFromData:(NSData*) data {
+ return (MPBanList*)[[[MPBanList builder] mergeFromData:data] build];
+}
++ (MPBanList*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPBanList*)[[[MPBanList builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPBanList*) parseFromInputStream:(NSInputStream*) input {
+ return (MPBanList*)[[[MPBanList builder] mergeFromInputStream:input] build];
+}
++ (MPBanList*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPBanList*)[[[MPBanList builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPBanList*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPBanList*)[[[MPBanList builder] mergeFromCodedInputStream:input] build];
+}
++ (MPBanList*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPBanList*)[[[MPBanList builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPBanList_Builder*) builder {
+ return [[[MPBanList_Builder alloc] init] autorelease];
+}
++ (MPBanList_Builder*) builderWithPrototype:(MPBanList*) prototype {
+ return [[MPBanList builder] mergeFrom:prototype];
+}
+- (MPBanList_Builder*) builder {
+ return [MPBanList builder];
+}
+@end
+
+@interface MPBanList_BanEntry ()
+@property (retain) NSData* address;
+@property int32_t mask;
+@property (retain) NSString* name;
+@property (retain) NSString* hash;
+@property (retain) NSString* reason;
+@property (retain) NSString* start;
+@property int32_t duration;
+@end
+
+@implementation MPBanList_BanEntry
+
+- (BOOL) hasAddress {
+ return !!hasAddress_;
+}
+- (void) setHasAddress:(BOOL) value {
+ hasAddress_ = !!value;
+}
+@synthesize address;
+- (BOOL) hasMask {
+ return !!hasMask_;
+}
+- (void) setHasMask:(BOOL) value {
+ hasMask_ = !!value;
+}
+@synthesize mask;
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+- (BOOL) hasHash {
+ return !!hasHash_;
+}
+- (void) setHasHash:(BOOL) value {
+ hasHash_ = !!value;
+}
+@synthesize hash;
+- (BOOL) hasReason {
+ return !!hasReason_;
+}
+- (void) setHasReason:(BOOL) value {
+ hasReason_ = !!value;
+}
+@synthesize reason;
+- (BOOL) hasStart {
+ return !!hasStart_;
+}
+- (void) setHasStart:(BOOL) value {
+ hasStart_ = !!value;
+}
+@synthesize start;
+- (BOOL) hasDuration {
+ return !!hasDuration_;
+}
+- (void) setHasDuration:(BOOL) value {
+ hasDuration_ = !!value;
+}
+@synthesize duration;
+- (void) dealloc {
+ self.address = nil;
+ self.name = nil;
+ self.hash = nil;
+ self.reason = nil;
+ self.start = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.address = [NSData data];
+ self.mask = 0;
+ self.name = @"";
+ self.hash = @"";
+ self.reason = @"";
+ self.start = @"";
+ self.duration = 0;
+ }
+ return self;
+}
+static MPBanList_BanEntry* defaultMPBanList_BanEntryInstance = nil;
++ (void) initialize {
+ if (self == [MPBanList_BanEntry class]) {
+ defaultMPBanList_BanEntryInstance = [[MPBanList_BanEntry alloc] init];
+ }
+}
++ (MPBanList_BanEntry*) defaultInstance {
+ return defaultMPBanList_BanEntryInstance;
+}
+- (MPBanList_BanEntry*) defaultInstance {
+ return defaultMPBanList_BanEntryInstance;
+}
+- (BOOL) isInitialized {
+ if (!self.hasAddress) {
+ return NO;
+ }
+ if (!self.hasMask) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasAddress) {
+ [output writeData:1 value:self.address];
+ }
+ if (self.hasMask) {
+ [output writeUInt32:2 value:self.mask];
+ }
+ if (self.hasName) {
+ [output writeString:3 value:self.name];
+ }
+ if (self.hasHash) {
+ [output writeString:4 value:self.hash];
+ }
+ if (self.hasReason) {
+ [output writeString:5 value:self.reason];
+ }
+ if (self.hasStart) {
+ [output writeString:6 value:self.start];
+ }
+ if (self.hasDuration) {
+ [output writeUInt32:7 value:self.duration];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasAddress) {
+ size += computeDataSize(1, self.address);
+ }
+ if (self.hasMask) {
+ size += computeUInt32Size(2, self.mask);
+ }
+ if (self.hasName) {
+ size += computeStringSize(3, self.name);
+ }
+ if (self.hasHash) {
+ size += computeStringSize(4, self.hash);
+ }
+ if (self.hasReason) {
+ size += computeStringSize(5, self.reason);
+ }
+ if (self.hasStart) {
+ size += computeStringSize(6, self.start);
+ }
+ if (self.hasDuration) {
+ size += computeUInt32Size(7, self.duration);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPBanList_BanEntry*) parseFromData:(NSData*) data {
+ return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromData:data] build];
+}
++ (MPBanList_BanEntry*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPBanList_BanEntry*) parseFromInputStream:(NSInputStream*) input {
+ return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromInputStream:input] build];
+}
++ (MPBanList_BanEntry*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPBanList_BanEntry*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromCodedInputStream:input] build];
+}
++ (MPBanList_BanEntry*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPBanList_BanEntry*)[[[MPBanList_BanEntry builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPBanList_BanEntry_Builder*) builder {
+ return [[[MPBanList_BanEntry_Builder alloc] init] autorelease];
+}
++ (MPBanList_BanEntry_Builder*) builderWithPrototype:(MPBanList_BanEntry*) prototype {
+ return [[MPBanList_BanEntry builder] mergeFrom:prototype];
+}
+- (MPBanList_BanEntry_Builder*) builder {
+ return [MPBanList_BanEntry builder];
+}
+@end
+
+@interface MPBanList_BanEntry_Builder()
+@property (retain) MPBanList_BanEntry* result;
+@end
+
+@implementation MPBanList_BanEntry_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPBanList_BanEntry alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPBanList_BanEntry_Builder*) clear {
+ self.result = [[[MPBanList_BanEntry alloc] init] autorelease];
+ return self;
+}
+- (MPBanList_BanEntry_Builder*) clone {
+ return [MPBanList_BanEntry builderWithPrototype:result];
+}
+- (MPBanList_BanEntry*) defaultInstance {
+ return [MPBanList_BanEntry defaultInstance];
+}
+- (MPBanList_BanEntry*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPBanList_BanEntry*) buildPartial {
+ MPBanList_BanEntry* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPBanList_BanEntry_Builder*) mergeFrom:(MPBanList_BanEntry*) other {
+ if (other == [MPBanList_BanEntry defaultInstance]) {
+ return self;
+ }
+ if (other.hasAddress) {
+ [self setAddress:other.address];
+ }
+ if (other.hasMask) {
+ [self setMask:other.mask];
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.hasHash) {
+ [self setHash:other.hash];
+ }
+ if (other.hasReason) {
+ [self setReason:other.reason];
+ }
+ if (other.hasStart) {
+ [self setStart:other.start];
+ }
+ if (other.hasDuration) {
+ [self setDuration:other.duration];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPBanList_BanEntry_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPBanList_BanEntry_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setAddress:[input readData]];
+ break;
+ }
+ case 16: {
+ [self setMask:[input readUInt32]];
+ break;
+ }
+ case 26: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 34: {
+ [self setHash:[input readString]];
+ break;
+ }
+ case 42: {
+ [self setReason:[input readString]];
+ break;
+ }
+ case 50: {
+ [self setStart:[input readString]];
+ break;
+ }
+ case 56: {
+ [self setDuration:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasAddress {
+ return result.hasAddress;
+}
+- (NSData*) address {
+ return result.address;
+}
+- (MPBanList_BanEntry_Builder*) setAddress:(NSData*) value {
+ result.hasAddress = YES;
+ result.address = value;
+ return self;
+}
+- (MPBanList_BanEntry_Builder*) clearAddress {
+ result.hasAddress = NO;
+ result.address = [NSData data];
+ return self;
+}
+- (BOOL) hasMask {
+ return result.hasMask;
+}
+- (int32_t) mask {
+ return result.mask;
+}
+- (MPBanList_BanEntry_Builder*) setMask:(int32_t) value {
+ result.hasMask = YES;
+ result.mask = value;
+ return self;
+}
+- (MPBanList_BanEntry_Builder*) clearMask {
+ result.hasMask = NO;
+ result.mask = 0;
+ return self;
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (MPBanList_BanEntry_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (MPBanList_BanEntry_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (BOOL) hasHash {
+ return result.hasHash;
+}
+- (NSString*) hash {
+ return result.hash;
+}
+- (MPBanList_BanEntry_Builder*) setHash:(NSString*) value {
+ result.hasHash = YES;
+ result.hash = value;
+ return self;
+}
+- (MPBanList_BanEntry_Builder*) clearHash {
+ result.hasHash = NO;
+ result.hash = @"";
+ return self;
+}
+- (BOOL) hasReason {
+ return result.hasReason;
+}
+- (NSString*) reason {
+ return result.reason;
+}
+- (MPBanList_BanEntry_Builder*) setReason:(NSString*) value {
+ result.hasReason = YES;
+ result.reason = value;
+ return self;
+}
+- (MPBanList_BanEntry_Builder*) clearReason {
+ result.hasReason = NO;
+ result.reason = @"";
+ return self;
+}
+- (BOOL) hasStart {
+ return result.hasStart;
+}
+- (NSString*) start {
+ return result.start;
+}
+- (MPBanList_BanEntry_Builder*) setStart:(NSString*) value {
+ result.hasStart = YES;
+ result.start = value;
+ return self;
+}
+- (MPBanList_BanEntry_Builder*) clearStart {
+ result.hasStart = NO;
+ result.start = @"";
+ return self;
+}
+- (BOOL) hasDuration {
+ return result.hasDuration;
+}
+- (int32_t) duration {
+ return result.duration;
+}
+- (MPBanList_BanEntry_Builder*) setDuration:(int32_t) value {
+ result.hasDuration = YES;
+ result.duration = value;
+ return self;
+}
+- (MPBanList_BanEntry_Builder*) clearDuration {
+ result.hasDuration = NO;
+ result.duration = 0;
+ return self;
+}
+@end
+
+@interface MPBanList_Builder()
+@property (retain) MPBanList* result;
+@end
+
+@implementation MPBanList_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPBanList alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPBanList_Builder*) clear {
+ self.result = [[[MPBanList alloc] init] autorelease];
+ return self;
+}
+- (MPBanList_Builder*) clone {
+ return [MPBanList builderWithPrototype:result];
+}
+- (MPBanList*) defaultInstance {
+ return [MPBanList defaultInstance];
+}
+- (MPBanList*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPBanList*) buildPartial {
+ MPBanList* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPBanList_Builder*) mergeFrom:(MPBanList*) other {
+ if (other == [MPBanList defaultInstance]) {
+ return self;
+ }
+ if (other.mutableBansList.count > 0) {
+ if (result.mutableBansList == nil) {
+ result.mutableBansList = [NSMutableArray array];
+ }
+ [result.mutableBansList addObjectsFromArray:other.mutableBansList];
+ }
+ if (other.hasQuery) {
+ [self setQuery:other.query];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPBanList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPBanList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ MPBanList_BanEntry_Builder* subBuilder = [MPBanList_BanEntry builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addBans:[subBuilder buildPartial]];
+ break;
+ }
+ case 16: {
+ [self setQuery:[input readBool]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) bansList {
+ if (result.mutableBansList == nil) { return [NSArray array]; }
+ return result.mutableBansList;
+}
+- (MPBanList_BanEntry*) bansAtIndex:(int32_t) index {
+ return [result bansAtIndex:index];
+}
+- (MPBanList_Builder*) replaceBansAtIndex:(int32_t) index with:(MPBanList_BanEntry*) value {
+ [result.mutableBansList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (MPBanList_Builder*) addAllBans:(NSArray*) values {
+ if (result.mutableBansList == nil) {
+ result.mutableBansList = [NSMutableArray array];
+ }
+ [result.mutableBansList addObjectsFromArray:values];
+ return self;
+}
+- (MPBanList_Builder*) clearBansList {
+ result.mutableBansList = nil;
+ return self;
+}
+- (MPBanList_Builder*) addBans:(MPBanList_BanEntry*) value {
+ if (result.mutableBansList == nil) {
+ result.mutableBansList = [NSMutableArray array];
+ }
+ [result.mutableBansList addObject:value];
+ return self;
+}
+- (BOOL) hasQuery {
+ return result.hasQuery;
+}
+- (BOOL) query {
+ return result.query;
+}
+- (MPBanList_Builder*) setQuery:(BOOL) value {
+ result.hasQuery = YES;
+ result.query = value;
+ return self;
+}
+- (MPBanList_Builder*) clearQuery {
+ result.hasQuery = NO;
+ result.query = NO;
+ return self;
+}
+@end
+
+@interface MPTextMessage ()
+@property int32_t actor;
+@property (retain) NSMutableArray* mutableSessionList;
+@property (retain) NSMutableArray* mutableChannelIdList;
+@property (retain) NSMutableArray* mutableTreeIdList;
+@property (retain) NSString* message;
+@end
+
+@implementation MPTextMessage
+
+- (BOOL) hasActor {
+ return !!hasActor_;
+}
+- (void) setHasActor:(BOOL) value {
+ hasActor_ = !!value;
+}
+@synthesize actor;
+@synthesize mutableSessionList;
+@synthesize mutableChannelIdList;
+@synthesize mutableTreeIdList;
+- (BOOL) hasMessage {
+ return !!hasMessage_;
+}
+- (void) setHasMessage:(BOOL) value {
+ hasMessage_ = !!value;
+}
+@synthesize message;
+- (void) dealloc {
+ self.mutableSessionList = nil;
+ self.mutableChannelIdList = nil;
+ self.mutableTreeIdList = nil;
+ self.message = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.actor = 0;
+ self.message = @"";
+ }
+ return self;
+}
+static MPTextMessage* defaultMPTextMessageInstance = nil;
++ (void) initialize {
+ if (self == [MPTextMessage class]) {
+ defaultMPTextMessageInstance = [[MPTextMessage alloc] init];
+ }
+}
++ (MPTextMessage*) defaultInstance {
+ return defaultMPTextMessageInstance;
+}
+- (MPTextMessage*) defaultInstance {
+ return defaultMPTextMessageInstance;
+}
+- (NSArray*) sessionList {
+ return mutableSessionList;
+}
+- (int32_t) sessionAtIndex:(int32_t) index {
+ id value = [mutableSessionList objectAtIndex:index];
+ return [value intValue];
+}
+- (NSArray*) channelIdList {
+ return mutableChannelIdList;
+}
+- (int32_t) channelIdAtIndex:(int32_t) index {
+ id value = [mutableChannelIdList objectAtIndex:index];
+ return [value intValue];
+}
+- (NSArray*) treeIdList {
+ return mutableTreeIdList;
+}
+- (int32_t) treeIdAtIndex:(int32_t) index {
+ id value = [mutableTreeIdList objectAtIndex:index];
+ return [value intValue];
+}
+- (BOOL) isInitialized {
+ if (!self.hasMessage) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasActor) {
+ [output writeUInt32:1 value:self.actor];
+ }
+ for (NSNumber* value in self.mutableSessionList) {
+ [output writeUInt32:2 value:[value intValue]];
+ }
+ for (NSNumber* value in self.mutableChannelIdList) {
+ [output writeUInt32:3 value:[value intValue]];
+ }
+ for (NSNumber* value in self.mutableTreeIdList) {
+ [output writeUInt32:4 value:[value intValue]];
+ }
+ if (self.hasMessage) {
+ [output writeString:5 value:self.message];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasActor) {
+ size += computeUInt32Size(1, self.actor);
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableSessionList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableSessionList.count;
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableChannelIdList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableChannelIdList.count;
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableTreeIdList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableTreeIdList.count;
+ }
+ if (self.hasMessage) {
+ size += computeStringSize(5, self.message);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPTextMessage*) parseFromData:(NSData*) data {
+ return (MPTextMessage*)[[[MPTextMessage builder] mergeFromData:data] build];
+}
++ (MPTextMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPTextMessage*)[[[MPTextMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPTextMessage*) parseFromInputStream:(NSInputStream*) input {
+ return (MPTextMessage*)[[[MPTextMessage builder] mergeFromInputStream:input] build];
+}
++ (MPTextMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPTextMessage*)[[[MPTextMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPTextMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPTextMessage*)[[[MPTextMessage builder] mergeFromCodedInputStream:input] build];
+}
++ (MPTextMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPTextMessage*)[[[MPTextMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPTextMessage_Builder*) builder {
+ return [[[MPTextMessage_Builder alloc] init] autorelease];
+}
++ (MPTextMessage_Builder*) builderWithPrototype:(MPTextMessage*) prototype {
+ return [[MPTextMessage builder] mergeFrom:prototype];
+}
+- (MPTextMessage_Builder*) builder {
+ return [MPTextMessage builder];
+}
+@end
+
+@interface MPTextMessage_Builder()
+@property (retain) MPTextMessage* result;
+@end
+
+@implementation MPTextMessage_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPTextMessage alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPTextMessage_Builder*) clear {
+ self.result = [[[MPTextMessage alloc] init] autorelease];
+ return self;
+}
+- (MPTextMessage_Builder*) clone {
+ return [MPTextMessage builderWithPrototype:result];
+}
+- (MPTextMessage*) defaultInstance {
+ return [MPTextMessage defaultInstance];
+}
+- (MPTextMessage*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPTextMessage*) buildPartial {
+ MPTextMessage* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPTextMessage_Builder*) mergeFrom:(MPTextMessage*) other {
+ if (other == [MPTextMessage defaultInstance]) {
+ return self;
+ }
+ if (other.hasActor) {
+ [self setActor:other.actor];
+ }
+ if (other.mutableSessionList.count > 0) {
+ if (result.mutableSessionList == nil) {
+ result.mutableSessionList = [NSMutableArray array];
+ }
+ [result.mutableSessionList addObjectsFromArray:other.mutableSessionList];
+ }
+ if (other.mutableChannelIdList.count > 0) {
+ if (result.mutableChannelIdList == nil) {
+ result.mutableChannelIdList = [NSMutableArray array];
+ }
+ [result.mutableChannelIdList addObjectsFromArray:other.mutableChannelIdList];
+ }
+ if (other.mutableTreeIdList.count > 0) {
+ if (result.mutableTreeIdList == nil) {
+ result.mutableTreeIdList = [NSMutableArray array];
+ }
+ [result.mutableTreeIdList addObjectsFromArray:other.mutableTreeIdList];
+ }
+ if (other.hasMessage) {
+ [self setMessage:other.message];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPTextMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPTextMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setActor:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self addSession:[input readUInt32]];
+ break;
+ }
+ case 24: {
+ [self addChannelId:[input readUInt32]];
+ break;
+ }
+ case 32: {
+ [self addTreeId:[input readUInt32]];
+ break;
+ }
+ case 42: {
+ [self setMessage:[input readString]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasActor {
+ return result.hasActor;
+}
+- (int32_t) actor {
+ return result.actor;
+}
+- (MPTextMessage_Builder*) setActor:(int32_t) value {
+ result.hasActor = YES;
+ result.actor = value;
+ return self;
+}
+- (MPTextMessage_Builder*) clearActor {
+ result.hasActor = NO;
+ result.actor = 0;
+ return self;
+}
+- (NSArray*) sessionList {
+ if (result.mutableSessionList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableSessionList;
+}
+- (int32_t) sessionAtIndex:(int32_t) index {
+ return [result sessionAtIndex:index];
+}
+- (MPTextMessage_Builder*) replaceSessionAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableSessionList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPTextMessage_Builder*) addSession:(int32_t) value {
+ if (result.mutableSessionList == nil) {
+ result.mutableSessionList = [NSMutableArray array];
+ }
+ [result.mutableSessionList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPTextMessage_Builder*) addAllSession:(NSArray*) values {
+ if (result.mutableSessionList == nil) {
+ result.mutableSessionList = [NSMutableArray array];
+ }
+ [result.mutableSessionList addObjectsFromArray:values];
+ return self;
+}
+- (MPTextMessage_Builder*) clearSessionList {
+ result.mutableSessionList = nil;
+ return self;
+}
+- (NSArray*) channelIdList {
+ if (result.mutableChannelIdList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableChannelIdList;
+}
+- (int32_t) channelIdAtIndex:(int32_t) index {
+ return [result channelIdAtIndex:index];
+}
+- (MPTextMessage_Builder*) replaceChannelIdAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableChannelIdList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPTextMessage_Builder*) addChannelId:(int32_t) value {
+ if (result.mutableChannelIdList == nil) {
+ result.mutableChannelIdList = [NSMutableArray array];
+ }
+ [result.mutableChannelIdList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPTextMessage_Builder*) addAllChannelId:(NSArray*) values {
+ if (result.mutableChannelIdList == nil) {
+ result.mutableChannelIdList = [NSMutableArray array];
+ }
+ [result.mutableChannelIdList addObjectsFromArray:values];
+ return self;
+}
+- (MPTextMessage_Builder*) clearChannelIdList {
+ result.mutableChannelIdList = nil;
+ return self;
+}
+- (NSArray*) treeIdList {
+ if (result.mutableTreeIdList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableTreeIdList;
+}
+- (int32_t) treeIdAtIndex:(int32_t) index {
+ return [result treeIdAtIndex:index];
+}
+- (MPTextMessage_Builder*) replaceTreeIdAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableTreeIdList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPTextMessage_Builder*) addTreeId:(int32_t) value {
+ if (result.mutableTreeIdList == nil) {
+ result.mutableTreeIdList = [NSMutableArray array];
+ }
+ [result.mutableTreeIdList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPTextMessage_Builder*) addAllTreeId:(NSArray*) values {
+ if (result.mutableTreeIdList == nil) {
+ result.mutableTreeIdList = [NSMutableArray array];
+ }
+ [result.mutableTreeIdList addObjectsFromArray:values];
+ return self;
+}
+- (MPTextMessage_Builder*) clearTreeIdList {
+ result.mutableTreeIdList = nil;
+ return self;
+}
+- (BOOL) hasMessage {
+ return result.hasMessage;
+}
+- (NSString*) message {
+ return result.message;
+}
+- (MPTextMessage_Builder*) setMessage:(NSString*) value {
+ result.hasMessage = YES;
+ result.message = value;
+ return self;
+}
+- (MPTextMessage_Builder*) clearMessage {
+ result.hasMessage = NO;
+ result.message = @"";
+ return self;
+}
+@end
+
+@interface MPPermissionDenied ()
+@property int32_t permission;
+@property int32_t channelId;
+@property int32_t session;
+@property (retain) NSString* reason;
+@property MPPermissionDenied_DenyType type;
+@property (retain) NSString* name;
+@end
+
+@implementation MPPermissionDenied
+
+- (BOOL) hasPermission {
+ return !!hasPermission_;
+}
+- (void) setHasPermission:(BOOL) value {
+ hasPermission_ = !!value;
+}
+@synthesize permission;
+- (BOOL) hasChannelId {
+ return !!hasChannelId_;
+}
+- (void) setHasChannelId:(BOOL) value {
+ hasChannelId_ = !!value;
+}
+@synthesize channelId;
+- (BOOL) hasSession {
+ return !!hasSession_;
+}
+- (void) setHasSession:(BOOL) value {
+ hasSession_ = !!value;
+}
+@synthesize session;
+- (BOOL) hasReason {
+ return !!hasReason_;
+}
+- (void) setHasReason:(BOOL) value {
+ hasReason_ = !!value;
+}
+@synthesize reason;
+- (BOOL) hasType {
+ return !!hasType_;
+}
+- (void) setHasType:(BOOL) value {
+ hasType_ = !!value;
+}
+@synthesize type;
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+- (void) dealloc {
+ self.reason = nil;
+ self.name = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.permission = 0;
+ self.channelId = 0;
+ self.session = 0;
+ self.reason = @"";
+ self.type = MPPermissionDenied_DenyTypeText;
+ self.name = @"";
+ }
+ return self;
+}
+static MPPermissionDenied* defaultMPPermissionDeniedInstance = nil;
++ (void) initialize {
+ if (self == [MPPermissionDenied class]) {
+ defaultMPPermissionDeniedInstance = [[MPPermissionDenied alloc] init];
+ }
+}
++ (MPPermissionDenied*) defaultInstance {
+ return defaultMPPermissionDeniedInstance;
+}
+- (MPPermissionDenied*) defaultInstance {
+ return defaultMPPermissionDeniedInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasPermission) {
+ [output writeUInt32:1 value:self.permission];
+ }
+ if (self.hasChannelId) {
+ [output writeUInt32:2 value:self.channelId];
+ }
+ if (self.hasSession) {
+ [output writeUInt32:3 value:self.session];
+ }
+ if (self.hasReason) {
+ [output writeString:4 value:self.reason];
+ }
+ if (self.hasType) {
+ [output writeEnum:5 value:self.type];
+ }
+ if (self.hasName) {
+ [output writeString:6 value:self.name];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasPermission) {
+ size += computeUInt32Size(1, self.permission);
+ }
+ if (self.hasChannelId) {
+ size += computeUInt32Size(2, self.channelId);
+ }
+ if (self.hasSession) {
+ size += computeUInt32Size(3, self.session);
+ }
+ if (self.hasReason) {
+ size += computeStringSize(4, self.reason);
+ }
+ if (self.hasType) {
+ size += computeEnumSize(5, self.type);
+ }
+ if (self.hasName) {
+ size += computeStringSize(6, self.name);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPPermissionDenied*) parseFromData:(NSData*) data {
+ return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromData:data] build];
+}
++ (MPPermissionDenied*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPPermissionDenied*) parseFromInputStream:(NSInputStream*) input {
+ return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromInputStream:input] build];
+}
++ (MPPermissionDenied*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPPermissionDenied*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromCodedInputStream:input] build];
+}
++ (MPPermissionDenied*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPPermissionDenied*)[[[MPPermissionDenied builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPPermissionDenied_Builder*) builder {
+ return [[[MPPermissionDenied_Builder alloc] init] autorelease];
+}
++ (MPPermissionDenied_Builder*) builderWithPrototype:(MPPermissionDenied*) prototype {
+ return [[MPPermissionDenied builder] mergeFrom:prototype];
+}
+- (MPPermissionDenied_Builder*) builder {
+ return [MPPermissionDenied builder];
+}
+@end
+
+BOOL MPPermissionDenied_DenyTypeIsValidValue(MPPermissionDenied_DenyType value) {
+ switch (value) {
+ case MPPermissionDenied_DenyTypeText:
+ case MPPermissionDenied_DenyTypePermission:
+ case MPPermissionDenied_DenyTypeSuperUser:
+ case MPPermissionDenied_DenyTypeChannelName:
+ case MPPermissionDenied_DenyTypeTextTooLong:
+ case MPPermissionDenied_DenyTypeH9K:
+ case MPPermissionDenied_DenyTypeTemporaryChannel:
+ case MPPermissionDenied_DenyTypeMissingCertificate:
+ case MPPermissionDenied_DenyTypeUserName:
+ case MPPermissionDenied_DenyTypeChannelFull:
+ return YES;
+ default:
+ return NO;
+ }
+}
+@interface MPPermissionDenied_Builder()
+@property (retain) MPPermissionDenied* result;
+@end
+
+@implementation MPPermissionDenied_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPPermissionDenied alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPPermissionDenied_Builder*) clear {
+ self.result = [[[MPPermissionDenied alloc] init] autorelease];
+ return self;
+}
+- (MPPermissionDenied_Builder*) clone {
+ return [MPPermissionDenied builderWithPrototype:result];
+}
+- (MPPermissionDenied*) defaultInstance {
+ return [MPPermissionDenied defaultInstance];
+}
+- (MPPermissionDenied*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPPermissionDenied*) buildPartial {
+ MPPermissionDenied* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPPermissionDenied_Builder*) mergeFrom:(MPPermissionDenied*) other {
+ if (other == [MPPermissionDenied defaultInstance]) {
+ return self;
+ }
+ if (other.hasPermission) {
+ [self setPermission:other.permission];
+ }
+ if (other.hasChannelId) {
+ [self setChannelId:other.channelId];
+ }
+ if (other.hasSession) {
+ [self setSession:other.session];
+ }
+ if (other.hasReason) {
+ [self setReason:other.reason];
+ }
+ if (other.hasType) {
+ [self setType:other.type];
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPPermissionDenied_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPPermissionDenied_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setPermission:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setChannelId:[input readUInt32]];
+ break;
+ }
+ case 24: {
+ [self setSession:[input readUInt32]];
+ break;
+ }
+ case 34: {
+ [self setReason:[input readString]];
+ break;
+ }
+ case 40: {
+ int32_t value = [input readEnum];
+ if (MPPermissionDenied_DenyTypeIsValidValue(value)) {
+ [self setType:value];
+ } else {
+ [unknownFields mergeVarintField:5 value:value];
+ }
+ break;
+ }
+ case 50: {
+ [self setName:[input readString]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasPermission {
+ return result.hasPermission;
+}
+- (int32_t) permission {
+ return result.permission;
+}
+- (MPPermissionDenied_Builder*) setPermission:(int32_t) value {
+ result.hasPermission = YES;
+ result.permission = value;
+ return self;
+}
+- (MPPermissionDenied_Builder*) clearPermission {
+ result.hasPermission = NO;
+ result.permission = 0;
+ return self;
+}
+- (BOOL) hasChannelId {
+ return result.hasChannelId;
+}
+- (int32_t) channelId {
+ return result.channelId;
+}
+- (MPPermissionDenied_Builder*) setChannelId:(int32_t) value {
+ result.hasChannelId = YES;
+ result.channelId = value;
+ return self;
+}
+- (MPPermissionDenied_Builder*) clearChannelId {
+ result.hasChannelId = NO;
+ result.channelId = 0;
+ return self;
+}
+- (BOOL) hasSession {
+ return result.hasSession;
+}
+- (int32_t) session {
+ return result.session;
+}
+- (MPPermissionDenied_Builder*) setSession:(int32_t) value {
+ result.hasSession = YES;
+ result.session = value;
+ return self;
+}
+- (MPPermissionDenied_Builder*) clearSession {
+ result.hasSession = NO;
+ result.session = 0;
+ return self;
+}
+- (BOOL) hasReason {
+ return result.hasReason;
+}
+- (NSString*) reason {
+ return result.reason;
+}
+- (MPPermissionDenied_Builder*) setReason:(NSString*) value {
+ result.hasReason = YES;
+ result.reason = value;
+ return self;
+}
+- (MPPermissionDenied_Builder*) clearReason {
+ result.hasReason = NO;
+ result.reason = @"";
+ return self;
+}
+- (BOOL) hasType {
+ return result.hasType;
+}
+- (MPPermissionDenied_DenyType) type {
+ return result.type;
+}
+- (MPPermissionDenied_Builder*) setType:(MPPermissionDenied_DenyType) value {
+ result.hasType = YES;
+ result.type = value;
+ return self;
+}
+- (MPPermissionDenied_Builder*) clearType {
+ result.hasType = NO;
+ result.type = MPPermissionDenied_DenyTypeText;
+ return self;
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (MPPermissionDenied_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (MPPermissionDenied_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+@end
+
+@interface MPACL ()
+@property int32_t channelId;
+@property BOOL inheritAcls;
+@property (retain) NSMutableArray* mutableGroupsList;
+@property (retain) NSMutableArray* mutableAclsList;
+@property BOOL query;
+@end
+
+@implementation MPACL
+
+- (BOOL) hasChannelId {
+ return !!hasChannelId_;
+}
+- (void) setHasChannelId:(BOOL) value {
+ hasChannelId_ = !!value;
+}
+@synthesize channelId;
+- (BOOL) hasInheritAcls {
+ return !!hasInheritAcls_;
+}
+- (void) setHasInheritAcls:(BOOL) value {
+ hasInheritAcls_ = !!value;
+}
+- (BOOL) inheritAcls {
+ return !!inheritAcls_;
+}
+- (void) setInheritAcls:(BOOL) value {
+ inheritAcls_ = !!value;
+}
+@synthesize mutableGroupsList;
+@synthesize mutableAclsList;
+- (BOOL) hasQuery {
+ return !!hasQuery_;
+}
+- (void) setHasQuery:(BOOL) value {
+ hasQuery_ = !!value;
+}
+- (BOOL) query {
+ return !!query_;
+}
+- (void) setQuery:(BOOL) value {
+ query_ = !!value;
+}
+- (void) dealloc {
+ self.mutableGroupsList = nil;
+ self.mutableAclsList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.channelId = 0;
+ self.inheritAcls = YES;
+ self.query = NO;
+ }
+ return self;
+}
+static MPACL* defaultMPACLInstance = nil;
++ (void) initialize {
+ if (self == [MPACL class]) {
+ defaultMPACLInstance = [[MPACL alloc] init];
+ }
+}
++ (MPACL*) defaultInstance {
+ return defaultMPACLInstance;
+}
+- (MPACL*) defaultInstance {
+ return defaultMPACLInstance;
+}
+- (NSArray*) groupsList {
+ return mutableGroupsList;
+}
+- (MPACL_ChanGroup*) groupsAtIndex:(int32_t) index {
+ id value = [mutableGroupsList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) aclsList {
+ return mutableAclsList;
+}
+- (MPACL_ChanACL*) aclsAtIndex:(int32_t) index {
+ id value = [mutableAclsList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ if (!self.hasChannelId) {
+ return NO;
+ }
+ for (MPACL_ChanGroup* element in self.groupsList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasChannelId) {
+ [output writeUInt32:1 value:self.channelId];
+ }
+ if (self.hasInheritAcls) {
+ [output writeBool:2 value:self.inheritAcls];
+ }
+ for (MPACL_ChanGroup* element in self.groupsList) {
+ [output writeMessage:3 value:element];
+ }
+ for (MPACL_ChanACL* element in self.aclsList) {
+ [output writeMessage:4 value:element];
+ }
+ if (self.hasQuery) {
+ [output writeBool:5 value:self.query];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasChannelId) {
+ size += computeUInt32Size(1, self.channelId);
+ }
+ if (self.hasInheritAcls) {
+ size += computeBoolSize(2, self.inheritAcls);
+ }
+ for (MPACL_ChanGroup* element in self.groupsList) {
+ size += computeMessageSize(3, element);
+ }
+ for (MPACL_ChanACL* element in self.aclsList) {
+ size += computeMessageSize(4, element);
+ }
+ if (self.hasQuery) {
+ size += computeBoolSize(5, self.query);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPACL*) parseFromData:(NSData*) data {
+ return (MPACL*)[[[MPACL builder] mergeFromData:data] build];
+}
++ (MPACL*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPACL*)[[[MPACL builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPACL*) parseFromInputStream:(NSInputStream*) input {
+ return (MPACL*)[[[MPACL builder] mergeFromInputStream:input] build];
+}
++ (MPACL*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPACL*)[[[MPACL builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPACL*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPACL*)[[[MPACL builder] mergeFromCodedInputStream:input] build];
+}
++ (MPACL*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPACL*)[[[MPACL builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPACL_Builder*) builder {
+ return [[[MPACL_Builder alloc] init] autorelease];
+}
++ (MPACL_Builder*) builderWithPrototype:(MPACL*) prototype {
+ return [[MPACL builder] mergeFrom:prototype];
+}
+- (MPACL_Builder*) builder {
+ return [MPACL builder];
+}
+@end
+
+@interface MPACL_ChanGroup ()
+@property (retain) NSString* name;
+@property BOOL inherited;
+@property BOOL inherit;
+@property BOOL inheritable;
+@property (retain) NSMutableArray* mutableAddList;
+@property (retain) NSMutableArray* mutableRemoveList;
+@property (retain) NSMutableArray* mutableInheritedMembersList;
+@end
+
+@implementation MPACL_ChanGroup
+
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+- (BOOL) hasInherited {
+ return !!hasInherited_;
+}
+- (void) setHasInherited:(BOOL) value {
+ hasInherited_ = !!value;
+}
+- (BOOL) inherited {
+ return !!inherited_;
+}
+- (void) setInherited:(BOOL) value {
+ inherited_ = !!value;
+}
+- (BOOL) hasInherit {
+ return !!hasInherit_;
+}
+- (void) setHasInherit:(BOOL) value {
+ hasInherit_ = !!value;
+}
+- (BOOL) inherit {
+ return !!inherit_;
+}
+- (void) setInherit:(BOOL) value {
+ inherit_ = !!value;
+}
+- (BOOL) hasInheritable {
+ return !!hasInheritable_;
+}
+- (void) setHasInheritable:(BOOL) value {
+ hasInheritable_ = !!value;
+}
+- (BOOL) inheritable {
+ return !!inheritable_;
+}
+- (void) setInheritable:(BOOL) value {
+ inheritable_ = !!value;
+}
+@synthesize mutableAddList;
+@synthesize mutableRemoveList;
+@synthesize mutableInheritedMembersList;
+- (void) dealloc {
+ self.name = nil;
+ self.mutableAddList = nil;
+ self.mutableRemoveList = nil;
+ self.mutableInheritedMembersList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.name = @"";
+ self.inherited = YES;
+ self.inherit = YES;
+ self.inheritable = YES;
+ }
+ return self;
+}
+static MPACL_ChanGroup* defaultMPACL_ChanGroupInstance = nil;
++ (void) initialize {
+ if (self == [MPACL_ChanGroup class]) {
+ defaultMPACL_ChanGroupInstance = [[MPACL_ChanGroup alloc] init];
+ }
+}
++ (MPACL_ChanGroup*) defaultInstance {
+ return defaultMPACL_ChanGroupInstance;
+}
+- (MPACL_ChanGroup*) defaultInstance {
+ return defaultMPACL_ChanGroupInstance;
+}
+- (NSArray*) addList {
+ return mutableAddList;
+}
+- (int32_t) addAtIndex:(int32_t) index {
+ id value = [mutableAddList objectAtIndex:index];
+ return [value intValue];
+}
+- (NSArray*) removeList {
+ return mutableRemoveList;
+}
+- (int32_t) removeAtIndex:(int32_t) index {
+ id value = [mutableRemoveList objectAtIndex:index];
+ return [value intValue];
+}
+- (NSArray*) inheritedMembersList {
+ return mutableInheritedMembersList;
+}
+- (int32_t) inheritedMembersAtIndex:(int32_t) index {
+ id value = [mutableInheritedMembersList objectAtIndex:index];
+ return [value intValue];
+}
+- (BOOL) isInitialized {
+ if (!self.hasName) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasName) {
+ [output writeString:1 value:self.name];
+ }
+ if (self.hasInherited) {
+ [output writeBool:2 value:self.inherited];
+ }
+ if (self.hasInherit) {
+ [output writeBool:3 value:self.inherit];
+ }
+ if (self.hasInheritable) {
+ [output writeBool:4 value:self.inheritable];
+ }
+ for (NSNumber* value in self.mutableAddList) {
+ [output writeUInt32:5 value:[value intValue]];
+ }
+ for (NSNumber* value in self.mutableRemoveList) {
+ [output writeUInt32:6 value:[value intValue]];
+ }
+ for (NSNumber* value in self.mutableInheritedMembersList) {
+ [output writeUInt32:7 value:[value intValue]];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasName) {
+ size += computeStringSize(1, self.name);
+ }
+ if (self.hasInherited) {
+ size += computeBoolSize(2, self.inherited);
+ }
+ if (self.hasInherit) {
+ size += computeBoolSize(3, self.inherit);
+ }
+ if (self.hasInheritable) {
+ size += computeBoolSize(4, self.inheritable);
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableAddList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableAddList.count;
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableRemoveList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableRemoveList.count;
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableInheritedMembersList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableInheritedMembersList.count;
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPACL_ChanGroup*) parseFromData:(NSData*) data {
+ return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromData:data] build];
+}
++ (MPACL_ChanGroup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPACL_ChanGroup*) parseFromInputStream:(NSInputStream*) input {
+ return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromInputStream:input] build];
+}
++ (MPACL_ChanGroup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPACL_ChanGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromCodedInputStream:input] build];
+}
++ (MPACL_ChanGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPACL_ChanGroup*)[[[MPACL_ChanGroup builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPACL_ChanGroup_Builder*) builder {
+ return [[[MPACL_ChanGroup_Builder alloc] init] autorelease];
+}
++ (MPACL_ChanGroup_Builder*) builderWithPrototype:(MPACL_ChanGroup*) prototype {
+ return [[MPACL_ChanGroup builder] mergeFrom:prototype];
+}
+- (MPACL_ChanGroup_Builder*) builder {
+ return [MPACL_ChanGroup builder];
+}
+@end
+
+@interface MPACL_ChanGroup_Builder()
+@property (retain) MPACL_ChanGroup* result;
+@end
+
+@implementation MPACL_ChanGroup_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPACL_ChanGroup alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPACL_ChanGroup_Builder*) clear {
+ self.result = [[[MPACL_ChanGroup alloc] init] autorelease];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) clone {
+ return [MPACL_ChanGroup builderWithPrototype:result];
+}
+- (MPACL_ChanGroup*) defaultInstance {
+ return [MPACL_ChanGroup defaultInstance];
+}
+- (MPACL_ChanGroup*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPACL_ChanGroup*) buildPartial {
+ MPACL_ChanGroup* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPACL_ChanGroup_Builder*) mergeFrom:(MPACL_ChanGroup*) other {
+ if (other == [MPACL_ChanGroup defaultInstance]) {
+ return self;
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.hasInherited) {
+ [self setInherited:other.inherited];
+ }
+ if (other.hasInherit) {
+ [self setInherit:other.inherit];
+ }
+ if (other.hasInheritable) {
+ [self setInheritable:other.inheritable];
+ }
+ if (other.mutableAddList.count > 0) {
+ if (result.mutableAddList == nil) {
+ result.mutableAddList = [NSMutableArray array];
+ }
+ [result.mutableAddList addObjectsFromArray:other.mutableAddList];
+ }
+ if (other.mutableRemoveList.count > 0) {
+ if (result.mutableRemoveList == nil) {
+ result.mutableRemoveList = [NSMutableArray array];
+ }
+ [result.mutableRemoveList addObjectsFromArray:other.mutableRemoveList];
+ }
+ if (other.mutableInheritedMembersList.count > 0) {
+ if (result.mutableInheritedMembersList == nil) {
+ result.mutableInheritedMembersList = [NSMutableArray array];
+ }
+ [result.mutableInheritedMembersList addObjectsFromArray:other.mutableInheritedMembersList];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPACL_ChanGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 16: {
+ [self setInherited:[input readBool]];
+ break;
+ }
+ case 24: {
+ [self setInherit:[input readBool]];
+ break;
+ }
+ case 32: {
+ [self setInheritable:[input readBool]];
+ break;
+ }
+ case 40: {
+ [self addAdd:[input readUInt32]];
+ break;
+ }
+ case 48: {
+ [self addRemove:[input readUInt32]];
+ break;
+ }
+ case 56: {
+ [self addInheritedMembers:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (MPACL_ChanGroup_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+- (BOOL) hasInherited {
+ return result.hasInherited;
+}
+- (BOOL) inherited {
+ return result.inherited;
+}
+- (MPACL_ChanGroup_Builder*) setInherited:(BOOL) value {
+ result.hasInherited = YES;
+ result.inherited = value;
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) clearInherited {
+ result.hasInherited = NO;
+ result.inherited = YES;
+ return self;
+}
+- (BOOL) hasInherit {
+ return result.hasInherit;
+}
+- (BOOL) inherit {
+ return result.inherit;
+}
+- (MPACL_ChanGroup_Builder*) setInherit:(BOOL) value {
+ result.hasInherit = YES;
+ result.inherit = value;
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) clearInherit {
+ result.hasInherit = NO;
+ result.inherit = YES;
+ return self;
+}
+- (BOOL) hasInheritable {
+ return result.hasInheritable;
+}
+- (BOOL) inheritable {
+ return result.inheritable;
+}
+- (MPACL_ChanGroup_Builder*) setInheritable:(BOOL) value {
+ result.hasInheritable = YES;
+ result.inheritable = value;
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) clearInheritable {
+ result.hasInheritable = NO;
+ result.inheritable = YES;
+ return self;
+}
+- (NSArray*) addList {
+ if (result.mutableAddList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableAddList;
+}
+- (int32_t) addAtIndex:(int32_t) index {
+ return [result addAtIndex:index];
+}
+- (MPACL_ChanGroup_Builder*) replaceAddAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableAddList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) addAdd:(int32_t) value {
+ if (result.mutableAddList == nil) {
+ result.mutableAddList = [NSMutableArray array];
+ }
+ [result.mutableAddList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) addAllAdd:(NSArray*) values {
+ if (result.mutableAddList == nil) {
+ result.mutableAddList = [NSMutableArray array];
+ }
+ [result.mutableAddList addObjectsFromArray:values];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) clearAddList {
+ result.mutableAddList = nil;
+ return self;
+}
+- (NSArray*) removeList {
+ if (result.mutableRemoveList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableRemoveList;
+}
+- (int32_t) removeAtIndex:(int32_t) index {
+ return [result removeAtIndex:index];
+}
+- (MPACL_ChanGroup_Builder*) replaceRemoveAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableRemoveList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) addRemove:(int32_t) value {
+ if (result.mutableRemoveList == nil) {
+ result.mutableRemoveList = [NSMutableArray array];
+ }
+ [result.mutableRemoveList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) addAllRemove:(NSArray*) values {
+ if (result.mutableRemoveList == nil) {
+ result.mutableRemoveList = [NSMutableArray array];
+ }
+ [result.mutableRemoveList addObjectsFromArray:values];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) clearRemoveList {
+ result.mutableRemoveList = nil;
+ return self;
+}
+- (NSArray*) inheritedMembersList {
+ if (result.mutableInheritedMembersList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableInheritedMembersList;
+}
+- (int32_t) inheritedMembersAtIndex:(int32_t) index {
+ return [result inheritedMembersAtIndex:index];
+}
+- (MPACL_ChanGroup_Builder*) replaceInheritedMembersAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableInheritedMembersList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) addInheritedMembers:(int32_t) value {
+ if (result.mutableInheritedMembersList == nil) {
+ result.mutableInheritedMembersList = [NSMutableArray array];
+ }
+ [result.mutableInheritedMembersList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) addAllInheritedMembers:(NSArray*) values {
+ if (result.mutableInheritedMembersList == nil) {
+ result.mutableInheritedMembersList = [NSMutableArray array];
+ }
+ [result.mutableInheritedMembersList addObjectsFromArray:values];
+ return self;
+}
+- (MPACL_ChanGroup_Builder*) clearInheritedMembersList {
+ result.mutableInheritedMembersList = nil;
+ return self;
+}
+@end
+
+@interface MPACL_ChanACL ()
+@property BOOL applyHere;
+@property BOOL applySubs;
+@property BOOL inherited;
+@property int32_t userId;
+@property (retain) NSString* group;
+@property int32_t grant;
+@property int32_t deny;
+@end
+
+@implementation MPACL_ChanACL
+
+- (BOOL) hasApplyHere {
+ return !!hasApplyHere_;
+}
+- (void) setHasApplyHere:(BOOL) value {
+ hasApplyHere_ = !!value;
+}
+- (BOOL) applyHere {
+ return !!applyHere_;
+}
+- (void) setApplyHere:(BOOL) value {
+ applyHere_ = !!value;
+}
+- (BOOL) hasApplySubs {
+ return !!hasApplySubs_;
+}
+- (void) setHasApplySubs:(BOOL) value {
+ hasApplySubs_ = !!value;
+}
+- (BOOL) applySubs {
+ return !!applySubs_;
+}
+- (void) setApplySubs:(BOOL) value {
+ applySubs_ = !!value;
+}
+- (BOOL) hasInherited {
+ return !!hasInherited_;
+}
+- (void) setHasInherited:(BOOL) value {
+ hasInherited_ = !!value;
+}
+- (BOOL) inherited {
+ return !!inherited_;
+}
+- (void) setInherited:(BOOL) value {
+ inherited_ = !!value;
+}
+- (BOOL) hasUserId {
+ return !!hasUserId_;
+}
+- (void) setHasUserId:(BOOL) value {
+ hasUserId_ = !!value;
+}
+@synthesize userId;
+- (BOOL) hasGroup {
+ return !!hasGroup_;
+}
+- (void) setHasGroup:(BOOL) value {
+ hasGroup_ = !!value;
+}
+@synthesize group;
+- (BOOL) hasGrant {
+ return !!hasGrant_;
+}
+- (void) setHasGrant:(BOOL) value {
+ hasGrant_ = !!value;
+}
+@synthesize grant;
+- (BOOL) hasDeny {
+ return !!hasDeny_;
+}
+- (void) setHasDeny:(BOOL) value {
+ hasDeny_ = !!value;
+}
+@synthesize deny;
+- (void) dealloc {
+ self.group = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.applyHere = YES;
+ self.applySubs = YES;
+ self.inherited = YES;
+ self.userId = 0;
+ self.group = @"";
+ self.grant = 0;
+ self.deny = 0;
+ }
+ return self;
+}
+static MPACL_ChanACL* defaultMPACL_ChanACLInstance = nil;
++ (void) initialize {
+ if (self == [MPACL_ChanACL class]) {
+ defaultMPACL_ChanACLInstance = [[MPACL_ChanACL alloc] init];
+ }
+}
++ (MPACL_ChanACL*) defaultInstance {
+ return defaultMPACL_ChanACLInstance;
+}
+- (MPACL_ChanACL*) defaultInstance {
+ return defaultMPACL_ChanACLInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasApplyHere) {
+ [output writeBool:1 value:self.applyHere];
+ }
+ if (self.hasApplySubs) {
+ [output writeBool:2 value:self.applySubs];
+ }
+ if (self.hasInherited) {
+ [output writeBool:3 value:self.inherited];
+ }
+ if (self.hasUserId) {
+ [output writeUInt32:4 value:self.userId];
+ }
+ if (self.hasGroup) {
+ [output writeString:5 value:self.group];
+ }
+ if (self.hasGrant) {
+ [output writeUInt32:6 value:self.grant];
+ }
+ if (self.hasDeny) {
+ [output writeUInt32:7 value:self.deny];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasApplyHere) {
+ size += computeBoolSize(1, self.applyHere);
+ }
+ if (self.hasApplySubs) {
+ size += computeBoolSize(2, self.applySubs);
+ }
+ if (self.hasInherited) {
+ size += computeBoolSize(3, self.inherited);
+ }
+ if (self.hasUserId) {
+ size += computeUInt32Size(4, self.userId);
+ }
+ if (self.hasGroup) {
+ size += computeStringSize(5, self.group);
+ }
+ if (self.hasGrant) {
+ size += computeUInt32Size(6, self.grant);
+ }
+ if (self.hasDeny) {
+ size += computeUInt32Size(7, self.deny);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPACL_ChanACL*) parseFromData:(NSData*) data {
+ return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromData:data] build];
+}
++ (MPACL_ChanACL*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPACL_ChanACL*) parseFromInputStream:(NSInputStream*) input {
+ return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromInputStream:input] build];
+}
++ (MPACL_ChanACL*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPACL_ChanACL*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromCodedInputStream:input] build];
+}
++ (MPACL_ChanACL*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPACL_ChanACL*)[[[MPACL_ChanACL builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPACL_ChanACL_Builder*) builder {
+ return [[[MPACL_ChanACL_Builder alloc] init] autorelease];
+}
++ (MPACL_ChanACL_Builder*) builderWithPrototype:(MPACL_ChanACL*) prototype {
+ return [[MPACL_ChanACL builder] mergeFrom:prototype];
+}
+- (MPACL_ChanACL_Builder*) builder {
+ return [MPACL_ChanACL builder];
+}
+@end
+
+@interface MPACL_ChanACL_Builder()
+@property (retain) MPACL_ChanACL* result;
+@end
+
+@implementation MPACL_ChanACL_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPACL_ChanACL alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPACL_ChanACL_Builder*) clear {
+ self.result = [[[MPACL_ChanACL alloc] init] autorelease];
+ return self;
+}
+- (MPACL_ChanACL_Builder*) clone {
+ return [MPACL_ChanACL builderWithPrototype:result];
+}
+- (MPACL_ChanACL*) defaultInstance {
+ return [MPACL_ChanACL defaultInstance];
+}
+- (MPACL_ChanACL*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPACL_ChanACL*) buildPartial {
+ MPACL_ChanACL* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPACL_ChanACL_Builder*) mergeFrom:(MPACL_ChanACL*) other {
+ if (other == [MPACL_ChanACL defaultInstance]) {
+ return self;
+ }
+ if (other.hasApplyHere) {
+ [self setApplyHere:other.applyHere];
+ }
+ if (other.hasApplySubs) {
+ [self setApplySubs:other.applySubs];
+ }
+ if (other.hasInherited) {
+ [self setInherited:other.inherited];
+ }
+ if (other.hasUserId) {
+ [self setUserId:other.userId];
+ }
+ if (other.hasGroup) {
+ [self setGroup:other.group];
+ }
+ if (other.hasGrant) {
+ [self setGrant:other.grant];
+ }
+ if (other.hasDeny) {
+ [self setDeny:other.deny];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPACL_ChanACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPACL_ChanACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setApplyHere:[input readBool]];
+ break;
+ }
+ case 16: {
+ [self setApplySubs:[input readBool]];
+ break;
+ }
+ case 24: {
+ [self setInherited:[input readBool]];
+ break;
+ }
+ case 32: {
+ [self setUserId:[input readUInt32]];
+ break;
+ }
+ case 42: {
+ [self setGroup:[input readString]];
+ break;
+ }
+ case 48: {
+ [self setGrant:[input readUInt32]];
+ break;
+ }
+ case 56: {
+ [self setDeny:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasApplyHere {
+ return result.hasApplyHere;
+}
+- (BOOL) applyHere {
+ return result.applyHere;
+}
+- (MPACL_ChanACL_Builder*) setApplyHere:(BOOL) value {
+ result.hasApplyHere = YES;
+ result.applyHere = value;
+ return self;
+}
+- (MPACL_ChanACL_Builder*) clearApplyHere {
+ result.hasApplyHere = NO;
+ result.applyHere = YES;
+ return self;
+}
+- (BOOL) hasApplySubs {
+ return result.hasApplySubs;
+}
+- (BOOL) applySubs {
+ return result.applySubs;
+}
+- (MPACL_ChanACL_Builder*) setApplySubs:(BOOL) value {
+ result.hasApplySubs = YES;
+ result.applySubs = value;
+ return self;
+}
+- (MPACL_ChanACL_Builder*) clearApplySubs {
+ result.hasApplySubs = NO;
+ result.applySubs = YES;
+ return self;
+}
+- (BOOL) hasInherited {
+ return result.hasInherited;
+}
+- (BOOL) inherited {
+ return result.inherited;
+}
+- (MPACL_ChanACL_Builder*) setInherited:(BOOL) value {
+ result.hasInherited = YES;
+ result.inherited = value;
+ return self;
+}
+- (MPACL_ChanACL_Builder*) clearInherited {
+ result.hasInherited = NO;
+ result.inherited = YES;
+ return self;
+}
+- (BOOL) hasUserId {
+ return result.hasUserId;
+}
+- (int32_t) userId {
+ return result.userId;
+}
+- (MPACL_ChanACL_Builder*) setUserId:(int32_t) value {
+ result.hasUserId = YES;
+ result.userId = value;
+ return self;
+}
+- (MPACL_ChanACL_Builder*) clearUserId {
+ result.hasUserId = NO;
+ result.userId = 0;
+ return self;
+}
+- (BOOL) hasGroup {
+ return result.hasGroup;
+}
+- (NSString*) group {
+ return result.group;
+}
+- (MPACL_ChanACL_Builder*) setGroup:(NSString*) value {
+ result.hasGroup = YES;
+ result.group = value;
+ return self;
+}
+- (MPACL_ChanACL_Builder*) clearGroup {
+ result.hasGroup = NO;
+ result.group = @"";
+ return self;
+}
+- (BOOL) hasGrant {
+ return result.hasGrant;
+}
+- (int32_t) grant {
+ return result.grant;
+}
+- (MPACL_ChanACL_Builder*) setGrant:(int32_t) value {
+ result.hasGrant = YES;
+ result.grant = value;
+ return self;
+}
+- (MPACL_ChanACL_Builder*) clearGrant {
+ result.hasGrant = NO;
+ result.grant = 0;
+ return self;
+}
+- (BOOL) hasDeny {
+ return result.hasDeny;
+}
+- (int32_t) deny {
+ return result.deny;
+}
+- (MPACL_ChanACL_Builder*) setDeny:(int32_t) value {
+ result.hasDeny = YES;
+ result.deny = value;
+ return self;
+}
+- (MPACL_ChanACL_Builder*) clearDeny {
+ result.hasDeny = NO;
+ result.deny = 0;
+ return self;
+}
+@end
+
+@interface MPACL_Builder()
+@property (retain) MPACL* result;
+@end
+
+@implementation MPACL_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPACL alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPACL_Builder*) clear {
+ self.result = [[[MPACL alloc] init] autorelease];
+ return self;
+}
+- (MPACL_Builder*) clone {
+ return [MPACL builderWithPrototype:result];
+}
+- (MPACL*) defaultInstance {
+ return [MPACL defaultInstance];
+}
+- (MPACL*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPACL*) buildPartial {
+ MPACL* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPACL_Builder*) mergeFrom:(MPACL*) other {
+ if (other == [MPACL defaultInstance]) {
+ return self;
+ }
+ if (other.hasChannelId) {
+ [self setChannelId:other.channelId];
+ }
+ if (other.hasInheritAcls) {
+ [self setInheritAcls:other.inheritAcls];
+ }
+ if (other.mutableGroupsList.count > 0) {
+ if (result.mutableGroupsList == nil) {
+ result.mutableGroupsList = [NSMutableArray array];
+ }
+ [result.mutableGroupsList addObjectsFromArray:other.mutableGroupsList];
+ }
+ if (other.mutableAclsList.count > 0) {
+ if (result.mutableAclsList == nil) {
+ result.mutableAclsList = [NSMutableArray array];
+ }
+ [result.mutableAclsList addObjectsFromArray:other.mutableAclsList];
+ }
+ if (other.hasQuery) {
+ [self setQuery:other.query];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPACL_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setChannelId:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setInheritAcls:[input readBool]];
+ break;
+ }
+ case 26: {
+ MPACL_ChanGroup_Builder* subBuilder = [MPACL_ChanGroup builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addGroups:[subBuilder buildPartial]];
+ break;
+ }
+ case 34: {
+ MPACL_ChanACL_Builder* subBuilder = [MPACL_ChanACL builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addAcls:[subBuilder buildPartial]];
+ break;
+ }
+ case 40: {
+ [self setQuery:[input readBool]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasChannelId {
+ return result.hasChannelId;
+}
+- (int32_t) channelId {
+ return result.channelId;
+}
+- (MPACL_Builder*) setChannelId:(int32_t) value {
+ result.hasChannelId = YES;
+ result.channelId = value;
+ return self;
+}
+- (MPACL_Builder*) clearChannelId {
+ result.hasChannelId = NO;
+ result.channelId = 0;
+ return self;
+}
+- (BOOL) hasInheritAcls {
+ return result.hasInheritAcls;
+}
+- (BOOL) inheritAcls {
+ return result.inheritAcls;
+}
+- (MPACL_Builder*) setInheritAcls:(BOOL) value {
+ result.hasInheritAcls = YES;
+ result.inheritAcls = value;
+ return self;
+}
+- (MPACL_Builder*) clearInheritAcls {
+ result.hasInheritAcls = NO;
+ result.inheritAcls = YES;
+ return self;
+}
+- (NSArray*) groupsList {
+ if (result.mutableGroupsList == nil) { return [NSArray array]; }
+ return result.mutableGroupsList;
+}
+- (MPACL_ChanGroup*) groupsAtIndex:(int32_t) index {
+ return [result groupsAtIndex:index];
+}
+- (MPACL_Builder*) replaceGroupsAtIndex:(int32_t) index with:(MPACL_ChanGroup*) value {
+ [result.mutableGroupsList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (MPACL_Builder*) addAllGroups:(NSArray*) values {
+ if (result.mutableGroupsList == nil) {
+ result.mutableGroupsList = [NSMutableArray array];
+ }
+ [result.mutableGroupsList addObjectsFromArray:values];
+ return self;
+}
+- (MPACL_Builder*) clearGroupsList {
+ result.mutableGroupsList = nil;
+ return self;
+}
+- (MPACL_Builder*) addGroups:(MPACL_ChanGroup*) value {
+ if (result.mutableGroupsList == nil) {
+ result.mutableGroupsList = [NSMutableArray array];
+ }
+ [result.mutableGroupsList addObject:value];
+ return self;
+}
+- (NSArray*) aclsList {
+ if (result.mutableAclsList == nil) { return [NSArray array]; }
+ return result.mutableAclsList;
+}
+- (MPACL_ChanACL*) aclsAtIndex:(int32_t) index {
+ return [result aclsAtIndex:index];
+}
+- (MPACL_Builder*) replaceAclsAtIndex:(int32_t) index with:(MPACL_ChanACL*) value {
+ [result.mutableAclsList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (MPACL_Builder*) addAllAcls:(NSArray*) values {
+ if (result.mutableAclsList == nil) {
+ result.mutableAclsList = [NSMutableArray array];
+ }
+ [result.mutableAclsList addObjectsFromArray:values];
+ return self;
+}
+- (MPACL_Builder*) clearAclsList {
+ result.mutableAclsList = nil;
+ return self;
+}
+- (MPACL_Builder*) addAcls:(MPACL_ChanACL*) value {
+ if (result.mutableAclsList == nil) {
+ result.mutableAclsList = [NSMutableArray array];
+ }
+ [result.mutableAclsList addObject:value];
+ return self;
+}
+- (BOOL) hasQuery {
+ return result.hasQuery;
+}
+- (BOOL) query {
+ return result.query;
+}
+- (MPACL_Builder*) setQuery:(BOOL) value {
+ result.hasQuery = YES;
+ result.query = value;
+ return self;
+}
+- (MPACL_Builder*) clearQuery {
+ result.hasQuery = NO;
+ result.query = NO;
+ return self;
+}
+@end
+
+@interface MPQueryUsers ()
+@property (retain) NSMutableArray* mutableIdsList;
+@property (retain) NSMutableArray* mutableNamesList;
+@end
+
+@implementation MPQueryUsers
+
+@synthesize mutableIdsList;
+@synthesize mutableNamesList;
+- (void) dealloc {
+ self.mutableIdsList = nil;
+ self.mutableNamesList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ }
+ return self;
+}
+static MPQueryUsers* defaultMPQueryUsersInstance = nil;
++ (void) initialize {
+ if (self == [MPQueryUsers class]) {
+ defaultMPQueryUsersInstance = [[MPQueryUsers alloc] init];
+ }
+}
++ (MPQueryUsers*) defaultInstance {
+ return defaultMPQueryUsersInstance;
+}
+- (MPQueryUsers*) defaultInstance {
+ return defaultMPQueryUsersInstance;
+}
+- (NSArray*) idsList {
+ return mutableIdsList;
+}
+- (int32_t) idsAtIndex:(int32_t) index {
+ id value = [mutableIdsList objectAtIndex:index];
+ return [value intValue];
+}
+- (NSArray*) namesList {
+ return mutableNamesList;
+}
+- (NSString*) namesAtIndex:(int32_t) index {
+ id value = [mutableNamesList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (NSNumber* value in self.mutableIdsList) {
+ [output writeUInt32:1 value:[value intValue]];
+ }
+ for (NSString* element in self.mutableNamesList) {
+ [output writeString:2 value:element];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableIdsList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableIdsList.count;
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSString* element in self.mutableNamesList) {
+ dataSize += computeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * self.mutableNamesList.count;
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPQueryUsers*) parseFromData:(NSData*) data {
+ return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromData:data] build];
+}
++ (MPQueryUsers*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPQueryUsers*) parseFromInputStream:(NSInputStream*) input {
+ return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromInputStream:input] build];
+}
++ (MPQueryUsers*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPQueryUsers*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromCodedInputStream:input] build];
+}
++ (MPQueryUsers*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPQueryUsers*)[[[MPQueryUsers builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPQueryUsers_Builder*) builder {
+ return [[[MPQueryUsers_Builder alloc] init] autorelease];
+}
++ (MPQueryUsers_Builder*) builderWithPrototype:(MPQueryUsers*) prototype {
+ return [[MPQueryUsers builder] mergeFrom:prototype];
+}
+- (MPQueryUsers_Builder*) builder {
+ return [MPQueryUsers builder];
+}
+@end
+
+@interface MPQueryUsers_Builder()
+@property (retain) MPQueryUsers* result;
+@end
+
+@implementation MPQueryUsers_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPQueryUsers alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPQueryUsers_Builder*) clear {
+ self.result = [[[MPQueryUsers alloc] init] autorelease];
+ return self;
+}
+- (MPQueryUsers_Builder*) clone {
+ return [MPQueryUsers builderWithPrototype:result];
+}
+- (MPQueryUsers*) defaultInstance {
+ return [MPQueryUsers defaultInstance];
+}
+- (MPQueryUsers*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPQueryUsers*) buildPartial {
+ MPQueryUsers* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPQueryUsers_Builder*) mergeFrom:(MPQueryUsers*) other {
+ if (other == [MPQueryUsers defaultInstance]) {
+ return self;
+ }
+ if (other.mutableIdsList.count > 0) {
+ if (result.mutableIdsList == nil) {
+ result.mutableIdsList = [NSMutableArray array];
+ }
+ [result.mutableIdsList addObjectsFromArray:other.mutableIdsList];
+ }
+ if (other.mutableNamesList.count > 0) {
+ if (result.mutableNamesList == nil) {
+ result.mutableNamesList = [NSMutableArray array];
+ }
+ [result.mutableNamesList addObjectsFromArray:other.mutableNamesList];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPQueryUsers_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPQueryUsers_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self addIds:[input readUInt32]];
+ break;
+ }
+ case 18: {
+ [self addNames:[input readString]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) idsList {
+ if (result.mutableIdsList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableIdsList;
+}
+- (int32_t) idsAtIndex:(int32_t) index {
+ return [result idsAtIndex:index];
+}
+- (MPQueryUsers_Builder*) replaceIdsAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableIdsList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPQueryUsers_Builder*) addIds:(int32_t) value {
+ if (result.mutableIdsList == nil) {
+ result.mutableIdsList = [NSMutableArray array];
+ }
+ [result.mutableIdsList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPQueryUsers_Builder*) addAllIds:(NSArray*) values {
+ if (result.mutableIdsList == nil) {
+ result.mutableIdsList = [NSMutableArray array];
+ }
+ [result.mutableIdsList addObjectsFromArray:values];
+ return self;
+}
+- (MPQueryUsers_Builder*) clearIdsList {
+ result.mutableIdsList = nil;
+ return self;
+}
+- (NSArray*) namesList {
+ if (result.mutableNamesList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableNamesList;
+}
+- (NSString*) namesAtIndex:(int32_t) index {
+ return [result namesAtIndex:index];
+}
+- (MPQueryUsers_Builder*) replaceNamesAtIndex:(int32_t) index with:(NSString*) value {
+ [result.mutableNamesList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (MPQueryUsers_Builder*) addNames:(NSString*) value {
+ if (result.mutableNamesList == nil) {
+ result.mutableNamesList = [NSMutableArray array];
+ }
+ [result.mutableNamesList addObject:value];
+ return self;
+}
+- (MPQueryUsers_Builder*) addAllNames:(NSArray*) values {
+ if (result.mutableNamesList == nil) {
+ result.mutableNamesList = [NSMutableArray array];
+ }
+ [result.mutableNamesList addObjectsFromArray:values];
+ return self;
+}
+- (MPQueryUsers_Builder*) clearNamesList {
+ result.mutableNamesList = nil;
+ return self;
+}
+@end
+
+@interface MPCryptSetup ()
+@property (retain) NSData* key;
+@property (retain) NSData* clientNonce;
+@property (retain) NSData* serverNonce;
+@end
+
+@implementation MPCryptSetup
+
+- (BOOL) hasKey {
+ return !!hasKey_;
+}
+- (void) setHasKey:(BOOL) value {
+ hasKey_ = !!value;
+}
+@synthesize key;
+- (BOOL) hasClientNonce {
+ return !!hasClientNonce_;
+}
+- (void) setHasClientNonce:(BOOL) value {
+ hasClientNonce_ = !!value;
+}
+@synthesize clientNonce;
+- (BOOL) hasServerNonce {
+ return !!hasServerNonce_;
+}
+- (void) setHasServerNonce:(BOOL) value {
+ hasServerNonce_ = !!value;
+}
+@synthesize serverNonce;
+- (void) dealloc {
+ self.key = nil;
+ self.clientNonce = nil;
+ self.serverNonce = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.key = [NSData data];
+ self.clientNonce = [NSData data];
+ self.serverNonce = [NSData data];
+ }
+ return self;
+}
+static MPCryptSetup* defaultMPCryptSetupInstance = nil;
++ (void) initialize {
+ if (self == [MPCryptSetup class]) {
+ defaultMPCryptSetupInstance = [[MPCryptSetup alloc] init];
+ }
+}
++ (MPCryptSetup*) defaultInstance {
+ return defaultMPCryptSetupInstance;
+}
+- (MPCryptSetup*) defaultInstance {
+ return defaultMPCryptSetupInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasKey) {
+ [output writeData:1 value:self.key];
+ }
+ if (self.hasClientNonce) {
+ [output writeData:2 value:self.clientNonce];
+ }
+ if (self.hasServerNonce) {
+ [output writeData:3 value:self.serverNonce];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasKey) {
+ size += computeDataSize(1, self.key);
+ }
+ if (self.hasClientNonce) {
+ size += computeDataSize(2, self.clientNonce);
+ }
+ if (self.hasServerNonce) {
+ size += computeDataSize(3, self.serverNonce);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPCryptSetup*) parseFromData:(NSData*) data {
+ return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromData:data] build];
+}
++ (MPCryptSetup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPCryptSetup*) parseFromInputStream:(NSInputStream*) input {
+ return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromInputStream:input] build];
+}
++ (MPCryptSetup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPCryptSetup*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromCodedInputStream:input] build];
+}
++ (MPCryptSetup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPCryptSetup*)[[[MPCryptSetup builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPCryptSetup_Builder*) builder {
+ return [[[MPCryptSetup_Builder alloc] init] autorelease];
+}
++ (MPCryptSetup_Builder*) builderWithPrototype:(MPCryptSetup*) prototype {
+ return [[MPCryptSetup builder] mergeFrom:prototype];
+}
+- (MPCryptSetup_Builder*) builder {
+ return [MPCryptSetup builder];
+}
+@end
+
+@interface MPCryptSetup_Builder()
+@property (retain) MPCryptSetup* result;
+@end
+
+@implementation MPCryptSetup_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPCryptSetup alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPCryptSetup_Builder*) clear {
+ self.result = [[[MPCryptSetup alloc] init] autorelease];
+ return self;
+}
+- (MPCryptSetup_Builder*) clone {
+ return [MPCryptSetup builderWithPrototype:result];
+}
+- (MPCryptSetup*) defaultInstance {
+ return [MPCryptSetup defaultInstance];
+}
+- (MPCryptSetup*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPCryptSetup*) buildPartial {
+ MPCryptSetup* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPCryptSetup_Builder*) mergeFrom:(MPCryptSetup*) other {
+ if (other == [MPCryptSetup defaultInstance]) {
+ return self;
+ }
+ if (other.hasKey) {
+ [self setKey:other.key];
+ }
+ if (other.hasClientNonce) {
+ [self setClientNonce:other.clientNonce];
+ }
+ if (other.hasServerNonce) {
+ [self setServerNonce:other.serverNonce];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPCryptSetup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPCryptSetup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setKey:[input readData]];
+ break;
+ }
+ case 18: {
+ [self setClientNonce:[input readData]];
+ break;
+ }
+ case 26: {
+ [self setServerNonce:[input readData]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasKey {
+ return result.hasKey;
+}
+- (NSData*) key {
+ return result.key;
+}
+- (MPCryptSetup_Builder*) setKey:(NSData*) value {
+ result.hasKey = YES;
+ result.key = value;
+ return self;
+}
+- (MPCryptSetup_Builder*) clearKey {
+ result.hasKey = NO;
+ result.key = [NSData data];
+ return self;
+}
+- (BOOL) hasClientNonce {
+ return result.hasClientNonce;
+}
+- (NSData*) clientNonce {
+ return result.clientNonce;
+}
+- (MPCryptSetup_Builder*) setClientNonce:(NSData*) value {
+ result.hasClientNonce = YES;
+ result.clientNonce = value;
+ return self;
+}
+- (MPCryptSetup_Builder*) clearClientNonce {
+ result.hasClientNonce = NO;
+ result.clientNonce = [NSData data];
+ return self;
+}
+- (BOOL) hasServerNonce {
+ return result.hasServerNonce;
+}
+- (NSData*) serverNonce {
+ return result.serverNonce;
+}
+- (MPCryptSetup_Builder*) setServerNonce:(NSData*) value {
+ result.hasServerNonce = YES;
+ result.serverNonce = value;
+ return self;
+}
+- (MPCryptSetup_Builder*) clearServerNonce {
+ result.hasServerNonce = NO;
+ result.serverNonce = [NSData data];
+ return self;
+}
+@end
+
+@interface MPContextActionAdd ()
+@property (retain) NSString* action;
+@property (retain) NSString* text;
+@property int32_t context;
+@end
+
+@implementation MPContextActionAdd
+
+- (BOOL) hasAction {
+ return !!hasAction_;
+}
+- (void) setHasAction:(BOOL) value {
+ hasAction_ = !!value;
+}
+@synthesize action;
+- (BOOL) hasText {
+ return !!hasText_;
+}
+- (void) setHasText:(BOOL) value {
+ hasText_ = !!value;
+}
+@synthesize text;
+- (BOOL) hasContext {
+ return !!hasContext_;
+}
+- (void) setHasContext:(BOOL) value {
+ hasContext_ = !!value;
+}
+@synthesize context;
+- (void) dealloc {
+ self.action = nil;
+ self.text = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.action = @"";
+ self.text = @"";
+ self.context = 0;
+ }
+ return self;
+}
+static MPContextActionAdd* defaultMPContextActionAddInstance = nil;
++ (void) initialize {
+ if (self == [MPContextActionAdd class]) {
+ defaultMPContextActionAddInstance = [[MPContextActionAdd alloc] init];
+ }
+}
++ (MPContextActionAdd*) defaultInstance {
+ return defaultMPContextActionAddInstance;
+}
+- (MPContextActionAdd*) defaultInstance {
+ return defaultMPContextActionAddInstance;
+}
+- (BOOL) isInitialized {
+ if (!self.hasAction) {
+ return NO;
+ }
+ if (!self.hasText) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasAction) {
+ [output writeString:1 value:self.action];
+ }
+ if (self.hasText) {
+ [output writeString:2 value:self.text];
+ }
+ if (self.hasContext) {
+ [output writeUInt32:3 value:self.context];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasAction) {
+ size += computeStringSize(1, self.action);
+ }
+ if (self.hasText) {
+ size += computeStringSize(2, self.text);
+ }
+ if (self.hasContext) {
+ size += computeUInt32Size(3, self.context);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPContextActionAdd*) parseFromData:(NSData*) data {
+ return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromData:data] build];
+}
++ (MPContextActionAdd*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPContextActionAdd*) parseFromInputStream:(NSInputStream*) input {
+ return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromInputStream:input] build];
+}
++ (MPContextActionAdd*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPContextActionAdd*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromCodedInputStream:input] build];
+}
++ (MPContextActionAdd*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPContextActionAdd*)[[[MPContextActionAdd builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPContextActionAdd_Builder*) builder {
+ return [[[MPContextActionAdd_Builder alloc] init] autorelease];
+}
++ (MPContextActionAdd_Builder*) builderWithPrototype:(MPContextActionAdd*) prototype {
+ return [[MPContextActionAdd builder] mergeFrom:prototype];
+}
+- (MPContextActionAdd_Builder*) builder {
+ return [MPContextActionAdd builder];
+}
+@end
+
+BOOL MPContextActionAdd_ContextIsValidValue(MPContextActionAdd_Context value) {
+ switch (value) {
+ case MPContextActionAdd_ContextServer:
+ case MPContextActionAdd_ContextChannel:
+ case MPContextActionAdd_ContextUser:
+ return YES;
+ default:
+ return NO;
+ }
+}
+@interface MPContextActionAdd_Builder()
+@property (retain) MPContextActionAdd* result;
+@end
+
+@implementation MPContextActionAdd_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPContextActionAdd alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPContextActionAdd_Builder*) clear {
+ self.result = [[[MPContextActionAdd alloc] init] autorelease];
+ return self;
+}
+- (MPContextActionAdd_Builder*) clone {
+ return [MPContextActionAdd builderWithPrototype:result];
+}
+- (MPContextActionAdd*) defaultInstance {
+ return [MPContextActionAdd defaultInstance];
+}
+- (MPContextActionAdd*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPContextActionAdd*) buildPartial {
+ MPContextActionAdd* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPContextActionAdd_Builder*) mergeFrom:(MPContextActionAdd*) other {
+ if (other == [MPContextActionAdd defaultInstance]) {
+ return self;
+ }
+ if (other.hasAction) {
+ [self setAction:other.action];
+ }
+ if (other.hasText) {
+ [self setText:other.text];
+ }
+ if (other.hasContext) {
+ [self setContext:other.context];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPContextActionAdd_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPContextActionAdd_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setAction:[input readString]];
+ break;
+ }
+ case 18: {
+ [self setText:[input readString]];
+ break;
+ }
+ case 24: {
+ [self setContext:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasAction {
+ return result.hasAction;
+}
+- (NSString*) action {
+ return result.action;
+}
+- (MPContextActionAdd_Builder*) setAction:(NSString*) value {
+ result.hasAction = YES;
+ result.action = value;
+ return self;
+}
+- (MPContextActionAdd_Builder*) clearAction {
+ result.hasAction = NO;
+ result.action = @"";
+ return self;
+}
+- (BOOL) hasText {
+ return result.hasText;
+}
+- (NSString*) text {
+ return result.text;
+}
+- (MPContextActionAdd_Builder*) setText:(NSString*) value {
+ result.hasText = YES;
+ result.text = value;
+ return self;
+}
+- (MPContextActionAdd_Builder*) clearText {
+ result.hasText = NO;
+ result.text = @"";
+ return self;
+}
+- (BOOL) hasContext {
+ return result.hasContext;
+}
+- (int32_t) context {
+ return result.context;
+}
+- (MPContextActionAdd_Builder*) setContext:(int32_t) value {
+ result.hasContext = YES;
+ result.context = value;
+ return self;
+}
+- (MPContextActionAdd_Builder*) clearContext {
+ result.hasContext = NO;
+ result.context = 0;
+ return self;
+}
+@end
+
+@interface MPContextAction ()
+@property int32_t session;
+@property int32_t channelId;
+@property (retain) NSString* action;
+@end
+
+@implementation MPContextAction
+
+- (BOOL) hasSession {
+ return !!hasSession_;
+}
+- (void) setHasSession:(BOOL) value {
+ hasSession_ = !!value;
+}
+@synthesize session;
+- (BOOL) hasChannelId {
+ return !!hasChannelId_;
+}
+- (void) setHasChannelId:(BOOL) value {
+ hasChannelId_ = !!value;
+}
+@synthesize channelId;
+- (BOOL) hasAction {
+ return !!hasAction_;
+}
+- (void) setHasAction:(BOOL) value {
+ hasAction_ = !!value;
+}
+@synthesize action;
+- (void) dealloc {
+ self.action = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.session = 0;
+ self.channelId = 0;
+ self.action = @"";
+ }
+ return self;
+}
+static MPContextAction* defaultMPContextActionInstance = nil;
++ (void) initialize {
+ if (self == [MPContextAction class]) {
+ defaultMPContextActionInstance = [[MPContextAction alloc] init];
+ }
+}
++ (MPContextAction*) defaultInstance {
+ return defaultMPContextActionInstance;
+}
+- (MPContextAction*) defaultInstance {
+ return defaultMPContextActionInstance;
+}
+- (BOOL) isInitialized {
+ if (!self.hasAction) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasSession) {
+ [output writeUInt32:1 value:self.session];
+ }
+ if (self.hasChannelId) {
+ [output writeUInt32:2 value:self.channelId];
+ }
+ if (self.hasAction) {
+ [output writeString:3 value:self.action];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasSession) {
+ size += computeUInt32Size(1, self.session);
+ }
+ if (self.hasChannelId) {
+ size += computeUInt32Size(2, self.channelId);
+ }
+ if (self.hasAction) {
+ size += computeStringSize(3, self.action);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPContextAction*) parseFromData:(NSData*) data {
+ return (MPContextAction*)[[[MPContextAction builder] mergeFromData:data] build];
+}
++ (MPContextAction*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPContextAction*)[[[MPContextAction builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPContextAction*) parseFromInputStream:(NSInputStream*) input {
+ return (MPContextAction*)[[[MPContextAction builder] mergeFromInputStream:input] build];
+}
++ (MPContextAction*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPContextAction*)[[[MPContextAction builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPContextAction*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPContextAction*)[[[MPContextAction builder] mergeFromCodedInputStream:input] build];
+}
++ (MPContextAction*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPContextAction*)[[[MPContextAction builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPContextAction_Builder*) builder {
+ return [[[MPContextAction_Builder alloc] init] autorelease];
+}
++ (MPContextAction_Builder*) builderWithPrototype:(MPContextAction*) prototype {
+ return [[MPContextAction builder] mergeFrom:prototype];
+}
+- (MPContextAction_Builder*) builder {
+ return [MPContextAction builder];
+}
+@end
+
+@interface MPContextAction_Builder()
+@property (retain) MPContextAction* result;
+@end
+
+@implementation MPContextAction_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPContextAction alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPContextAction_Builder*) clear {
+ self.result = [[[MPContextAction alloc] init] autorelease];
+ return self;
+}
+- (MPContextAction_Builder*) clone {
+ return [MPContextAction builderWithPrototype:result];
+}
+- (MPContextAction*) defaultInstance {
+ return [MPContextAction defaultInstance];
+}
+- (MPContextAction*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPContextAction*) buildPartial {
+ MPContextAction* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPContextAction_Builder*) mergeFrom:(MPContextAction*) other {
+ if (other == [MPContextAction defaultInstance]) {
+ return self;
+ }
+ if (other.hasSession) {
+ [self setSession:other.session];
+ }
+ if (other.hasChannelId) {
+ [self setChannelId:other.channelId];
+ }
+ if (other.hasAction) {
+ [self setAction:other.action];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPContextAction_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPContextAction_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setSession:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setChannelId:[input readUInt32]];
+ break;
+ }
+ case 26: {
+ [self setAction:[input readString]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasSession {
+ return result.hasSession;
+}
+- (int32_t) session {
+ return result.session;
+}
+- (MPContextAction_Builder*) setSession:(int32_t) value {
+ result.hasSession = YES;
+ result.session = value;
+ return self;
+}
+- (MPContextAction_Builder*) clearSession {
+ result.hasSession = NO;
+ result.session = 0;
+ return self;
+}
+- (BOOL) hasChannelId {
+ return result.hasChannelId;
+}
+- (int32_t) channelId {
+ return result.channelId;
+}
+- (MPContextAction_Builder*) setChannelId:(int32_t) value {
+ result.hasChannelId = YES;
+ result.channelId = value;
+ return self;
+}
+- (MPContextAction_Builder*) clearChannelId {
+ result.hasChannelId = NO;
+ result.channelId = 0;
+ return self;
+}
+- (BOOL) hasAction {
+ return result.hasAction;
+}
+- (NSString*) action {
+ return result.action;
+}
+- (MPContextAction_Builder*) setAction:(NSString*) value {
+ result.hasAction = YES;
+ result.action = value;
+ return self;
+}
+- (MPContextAction_Builder*) clearAction {
+ result.hasAction = NO;
+ result.action = @"";
+ return self;
+}
+@end
+
+@interface MPUserList ()
+@property (retain) NSMutableArray* mutableUsersList;
+@end
+
+@implementation MPUserList
+
+@synthesize mutableUsersList;
+- (void) dealloc {
+ self.mutableUsersList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ }
+ return self;
+}
+static MPUserList* defaultMPUserListInstance = nil;
++ (void) initialize {
+ if (self == [MPUserList class]) {
+ defaultMPUserListInstance = [[MPUserList alloc] init];
+ }
+}
++ (MPUserList*) defaultInstance {
+ return defaultMPUserListInstance;
+}
+- (MPUserList*) defaultInstance {
+ return defaultMPUserListInstance;
+}
+- (NSArray*) usersList {
+ return mutableUsersList;
+}
+- (MPUserList_User*) usersAtIndex:(int32_t) index {
+ id value = [mutableUsersList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ for (MPUserList_User* element in self.usersList) {
+ if (!element.isInitialized) {
+ return NO;
+ }
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (MPUserList_User* element in self.usersList) {
+ [output writeMessage:1 value:element];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ for (MPUserList_User* element in self.usersList) {
+ size += computeMessageSize(1, element);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPUserList*) parseFromData:(NSData*) data {
+ return (MPUserList*)[[[MPUserList builder] mergeFromData:data] build];
+}
++ (MPUserList*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserList*)[[[MPUserList builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPUserList*) parseFromInputStream:(NSInputStream*) input {
+ return (MPUserList*)[[[MPUserList builder] mergeFromInputStream:input] build];
+}
++ (MPUserList*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserList*)[[[MPUserList builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserList*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPUserList*)[[[MPUserList builder] mergeFromCodedInputStream:input] build];
+}
++ (MPUserList*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserList*)[[[MPUserList builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserList_Builder*) builder {
+ return [[[MPUserList_Builder alloc] init] autorelease];
+}
++ (MPUserList_Builder*) builderWithPrototype:(MPUserList*) prototype {
+ return [[MPUserList builder] mergeFrom:prototype];
+}
+- (MPUserList_Builder*) builder {
+ return [MPUserList builder];
+}
+@end
+
+@interface MPUserList_User ()
+@property int32_t userId;
+@property (retain) NSString* name;
+@end
+
+@implementation MPUserList_User
+
+- (BOOL) hasUserId {
+ return !!hasUserId_;
+}
+- (void) setHasUserId:(BOOL) value {
+ hasUserId_ = !!value;
+}
+@synthesize userId;
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) value {
+ hasName_ = !!value;
+}
+@synthesize name;
+- (void) dealloc {
+ self.name = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.userId = 0;
+ self.name = @"";
+ }
+ return self;
+}
+static MPUserList_User* defaultMPUserList_UserInstance = nil;
++ (void) initialize {
+ if (self == [MPUserList_User class]) {
+ defaultMPUserList_UserInstance = [[MPUserList_User alloc] init];
+ }
+}
++ (MPUserList_User*) defaultInstance {
+ return defaultMPUserList_UserInstance;
+}
+- (MPUserList_User*) defaultInstance {
+ return defaultMPUserList_UserInstance;
+}
+- (BOOL) isInitialized {
+ if (!self.hasUserId) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasUserId) {
+ [output writeUInt32:1 value:self.userId];
+ }
+ if (self.hasName) {
+ [output writeString:2 value:self.name];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasUserId) {
+ size += computeUInt32Size(1, self.userId);
+ }
+ if (self.hasName) {
+ size += computeStringSize(2, self.name);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPUserList_User*) parseFromData:(NSData*) data {
+ return (MPUserList_User*)[[[MPUserList_User builder] mergeFromData:data] build];
+}
++ (MPUserList_User*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserList_User*)[[[MPUserList_User builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPUserList_User*) parseFromInputStream:(NSInputStream*) input {
+ return (MPUserList_User*)[[[MPUserList_User builder] mergeFromInputStream:input] build];
+}
++ (MPUserList_User*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserList_User*)[[[MPUserList_User builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserList_User*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPUserList_User*)[[[MPUserList_User builder] mergeFromCodedInputStream:input] build];
+}
++ (MPUserList_User*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserList_User*)[[[MPUserList_User builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserList_User_Builder*) builder {
+ return [[[MPUserList_User_Builder alloc] init] autorelease];
+}
++ (MPUserList_User_Builder*) builderWithPrototype:(MPUserList_User*) prototype {
+ return [[MPUserList_User builder] mergeFrom:prototype];
+}
+- (MPUserList_User_Builder*) builder {
+ return [MPUserList_User builder];
+}
+@end
+
+@interface MPUserList_User_Builder()
+@property (retain) MPUserList_User* result;
+@end
+
+@implementation MPUserList_User_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPUserList_User alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPUserList_User_Builder*) clear {
+ self.result = [[[MPUserList_User alloc] init] autorelease];
+ return self;
+}
+- (MPUserList_User_Builder*) clone {
+ return [MPUserList_User builderWithPrototype:result];
+}
+- (MPUserList_User*) defaultInstance {
+ return [MPUserList_User defaultInstance];
+}
+- (MPUserList_User*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPUserList_User*) buildPartial {
+ MPUserList_User* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPUserList_User_Builder*) mergeFrom:(MPUserList_User*) other {
+ if (other == [MPUserList_User defaultInstance]) {
+ return self;
+ }
+ if (other.hasUserId) {
+ [self setUserId:other.userId];
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPUserList_User_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPUserList_User_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setUserId:[input readUInt32]];
+ break;
+ }
+ case 18: {
+ [self setName:[input readString]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasUserId {
+ return result.hasUserId;
+}
+- (int32_t) userId {
+ return result.userId;
+}
+- (MPUserList_User_Builder*) setUserId:(int32_t) value {
+ result.hasUserId = YES;
+ result.userId = value;
+ return self;
+}
+- (MPUserList_User_Builder*) clearUserId {
+ result.hasUserId = NO;
+ result.userId = 0;
+ return self;
+}
+- (BOOL) hasName {
+ return result.hasName;
+}
+- (NSString*) name {
+ return result.name;
+}
+- (MPUserList_User_Builder*) setName:(NSString*) value {
+ result.hasName = YES;
+ result.name = value;
+ return self;
+}
+- (MPUserList_User_Builder*) clearName {
+ result.hasName = NO;
+ result.name = @"";
+ return self;
+}
+@end
+
+@interface MPUserList_Builder()
+@property (retain) MPUserList* result;
+@end
+
+@implementation MPUserList_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPUserList alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPUserList_Builder*) clear {
+ self.result = [[[MPUserList alloc] init] autorelease];
+ return self;
+}
+- (MPUserList_Builder*) clone {
+ return [MPUserList builderWithPrototype:result];
+}
+- (MPUserList*) defaultInstance {
+ return [MPUserList defaultInstance];
+}
+- (MPUserList*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPUserList*) buildPartial {
+ MPUserList* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPUserList_Builder*) mergeFrom:(MPUserList*) other {
+ if (other == [MPUserList defaultInstance]) {
+ return self;
+ }
+ if (other.mutableUsersList.count > 0) {
+ if (result.mutableUsersList == nil) {
+ result.mutableUsersList = [NSMutableArray array];
+ }
+ [result.mutableUsersList addObjectsFromArray:other.mutableUsersList];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPUserList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPUserList_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ MPUserList_User_Builder* subBuilder = [MPUserList_User builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addUsers:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) usersList {
+ if (result.mutableUsersList == nil) { return [NSArray array]; }
+ return result.mutableUsersList;
+}
+- (MPUserList_User*) usersAtIndex:(int32_t) index {
+ return [result usersAtIndex:index];
+}
+- (MPUserList_Builder*) replaceUsersAtIndex:(int32_t) index with:(MPUserList_User*) value {
+ [result.mutableUsersList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (MPUserList_Builder*) addAllUsers:(NSArray*) values {
+ if (result.mutableUsersList == nil) {
+ result.mutableUsersList = [NSMutableArray array];
+ }
+ [result.mutableUsersList addObjectsFromArray:values];
+ return self;
+}
+- (MPUserList_Builder*) clearUsersList {
+ result.mutableUsersList = nil;
+ return self;
+}
+- (MPUserList_Builder*) addUsers:(MPUserList_User*) value {
+ if (result.mutableUsersList == nil) {
+ result.mutableUsersList = [NSMutableArray array];
+ }
+ [result.mutableUsersList addObject:value];
+ return self;
+}
+@end
+
+@interface MPVoiceTarget ()
+@property int32_t id;
+@property (retain) NSMutableArray* mutableTargetsList;
+@end
+
+@implementation MPVoiceTarget
+
+- (BOOL) hasId {
+ return !!hasId_;
+}
+- (void) setHasId:(BOOL) value {
+ hasId_ = !!value;
+}
+@synthesize id;
+@synthesize mutableTargetsList;
+- (void) dealloc {
+ self.mutableTargetsList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.id = 0;
+ }
+ return self;
+}
+static MPVoiceTarget* defaultMPVoiceTargetInstance = nil;
++ (void) initialize {
+ if (self == [MPVoiceTarget class]) {
+ defaultMPVoiceTargetInstance = [[MPVoiceTarget alloc] init];
+ }
+}
++ (MPVoiceTarget*) defaultInstance {
+ return defaultMPVoiceTargetInstance;
+}
+- (MPVoiceTarget*) defaultInstance {
+ return defaultMPVoiceTargetInstance;
+}
+- (NSArray*) targetsList {
+ return mutableTargetsList;
+}
+- (MPVoiceTarget_Target*) targetsAtIndex:(int32_t) index {
+ id value = [mutableTargetsList objectAtIndex:index];
+ return value;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasId) {
+ [output writeUInt32:1 value:self.id];
+ }
+ for (MPVoiceTarget_Target* element in self.targetsList) {
+ [output writeMessage:2 value:element];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasId) {
+ size += computeUInt32Size(1, self.id);
+ }
+ for (MPVoiceTarget_Target* element in self.targetsList) {
+ size += computeMessageSize(2, element);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPVoiceTarget*) parseFromData:(NSData*) data {
+ return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromData:data] build];
+}
++ (MPVoiceTarget*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPVoiceTarget*) parseFromInputStream:(NSInputStream*) input {
+ return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromInputStream:input] build];
+}
++ (MPVoiceTarget*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPVoiceTarget*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromCodedInputStream:input] build];
+}
++ (MPVoiceTarget*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPVoiceTarget*)[[[MPVoiceTarget builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPVoiceTarget_Builder*) builder {
+ return [[[MPVoiceTarget_Builder alloc] init] autorelease];
+}
++ (MPVoiceTarget_Builder*) builderWithPrototype:(MPVoiceTarget*) prototype {
+ return [[MPVoiceTarget builder] mergeFrom:prototype];
+}
+- (MPVoiceTarget_Builder*) builder {
+ return [MPVoiceTarget builder];
+}
+@end
+
+@interface MPVoiceTarget_Target ()
+@property (retain) NSMutableArray* mutableSessionList;
+@property int32_t channelId;
+@property (retain) NSString* group;
+@property BOOL links;
+@property BOOL children;
+@end
+
+@implementation MPVoiceTarget_Target
+
+@synthesize mutableSessionList;
+- (BOOL) hasChannelId {
+ return !!hasChannelId_;
+}
+- (void) setHasChannelId:(BOOL) value {
+ hasChannelId_ = !!value;
+}
+@synthesize channelId;
+- (BOOL) hasGroup {
+ return !!hasGroup_;
+}
+- (void) setHasGroup:(BOOL) value {
+ hasGroup_ = !!value;
+}
+@synthesize group;
+- (BOOL) hasLinks {
+ return !!hasLinks_;
+}
+- (void) setHasLinks:(BOOL) value {
+ hasLinks_ = !!value;
+}
+- (BOOL) links {
+ return !!links_;
+}
+- (void) setLinks:(BOOL) value {
+ links_ = !!value;
+}
+- (BOOL) hasChildren {
+ return !!hasChildren_;
+}
+- (void) setHasChildren:(BOOL) value {
+ hasChildren_ = !!value;
+}
+- (BOOL) children {
+ return !!children_;
+}
+- (void) setChildren:(BOOL) value {
+ children_ = !!value;
+}
+- (void) dealloc {
+ self.mutableSessionList = nil;
+ self.group = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.channelId = 0;
+ self.group = @"";
+ self.links = NO;
+ self.children = NO;
+ }
+ return self;
+}
+static MPVoiceTarget_Target* defaultMPVoiceTarget_TargetInstance = nil;
++ (void) initialize {
+ if (self == [MPVoiceTarget_Target class]) {
+ defaultMPVoiceTarget_TargetInstance = [[MPVoiceTarget_Target alloc] init];
+ }
+}
++ (MPVoiceTarget_Target*) defaultInstance {
+ return defaultMPVoiceTarget_TargetInstance;
+}
+- (MPVoiceTarget_Target*) defaultInstance {
+ return defaultMPVoiceTarget_TargetInstance;
+}
+- (NSArray*) sessionList {
+ return mutableSessionList;
+}
+- (int32_t) sessionAtIndex:(int32_t) index {
+ id value = [mutableSessionList objectAtIndex:index];
+ return [value intValue];
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (NSNumber* value in self.mutableSessionList) {
+ [output writeUInt32:1 value:[value intValue]];
+ }
+ if (self.hasChannelId) {
+ [output writeUInt32:2 value:self.channelId];
+ }
+ if (self.hasGroup) {
+ [output writeString:3 value:self.group];
+ }
+ if (self.hasLinks) {
+ [output writeBool:4 value:self.links];
+ }
+ if (self.hasChildren) {
+ [output writeBool:5 value:self.children];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableSessionList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableSessionList.count;
+ }
+ if (self.hasChannelId) {
+ size += computeUInt32Size(2, self.channelId);
+ }
+ if (self.hasGroup) {
+ size += computeStringSize(3, self.group);
+ }
+ if (self.hasLinks) {
+ size += computeBoolSize(4, self.links);
+ }
+ if (self.hasChildren) {
+ size += computeBoolSize(5, self.children);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPVoiceTarget_Target*) parseFromData:(NSData*) data {
+ return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromData:data] build];
+}
++ (MPVoiceTarget_Target*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPVoiceTarget_Target*) parseFromInputStream:(NSInputStream*) input {
+ return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromInputStream:input] build];
+}
++ (MPVoiceTarget_Target*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPVoiceTarget_Target*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromCodedInputStream:input] build];
+}
++ (MPVoiceTarget_Target*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPVoiceTarget_Target*)[[[MPVoiceTarget_Target builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPVoiceTarget_Target_Builder*) builder {
+ return [[[MPVoiceTarget_Target_Builder alloc] init] autorelease];
+}
++ (MPVoiceTarget_Target_Builder*) builderWithPrototype:(MPVoiceTarget_Target*) prototype {
+ return [[MPVoiceTarget_Target builder] mergeFrom:prototype];
+}
+- (MPVoiceTarget_Target_Builder*) builder {
+ return [MPVoiceTarget_Target builder];
+}
+@end
+
+@interface MPVoiceTarget_Target_Builder()
+@property (retain) MPVoiceTarget_Target* result;
+@end
+
+@implementation MPVoiceTarget_Target_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPVoiceTarget_Target alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPVoiceTarget_Target_Builder*) clear {
+ self.result = [[[MPVoiceTarget_Target alloc] init] autorelease];
+ return self;
+}
+- (MPVoiceTarget_Target_Builder*) clone {
+ return [MPVoiceTarget_Target builderWithPrototype:result];
+}
+- (MPVoiceTarget_Target*) defaultInstance {
+ return [MPVoiceTarget_Target defaultInstance];
+}
+- (MPVoiceTarget_Target*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPVoiceTarget_Target*) buildPartial {
+ MPVoiceTarget_Target* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPVoiceTarget_Target_Builder*) mergeFrom:(MPVoiceTarget_Target*) other {
+ if (other == [MPVoiceTarget_Target defaultInstance]) {
+ return self;
+ }
+ if (other.mutableSessionList.count > 0) {
+ if (result.mutableSessionList == nil) {
+ result.mutableSessionList = [NSMutableArray array];
+ }
+ [result.mutableSessionList addObjectsFromArray:other.mutableSessionList];
+ }
+ if (other.hasChannelId) {
+ [self setChannelId:other.channelId];
+ }
+ if (other.hasGroup) {
+ [self setGroup:other.group];
+ }
+ if (other.hasLinks) {
+ [self setLinks:other.links];
+ }
+ if (other.hasChildren) {
+ [self setChildren:other.children];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPVoiceTarget_Target_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPVoiceTarget_Target_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self addSession:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setChannelId:[input readUInt32]];
+ break;
+ }
+ case 26: {
+ [self setGroup:[input readString]];
+ break;
+ }
+ case 32: {
+ [self setLinks:[input readBool]];
+ break;
+ }
+ case 40: {
+ [self setChildren:[input readBool]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) sessionList {
+ if (result.mutableSessionList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableSessionList;
+}
+- (int32_t) sessionAtIndex:(int32_t) index {
+ return [result sessionAtIndex:index];
+}
+- (MPVoiceTarget_Target_Builder*) replaceSessionAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableSessionList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPVoiceTarget_Target_Builder*) addSession:(int32_t) value {
+ if (result.mutableSessionList == nil) {
+ result.mutableSessionList = [NSMutableArray array];
+ }
+ [result.mutableSessionList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPVoiceTarget_Target_Builder*) addAllSession:(NSArray*) values {
+ if (result.mutableSessionList == nil) {
+ result.mutableSessionList = [NSMutableArray array];
+ }
+ [result.mutableSessionList addObjectsFromArray:values];
+ return self;
+}
+- (MPVoiceTarget_Target_Builder*) clearSessionList {
+ result.mutableSessionList = nil;
+ return self;
+}
+- (BOOL) hasChannelId {
+ return result.hasChannelId;
+}
+- (int32_t) channelId {
+ return result.channelId;
+}
+- (MPVoiceTarget_Target_Builder*) setChannelId:(int32_t) value {
+ result.hasChannelId = YES;
+ result.channelId = value;
+ return self;
+}
+- (MPVoiceTarget_Target_Builder*) clearChannelId {
+ result.hasChannelId = NO;
+ result.channelId = 0;
+ return self;
+}
+- (BOOL) hasGroup {
+ return result.hasGroup;
+}
+- (NSString*) group {
+ return result.group;
+}
+- (MPVoiceTarget_Target_Builder*) setGroup:(NSString*) value {
+ result.hasGroup = YES;
+ result.group = value;
+ return self;
+}
+- (MPVoiceTarget_Target_Builder*) clearGroup {
+ result.hasGroup = NO;
+ result.group = @"";
+ return self;
+}
+- (BOOL) hasLinks {
+ return result.hasLinks;
+}
+- (BOOL) links {
+ return result.links;
+}
+- (MPVoiceTarget_Target_Builder*) setLinks:(BOOL) value {
+ result.hasLinks = YES;
+ result.links = value;
+ return self;
+}
+- (MPVoiceTarget_Target_Builder*) clearLinks {
+ result.hasLinks = NO;
+ result.links = NO;
+ return self;
+}
+- (BOOL) hasChildren {
+ return result.hasChildren;
+}
+- (BOOL) children {
+ return result.children;
+}
+- (MPVoiceTarget_Target_Builder*) setChildren:(BOOL) value {
+ result.hasChildren = YES;
+ result.children = value;
+ return self;
+}
+- (MPVoiceTarget_Target_Builder*) clearChildren {
+ result.hasChildren = NO;
+ result.children = NO;
+ return self;
+}
+@end
+
+@interface MPVoiceTarget_Builder()
+@property (retain) MPVoiceTarget* result;
+@end
+
+@implementation MPVoiceTarget_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPVoiceTarget alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPVoiceTarget_Builder*) clear {
+ self.result = [[[MPVoiceTarget alloc] init] autorelease];
+ return self;
+}
+- (MPVoiceTarget_Builder*) clone {
+ return [MPVoiceTarget builderWithPrototype:result];
+}
+- (MPVoiceTarget*) defaultInstance {
+ return [MPVoiceTarget defaultInstance];
+}
+- (MPVoiceTarget*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPVoiceTarget*) buildPartial {
+ MPVoiceTarget* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPVoiceTarget_Builder*) mergeFrom:(MPVoiceTarget*) other {
+ if (other == [MPVoiceTarget defaultInstance]) {
+ return self;
+ }
+ if (other.hasId) {
+ [self setId:other.id];
+ }
+ if (other.mutableTargetsList.count > 0) {
+ if (result.mutableTargetsList == nil) {
+ result.mutableTargetsList = [NSMutableArray array];
+ }
+ [result.mutableTargetsList addObjectsFromArray:other.mutableTargetsList];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPVoiceTarget_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPVoiceTarget_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setId:[input readUInt32]];
+ break;
+ }
+ case 18: {
+ MPVoiceTarget_Target_Builder* subBuilder = [MPVoiceTarget_Target builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addTargets:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasId {
+ return result.hasId;
+}
+- (int32_t) id {
+ return result.id;
+}
+- (MPVoiceTarget_Builder*) setId:(int32_t) value {
+ result.hasId = YES;
+ result.id = value;
+ return self;
+}
+- (MPVoiceTarget_Builder*) clearId {
+ result.hasId = NO;
+ result.id = 0;
+ return self;
+}
+- (NSArray*) targetsList {
+ if (result.mutableTargetsList == nil) { return [NSArray array]; }
+ return result.mutableTargetsList;
+}
+- (MPVoiceTarget_Target*) targetsAtIndex:(int32_t) index {
+ return [result targetsAtIndex:index];
+}
+- (MPVoiceTarget_Builder*) replaceTargetsAtIndex:(int32_t) index with:(MPVoiceTarget_Target*) value {
+ [result.mutableTargetsList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (MPVoiceTarget_Builder*) addAllTargets:(NSArray*) values {
+ if (result.mutableTargetsList == nil) {
+ result.mutableTargetsList = [NSMutableArray array];
+ }
+ [result.mutableTargetsList addObjectsFromArray:values];
+ return self;
+}
+- (MPVoiceTarget_Builder*) clearTargetsList {
+ result.mutableTargetsList = nil;
+ return self;
+}
+- (MPVoiceTarget_Builder*) addTargets:(MPVoiceTarget_Target*) value {
+ if (result.mutableTargetsList == nil) {
+ result.mutableTargetsList = [NSMutableArray array];
+ }
+ [result.mutableTargetsList addObject:value];
+ return self;
+}
+@end
+
+@interface MPPermissionQuery ()
+@property int32_t channelId;
+@property int32_t permissions;
+@property BOOL flush;
+@end
+
+@implementation MPPermissionQuery
+
+- (BOOL) hasChannelId {
+ return !!hasChannelId_;
+}
+- (void) setHasChannelId:(BOOL) value {
+ hasChannelId_ = !!value;
+}
+@synthesize channelId;
+- (BOOL) hasPermissions {
+ return !!hasPermissions_;
+}
+- (void) setHasPermissions:(BOOL) value {
+ hasPermissions_ = !!value;
+}
+@synthesize permissions;
+- (BOOL) hasFlush {
+ return !!hasFlush_;
+}
+- (void) setHasFlush:(BOOL) value {
+ hasFlush_ = !!value;
+}
+- (BOOL) flush {
+ return !!flush_;
+}
+- (void) setFlush:(BOOL) value {
+ flush_ = !!value;
+}
+- (void) dealloc {
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.channelId = 0;
+ self.permissions = 0;
+ self.flush = NO;
+ }
+ return self;
+}
+static MPPermissionQuery* defaultMPPermissionQueryInstance = nil;
++ (void) initialize {
+ if (self == [MPPermissionQuery class]) {
+ defaultMPPermissionQueryInstance = [[MPPermissionQuery alloc] init];
+ }
+}
++ (MPPermissionQuery*) defaultInstance {
+ return defaultMPPermissionQueryInstance;
+}
+- (MPPermissionQuery*) defaultInstance {
+ return defaultMPPermissionQueryInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasChannelId) {
+ [output writeUInt32:1 value:self.channelId];
+ }
+ if (self.hasPermissions) {
+ [output writeUInt32:2 value:self.permissions];
+ }
+ if (self.hasFlush) {
+ [output writeBool:3 value:self.flush];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasChannelId) {
+ size += computeUInt32Size(1, self.channelId);
+ }
+ if (self.hasPermissions) {
+ size += computeUInt32Size(2, self.permissions);
+ }
+ if (self.hasFlush) {
+ size += computeBoolSize(3, self.flush);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPPermissionQuery*) parseFromData:(NSData*) data {
+ return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromData:data] build];
+}
++ (MPPermissionQuery*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPPermissionQuery*) parseFromInputStream:(NSInputStream*) input {
+ return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromInputStream:input] build];
+}
++ (MPPermissionQuery*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPPermissionQuery*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromCodedInputStream:input] build];
+}
++ (MPPermissionQuery*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPPermissionQuery*)[[[MPPermissionQuery builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPPermissionQuery_Builder*) builder {
+ return [[[MPPermissionQuery_Builder alloc] init] autorelease];
+}
++ (MPPermissionQuery_Builder*) builderWithPrototype:(MPPermissionQuery*) prototype {
+ return [[MPPermissionQuery builder] mergeFrom:prototype];
+}
+- (MPPermissionQuery_Builder*) builder {
+ return [MPPermissionQuery builder];
+}
+@end
+
+@interface MPPermissionQuery_Builder()
+@property (retain) MPPermissionQuery* result;
+@end
+
+@implementation MPPermissionQuery_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPPermissionQuery alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPPermissionQuery_Builder*) clear {
+ self.result = [[[MPPermissionQuery alloc] init] autorelease];
+ return self;
+}
+- (MPPermissionQuery_Builder*) clone {
+ return [MPPermissionQuery builderWithPrototype:result];
+}
+- (MPPermissionQuery*) defaultInstance {
+ return [MPPermissionQuery defaultInstance];
+}
+- (MPPermissionQuery*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPPermissionQuery*) buildPartial {
+ MPPermissionQuery* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPPermissionQuery_Builder*) mergeFrom:(MPPermissionQuery*) other {
+ if (other == [MPPermissionQuery defaultInstance]) {
+ return self;
+ }
+ if (other.hasChannelId) {
+ [self setChannelId:other.channelId];
+ }
+ if (other.hasPermissions) {
+ [self setPermissions:other.permissions];
+ }
+ if (other.hasFlush) {
+ [self setFlush:other.flush];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPPermissionQuery_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPPermissionQuery_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setChannelId:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setPermissions:[input readUInt32]];
+ break;
+ }
+ case 24: {
+ [self setFlush:[input readBool]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasChannelId {
+ return result.hasChannelId;
+}
+- (int32_t) channelId {
+ return result.channelId;
+}
+- (MPPermissionQuery_Builder*) setChannelId:(int32_t) value {
+ result.hasChannelId = YES;
+ result.channelId = value;
+ return self;
+}
+- (MPPermissionQuery_Builder*) clearChannelId {
+ result.hasChannelId = NO;
+ result.channelId = 0;
+ return self;
+}
+- (BOOL) hasPermissions {
+ return result.hasPermissions;
+}
+- (int32_t) permissions {
+ return result.permissions;
+}
+- (MPPermissionQuery_Builder*) setPermissions:(int32_t) value {
+ result.hasPermissions = YES;
+ result.permissions = value;
+ return self;
+}
+- (MPPermissionQuery_Builder*) clearPermissions {
+ result.hasPermissions = NO;
+ result.permissions = 0;
+ return self;
+}
+- (BOOL) hasFlush {
+ return result.hasFlush;
+}
+- (BOOL) flush {
+ return result.flush;
+}
+- (MPPermissionQuery_Builder*) setFlush:(BOOL) value {
+ result.hasFlush = YES;
+ result.flush = value;
+ return self;
+}
+- (MPPermissionQuery_Builder*) clearFlush {
+ result.hasFlush = NO;
+ result.flush = NO;
+ return self;
+}
+@end
+
+@interface MPCodecVersion ()
+@property int32_t alpha;
+@property int32_t beta;
+@property BOOL preferAlpha;
+@end
+
+@implementation MPCodecVersion
+
+- (BOOL) hasAlpha {
+ return !!hasAlpha_;
+}
+- (void) setHasAlpha:(BOOL) value {
+ hasAlpha_ = !!value;
+}
+@synthesize alpha;
+- (BOOL) hasBeta {
+ return !!hasBeta_;
+}
+- (void) setHasBeta:(BOOL) value {
+ hasBeta_ = !!value;
+}
+@synthesize beta;
+- (BOOL) hasPreferAlpha {
+ return !!hasPreferAlpha_;
+}
+- (void) setHasPreferAlpha:(BOOL) value {
+ hasPreferAlpha_ = !!value;
+}
+- (BOOL) preferAlpha {
+ return !!preferAlpha_;
+}
+- (void) setPreferAlpha:(BOOL) value {
+ preferAlpha_ = !!value;
+}
+- (void) dealloc {
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.alpha = 0;
+ self.beta = 0;
+ self.preferAlpha = YES;
+ }
+ return self;
+}
+static MPCodecVersion* defaultMPCodecVersionInstance = nil;
++ (void) initialize {
+ if (self == [MPCodecVersion class]) {
+ defaultMPCodecVersionInstance = [[MPCodecVersion alloc] init];
+ }
+}
++ (MPCodecVersion*) defaultInstance {
+ return defaultMPCodecVersionInstance;
+}
+- (MPCodecVersion*) defaultInstance {
+ return defaultMPCodecVersionInstance;
+}
+- (BOOL) isInitialized {
+ if (!self.hasAlpha) {
+ return NO;
+ }
+ if (!self.hasBeta) {
+ return NO;
+ }
+ if (!self.hasPreferAlpha) {
+ return NO;
+ }
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasAlpha) {
+ [output writeInt32:1 value:self.alpha];
+ }
+ if (self.hasBeta) {
+ [output writeInt32:2 value:self.beta];
+ }
+ if (self.hasPreferAlpha) {
+ [output writeBool:3 value:self.preferAlpha];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasAlpha) {
+ size += computeInt32Size(1, self.alpha);
+ }
+ if (self.hasBeta) {
+ size += computeInt32Size(2, self.beta);
+ }
+ if (self.hasPreferAlpha) {
+ size += computeBoolSize(3, self.preferAlpha);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPCodecVersion*) parseFromData:(NSData*) data {
+ return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromData:data] build];
+}
++ (MPCodecVersion*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPCodecVersion*) parseFromInputStream:(NSInputStream*) input {
+ return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromInputStream:input] build];
+}
++ (MPCodecVersion*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPCodecVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromCodedInputStream:input] build];
+}
++ (MPCodecVersion*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPCodecVersion*)[[[MPCodecVersion builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPCodecVersion_Builder*) builder {
+ return [[[MPCodecVersion_Builder alloc] init] autorelease];
+}
++ (MPCodecVersion_Builder*) builderWithPrototype:(MPCodecVersion*) prototype {
+ return [[MPCodecVersion builder] mergeFrom:prototype];
+}
+- (MPCodecVersion_Builder*) builder {
+ return [MPCodecVersion builder];
+}
+@end
+
+@interface MPCodecVersion_Builder()
+@property (retain) MPCodecVersion* result;
+@end
+
+@implementation MPCodecVersion_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPCodecVersion alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPCodecVersion_Builder*) clear {
+ self.result = [[[MPCodecVersion alloc] init] autorelease];
+ return self;
+}
+- (MPCodecVersion_Builder*) clone {
+ return [MPCodecVersion builderWithPrototype:result];
+}
+- (MPCodecVersion*) defaultInstance {
+ return [MPCodecVersion defaultInstance];
+}
+- (MPCodecVersion*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPCodecVersion*) buildPartial {
+ MPCodecVersion* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPCodecVersion_Builder*) mergeFrom:(MPCodecVersion*) other {
+ if (other == [MPCodecVersion defaultInstance]) {
+ return self;
+ }
+ if (other.hasAlpha) {
+ [self setAlpha:other.alpha];
+ }
+ if (other.hasBeta) {
+ [self setBeta:other.beta];
+ }
+ if (other.hasPreferAlpha) {
+ [self setPreferAlpha:other.preferAlpha];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPCodecVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPCodecVersion_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setAlpha:[input readInt32]];
+ break;
+ }
+ case 16: {
+ [self setBeta:[input readInt32]];
+ break;
+ }
+ case 24: {
+ [self setPreferAlpha:[input readBool]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasAlpha {
+ return result.hasAlpha;
+}
+- (int32_t) alpha {
+ return result.alpha;
+}
+- (MPCodecVersion_Builder*) setAlpha:(int32_t) value {
+ result.hasAlpha = YES;
+ result.alpha = value;
+ return self;
+}
+- (MPCodecVersion_Builder*) clearAlpha {
+ result.hasAlpha = NO;
+ result.alpha = 0;
+ return self;
+}
+- (BOOL) hasBeta {
+ return result.hasBeta;
+}
+- (int32_t) beta {
+ return result.beta;
+}
+- (MPCodecVersion_Builder*) setBeta:(int32_t) value {
+ result.hasBeta = YES;
+ result.beta = value;
+ return self;
+}
+- (MPCodecVersion_Builder*) clearBeta {
+ result.hasBeta = NO;
+ result.beta = 0;
+ return self;
+}
+- (BOOL) hasPreferAlpha {
+ return result.hasPreferAlpha;
+}
+- (BOOL) preferAlpha {
+ return result.preferAlpha;
+}
+- (MPCodecVersion_Builder*) setPreferAlpha:(BOOL) value {
+ result.hasPreferAlpha = YES;
+ result.preferAlpha = value;
+ return self;
+}
+- (MPCodecVersion_Builder*) clearPreferAlpha {
+ result.hasPreferAlpha = NO;
+ result.preferAlpha = YES;
+ return self;
+}
+@end
+
+@interface MPUserStats ()
+@property int32_t session;
+@property BOOL statsOnly;
+@property (retain) NSMutableArray* mutableCertificatesList;
+@property (retain) MPUserStats_Stats* fromClient;
+@property (retain) MPUserStats_Stats* fromServer;
+@property int32_t udpPackets;
+@property int32_t tcpPackets;
+@property Float32 udpPingAvg;
+@property Float32 udpPingVar;
+@property Float32 tcpPingAvg;
+@property Float32 tcpPingVar;
+@property (retain) MPVersion* version;
+@property (retain) NSMutableArray* mutableCeltVersionsList;
+@property (retain) NSData* address;
+@property int32_t bandwidth;
+@property int32_t onlinesecs;
+@property int32_t idlesecs;
+@property BOOL strongCertificate;
+@end
+
+@implementation MPUserStats
+
+- (BOOL) hasSession {
+ return !!hasSession_;
+}
+- (void) setHasSession:(BOOL) value {
+ hasSession_ = !!value;
+}
+@synthesize session;
+- (BOOL) hasStatsOnly {
+ return !!hasStatsOnly_;
+}
+- (void) setHasStatsOnly:(BOOL) value {
+ hasStatsOnly_ = !!value;
+}
+- (BOOL) statsOnly {
+ return !!statsOnly_;
+}
+- (void) setStatsOnly:(BOOL) value {
+ statsOnly_ = !!value;
+}
+@synthesize mutableCertificatesList;
+- (BOOL) hasFromClient {
+ return !!hasFromClient_;
+}
+- (void) setHasFromClient:(BOOL) value {
+ hasFromClient_ = !!value;
+}
+@synthesize fromClient;
+- (BOOL) hasFromServer {
+ return !!hasFromServer_;
+}
+- (void) setHasFromServer:(BOOL) value {
+ hasFromServer_ = !!value;
+}
+@synthesize fromServer;
+- (BOOL) hasUdpPackets {
+ return !!hasUdpPackets_;
+}
+- (void) setHasUdpPackets:(BOOL) value {
+ hasUdpPackets_ = !!value;
+}
+@synthesize udpPackets;
+- (BOOL) hasTcpPackets {
+ return !!hasTcpPackets_;
+}
+- (void) setHasTcpPackets:(BOOL) value {
+ hasTcpPackets_ = !!value;
+}
+@synthesize tcpPackets;
+- (BOOL) hasUdpPingAvg {
+ return !!hasUdpPingAvg_;
+}
+- (void) setHasUdpPingAvg:(BOOL) value {
+ hasUdpPingAvg_ = !!value;
+}
+@synthesize udpPingAvg;
+- (BOOL) hasUdpPingVar {
+ return !!hasUdpPingVar_;
+}
+- (void) setHasUdpPingVar:(BOOL) value {
+ hasUdpPingVar_ = !!value;
+}
+@synthesize udpPingVar;
+- (BOOL) hasTcpPingAvg {
+ return !!hasTcpPingAvg_;
+}
+- (void) setHasTcpPingAvg:(BOOL) value {
+ hasTcpPingAvg_ = !!value;
+}
+@synthesize tcpPingAvg;
+- (BOOL) hasTcpPingVar {
+ return !!hasTcpPingVar_;
+}
+- (void) setHasTcpPingVar:(BOOL) value {
+ hasTcpPingVar_ = !!value;
+}
+@synthesize tcpPingVar;
+- (BOOL) hasVersion {
+ return !!hasVersion_;
+}
+- (void) setHasVersion:(BOOL) value {
+ hasVersion_ = !!value;
+}
+@synthesize version;
+@synthesize mutableCeltVersionsList;
+- (BOOL) hasAddress {
+ return !!hasAddress_;
+}
+- (void) setHasAddress:(BOOL) value {
+ hasAddress_ = !!value;
+}
+@synthesize address;
+- (BOOL) hasBandwidth {
+ return !!hasBandwidth_;
+}
+- (void) setHasBandwidth:(BOOL) value {
+ hasBandwidth_ = !!value;
+}
+@synthesize bandwidth;
+- (BOOL) hasOnlinesecs {
+ return !!hasOnlinesecs_;
+}
+- (void) setHasOnlinesecs:(BOOL) value {
+ hasOnlinesecs_ = !!value;
+}
+@synthesize onlinesecs;
+- (BOOL) hasIdlesecs {
+ return !!hasIdlesecs_;
+}
+- (void) setHasIdlesecs:(BOOL) value {
+ hasIdlesecs_ = !!value;
+}
+@synthesize idlesecs;
+- (BOOL) hasStrongCertificate {
+ return !!hasStrongCertificate_;
+}
+- (void) setHasStrongCertificate:(BOOL) value {
+ hasStrongCertificate_ = !!value;
+}
+- (BOOL) strongCertificate {
+ return !!strongCertificate_;
+}
+- (void) setStrongCertificate:(BOOL) value {
+ strongCertificate_ = !!value;
+}
+- (void) dealloc {
+ self.mutableCertificatesList = nil;
+ self.fromClient = nil;
+ self.fromServer = nil;
+ self.version = nil;
+ self.mutableCeltVersionsList = nil;
+ self.address = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.session = 0;
+ self.statsOnly = NO;
+ self.fromClient = [MPUserStats_Stats defaultInstance];
+ self.fromServer = [MPUserStats_Stats defaultInstance];
+ self.udpPackets = 0;
+ self.tcpPackets = 0;
+ self.udpPingAvg = 0;
+ self.udpPingVar = 0;
+ self.tcpPingAvg = 0;
+ self.tcpPingVar = 0;
+ self.version = [MPVersion defaultInstance];
+ self.address = [NSData data];
+ self.bandwidth = 0;
+ self.onlinesecs = 0;
+ self.idlesecs = 0;
+ self.strongCertificate = NO;
+ }
+ return self;
+}
+static MPUserStats* defaultMPUserStatsInstance = nil;
++ (void) initialize {
+ if (self == [MPUserStats class]) {
+ defaultMPUserStatsInstance = [[MPUserStats alloc] init];
+ }
+}
++ (MPUserStats*) defaultInstance {
+ return defaultMPUserStatsInstance;
+}
+- (MPUserStats*) defaultInstance {
+ return defaultMPUserStatsInstance;
+}
+- (NSArray*) certificatesList {
+ return mutableCertificatesList;
+}
+- (NSData*) certificatesAtIndex:(int32_t) index {
+ id value = [mutableCertificatesList objectAtIndex:index];
+ return value;
+}
+- (NSArray*) celtVersionsList {
+ return mutableCeltVersionsList;
+}
+- (int32_t) celtVersionsAtIndex:(int32_t) index {
+ id value = [mutableCeltVersionsList objectAtIndex:index];
+ return [value intValue];
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasSession) {
+ [output writeUInt32:1 value:self.session];
+ }
+ if (self.hasStatsOnly) {
+ [output writeBool:2 value:self.statsOnly];
+ }
+ for (NSData* element in self.mutableCertificatesList) {
+ [output writeData:3 value:element];
+ }
+ if (self.hasFromClient) {
+ [output writeMessage:4 value:self.fromClient];
+ }
+ if (self.hasFromServer) {
+ [output writeMessage:5 value:self.fromServer];
+ }
+ if (self.hasUdpPackets) {
+ [output writeUInt32:6 value:self.udpPackets];
+ }
+ if (self.hasTcpPackets) {
+ [output writeUInt32:7 value:self.tcpPackets];
+ }
+ if (self.hasUdpPingAvg) {
+ [output writeFloat:8 value:self.udpPingAvg];
+ }
+ if (self.hasUdpPingVar) {
+ [output writeFloat:9 value:self.udpPingVar];
+ }
+ if (self.hasTcpPingAvg) {
+ [output writeFloat:10 value:self.tcpPingAvg];
+ }
+ if (self.hasTcpPingVar) {
+ [output writeFloat:11 value:self.tcpPingVar];
+ }
+ if (self.hasVersion) {
+ [output writeMessage:12 value:self.version];
+ }
+ for (NSNumber* value in self.mutableCeltVersionsList) {
+ [output writeInt32:13 value:[value intValue]];
+ }
+ if (self.hasAddress) {
+ [output writeData:14 value:self.address];
+ }
+ if (self.hasBandwidth) {
+ [output writeUInt32:15 value:self.bandwidth];
+ }
+ if (self.hasOnlinesecs) {
+ [output writeUInt32:16 value:self.onlinesecs];
+ }
+ if (self.hasIdlesecs) {
+ [output writeUInt32:17 value:self.idlesecs];
+ }
+ if (self.hasStrongCertificate) {
+ [output writeBool:18 value:self.strongCertificate];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasSession) {
+ size += computeUInt32Size(1, self.session);
+ }
+ if (self.hasStatsOnly) {
+ size += computeBoolSize(2, self.statsOnly);
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSData* element in self.mutableCertificatesList) {
+ dataSize += computeDataSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * self.mutableCertificatesList.count;
+ }
+ if (self.hasFromClient) {
+ size += computeMessageSize(4, self.fromClient);
+ }
+ if (self.hasFromServer) {
+ size += computeMessageSize(5, self.fromServer);
+ }
+ if (self.hasUdpPackets) {
+ size += computeUInt32Size(6, self.udpPackets);
+ }
+ if (self.hasTcpPackets) {
+ size += computeUInt32Size(7, self.tcpPackets);
+ }
+ if (self.hasUdpPingAvg) {
+ size += computeFloatSize(8, self.udpPingAvg);
+ }
+ if (self.hasUdpPingVar) {
+ size += computeFloatSize(9, self.udpPingVar);
+ }
+ if (self.hasTcpPingAvg) {
+ size += computeFloatSize(10, self.tcpPingAvg);
+ }
+ if (self.hasTcpPingVar) {
+ size += computeFloatSize(11, self.tcpPingVar);
+ }
+ if (self.hasVersion) {
+ size += computeMessageSize(12, self.version);
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableCeltVersionsList) {
+ dataSize += computeInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableCeltVersionsList.count;
+ }
+ if (self.hasAddress) {
+ size += computeDataSize(14, self.address);
+ }
+ if (self.hasBandwidth) {
+ size += computeUInt32Size(15, self.bandwidth);
+ }
+ if (self.hasOnlinesecs) {
+ size += computeUInt32Size(16, self.onlinesecs);
+ }
+ if (self.hasIdlesecs) {
+ size += computeUInt32Size(17, self.idlesecs);
+ }
+ if (self.hasStrongCertificate) {
+ size += computeBoolSize(18, self.strongCertificate);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPUserStats*) parseFromData:(NSData*) data {
+ return (MPUserStats*)[[[MPUserStats builder] mergeFromData:data] build];
+}
++ (MPUserStats*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserStats*)[[[MPUserStats builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPUserStats*) parseFromInputStream:(NSInputStream*) input {
+ return (MPUserStats*)[[[MPUserStats builder] mergeFromInputStream:input] build];
+}
++ (MPUserStats*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserStats*)[[[MPUserStats builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserStats*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPUserStats*)[[[MPUserStats builder] mergeFromCodedInputStream:input] build];
+}
++ (MPUserStats*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserStats*)[[[MPUserStats builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserStats_Builder*) builder {
+ return [[[MPUserStats_Builder alloc] init] autorelease];
+}
++ (MPUserStats_Builder*) builderWithPrototype:(MPUserStats*) prototype {
+ return [[MPUserStats builder] mergeFrom:prototype];
+}
+- (MPUserStats_Builder*) builder {
+ return [MPUserStats builder];
+}
+@end
+
+@interface MPUserStats_Stats ()
+@property int32_t good;
+@property int32_t late;
+@property int32_t lost;
+@property int32_t resync;
+@end
+
+@implementation MPUserStats_Stats
+
+- (BOOL) hasGood {
+ return !!hasGood_;
+}
+- (void) setHasGood:(BOOL) value {
+ hasGood_ = !!value;
+}
+@synthesize good;
+- (BOOL) hasLate {
+ return !!hasLate_;
+}
+- (void) setHasLate:(BOOL) value {
+ hasLate_ = !!value;
+}
+@synthesize late;
+- (BOOL) hasLost {
+ return !!hasLost_;
+}
+- (void) setHasLost:(BOOL) value {
+ hasLost_ = !!value;
+}
+@synthesize lost;
+- (BOOL) hasResync {
+ return !!hasResync_;
+}
+- (void) setHasResync:(BOOL) value {
+ hasResync_ = !!value;
+}
+@synthesize resync;
+- (void) dealloc {
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.good = 0;
+ self.late = 0;
+ self.lost = 0;
+ self.resync = 0;
+ }
+ return self;
+}
+static MPUserStats_Stats* defaultMPUserStats_StatsInstance = nil;
++ (void) initialize {
+ if (self == [MPUserStats_Stats class]) {
+ defaultMPUserStats_StatsInstance = [[MPUserStats_Stats alloc] init];
+ }
+}
++ (MPUserStats_Stats*) defaultInstance {
+ return defaultMPUserStats_StatsInstance;
+}
+- (MPUserStats_Stats*) defaultInstance {
+ return defaultMPUserStats_StatsInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasGood) {
+ [output writeUInt32:1 value:self.good];
+ }
+ if (self.hasLate) {
+ [output writeUInt32:2 value:self.late];
+ }
+ if (self.hasLost) {
+ [output writeUInt32:3 value:self.lost];
+ }
+ if (self.hasResync) {
+ [output writeUInt32:4 value:self.resync];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasGood) {
+ size += computeUInt32Size(1, self.good);
+ }
+ if (self.hasLate) {
+ size += computeUInt32Size(2, self.late);
+ }
+ if (self.hasLost) {
+ size += computeUInt32Size(3, self.lost);
+ }
+ if (self.hasResync) {
+ size += computeUInt32Size(4, self.resync);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPUserStats_Stats*) parseFromData:(NSData*) data {
+ return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromData:data] build];
+}
++ (MPUserStats_Stats*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPUserStats_Stats*) parseFromInputStream:(NSInputStream*) input {
+ return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromInputStream:input] build];
+}
++ (MPUserStats_Stats*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserStats_Stats*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromCodedInputStream:input] build];
+}
++ (MPUserStats_Stats*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPUserStats_Stats*)[[[MPUserStats_Stats builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPUserStats_Stats_Builder*) builder {
+ return [[[MPUserStats_Stats_Builder alloc] init] autorelease];
+}
++ (MPUserStats_Stats_Builder*) builderWithPrototype:(MPUserStats_Stats*) prototype {
+ return [[MPUserStats_Stats builder] mergeFrom:prototype];
+}
+- (MPUserStats_Stats_Builder*) builder {
+ return [MPUserStats_Stats builder];
+}
+@end
+
+@interface MPUserStats_Stats_Builder()
+@property (retain) MPUserStats_Stats* result;
+@end
+
+@implementation MPUserStats_Stats_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPUserStats_Stats alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPUserStats_Stats_Builder*) clear {
+ self.result = [[[MPUserStats_Stats alloc] init] autorelease];
+ return self;
+}
+- (MPUserStats_Stats_Builder*) clone {
+ return [MPUserStats_Stats builderWithPrototype:result];
+}
+- (MPUserStats_Stats*) defaultInstance {
+ return [MPUserStats_Stats defaultInstance];
+}
+- (MPUserStats_Stats*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPUserStats_Stats*) buildPartial {
+ MPUserStats_Stats* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPUserStats_Stats_Builder*) mergeFrom:(MPUserStats_Stats*) other {
+ if (other == [MPUserStats_Stats defaultInstance]) {
+ return self;
+ }
+ if (other.hasGood) {
+ [self setGood:other.good];
+ }
+ if (other.hasLate) {
+ [self setLate:other.late];
+ }
+ if (other.hasLost) {
+ [self setLost:other.lost];
+ }
+ if (other.hasResync) {
+ [self setResync:other.resync];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPUserStats_Stats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPUserStats_Stats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setGood:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setLate:[input readUInt32]];
+ break;
+ }
+ case 24: {
+ [self setLost:[input readUInt32]];
+ break;
+ }
+ case 32: {
+ [self setResync:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasGood {
+ return result.hasGood;
+}
+- (int32_t) good {
+ return result.good;
+}
+- (MPUserStats_Stats_Builder*) setGood:(int32_t) value {
+ result.hasGood = YES;
+ result.good = value;
+ return self;
+}
+- (MPUserStats_Stats_Builder*) clearGood {
+ result.hasGood = NO;
+ result.good = 0;
+ return self;
+}
+- (BOOL) hasLate {
+ return result.hasLate;
+}
+- (int32_t) late {
+ return result.late;
+}
+- (MPUserStats_Stats_Builder*) setLate:(int32_t) value {
+ result.hasLate = YES;
+ result.late = value;
+ return self;
+}
+- (MPUserStats_Stats_Builder*) clearLate {
+ result.hasLate = NO;
+ result.late = 0;
+ return self;
+}
+- (BOOL) hasLost {
+ return result.hasLost;
+}
+- (int32_t) lost {
+ return result.lost;
+}
+- (MPUserStats_Stats_Builder*) setLost:(int32_t) value {
+ result.hasLost = YES;
+ result.lost = value;
+ return self;
+}
+- (MPUserStats_Stats_Builder*) clearLost {
+ result.hasLost = NO;
+ result.lost = 0;
+ return self;
+}
+- (BOOL) hasResync {
+ return result.hasResync;
+}
+- (int32_t) resync {
+ return result.resync;
+}
+- (MPUserStats_Stats_Builder*) setResync:(int32_t) value {
+ result.hasResync = YES;
+ result.resync = value;
+ return self;
+}
+- (MPUserStats_Stats_Builder*) clearResync {
+ result.hasResync = NO;
+ result.resync = 0;
+ return self;
+}
+@end
+
+@interface MPUserStats_Builder()
+@property (retain) MPUserStats* result;
+@end
+
+@implementation MPUserStats_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPUserStats alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPUserStats_Builder*) clear {
+ self.result = [[[MPUserStats alloc] init] autorelease];
+ return self;
+}
+- (MPUserStats_Builder*) clone {
+ return [MPUserStats builderWithPrototype:result];
+}
+- (MPUserStats*) defaultInstance {
+ return [MPUserStats defaultInstance];
+}
+- (MPUserStats*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPUserStats*) buildPartial {
+ MPUserStats* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPUserStats_Builder*) mergeFrom:(MPUserStats*) other {
+ if (other == [MPUserStats defaultInstance]) {
+ return self;
+ }
+ if (other.hasSession) {
+ [self setSession:other.session];
+ }
+ if (other.hasStatsOnly) {
+ [self setStatsOnly:other.statsOnly];
+ }
+ if (other.mutableCertificatesList.count > 0) {
+ if (result.mutableCertificatesList == nil) {
+ result.mutableCertificatesList = [NSMutableArray array];
+ }
+ [result.mutableCertificatesList addObjectsFromArray:other.mutableCertificatesList];
+ }
+ if (other.hasFromClient) {
+ [self mergeFromClient:other.fromClient];
+ }
+ if (other.hasFromServer) {
+ [self mergeFromServer:other.fromServer];
+ }
+ if (other.hasUdpPackets) {
+ [self setUdpPackets:other.udpPackets];
+ }
+ if (other.hasTcpPackets) {
+ [self setTcpPackets:other.tcpPackets];
+ }
+ if (other.hasUdpPingAvg) {
+ [self setUdpPingAvg:other.udpPingAvg];
+ }
+ if (other.hasUdpPingVar) {
+ [self setUdpPingVar:other.udpPingVar];
+ }
+ if (other.hasTcpPingAvg) {
+ [self setTcpPingAvg:other.tcpPingAvg];
+ }
+ if (other.hasTcpPingVar) {
+ [self setTcpPingVar:other.tcpPingVar];
+ }
+ if (other.hasVersion) {
+ [self mergeVersion:other.version];
+ }
+ if (other.mutableCeltVersionsList.count > 0) {
+ if (result.mutableCeltVersionsList == nil) {
+ result.mutableCeltVersionsList = [NSMutableArray array];
+ }
+ [result.mutableCeltVersionsList addObjectsFromArray:other.mutableCeltVersionsList];
+ }
+ if (other.hasAddress) {
+ [self setAddress:other.address];
+ }
+ if (other.hasBandwidth) {
+ [self setBandwidth:other.bandwidth];
+ }
+ if (other.hasOnlinesecs) {
+ [self setOnlinesecs:other.onlinesecs];
+ }
+ if (other.hasIdlesecs) {
+ [self setIdlesecs:other.idlesecs];
+ }
+ if (other.hasStrongCertificate) {
+ [self setStrongCertificate:other.strongCertificate];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPUserStats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPUserStats_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self setSession:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self setStatsOnly:[input readBool]];
+ break;
+ }
+ case 26: {
+ [self addCertificates:[input readData]];
+ break;
+ }
+ case 34: {
+ MPUserStats_Stats_Builder* subBuilder = [MPUserStats_Stats builder];
+ if (self.hasFromClient) {
+ [subBuilder mergeFrom:self.fromClient];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setFromClient:[subBuilder buildPartial]];
+ break;
+ }
+ case 42: {
+ MPUserStats_Stats_Builder* subBuilder = [MPUserStats_Stats builder];
+ if (self.hasFromServer) {
+ [subBuilder mergeFrom:self.fromServer];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setFromServer:[subBuilder buildPartial]];
+ break;
+ }
+ case 48: {
+ [self setUdpPackets:[input readUInt32]];
+ break;
+ }
+ case 56: {
+ [self setTcpPackets:[input readUInt32]];
+ break;
+ }
+ case 69: {
+ [self setUdpPingAvg:[input readFloat]];
+ break;
+ }
+ case 77: {
+ [self setUdpPingVar:[input readFloat]];
+ break;
+ }
+ case 85: {
+ [self setTcpPingAvg:[input readFloat]];
+ break;
+ }
+ case 93: {
+ [self setTcpPingVar:[input readFloat]];
+ break;
+ }
+ case 98: {
+ MPVersion_Builder* subBuilder = [MPVersion builder];
+ if (self.hasVersion) {
+ [subBuilder mergeFrom:self.version];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setVersion:[subBuilder buildPartial]];
+ break;
+ }
+ case 104: {
+ [self addCeltVersions:[input readInt32]];
+ break;
+ }
+ case 114: {
+ [self setAddress:[input readData]];
+ break;
+ }
+ case 120: {
+ [self setBandwidth:[input readUInt32]];
+ break;
+ }
+ case 128: {
+ [self setOnlinesecs:[input readUInt32]];
+ break;
+ }
+ case 136: {
+ [self setIdlesecs:[input readUInt32]];
+ break;
+ }
+ case 144: {
+ [self setStrongCertificate:[input readBool]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasSession {
+ return result.hasSession;
+}
+- (int32_t) session {
+ return result.session;
+}
+- (MPUserStats_Builder*) setSession:(int32_t) value {
+ result.hasSession = YES;
+ result.session = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearSession {
+ result.hasSession = NO;
+ result.session = 0;
+ return self;
+}
+- (BOOL) hasStatsOnly {
+ return result.hasStatsOnly;
+}
+- (BOOL) statsOnly {
+ return result.statsOnly;
+}
+- (MPUserStats_Builder*) setStatsOnly:(BOOL) value {
+ result.hasStatsOnly = YES;
+ result.statsOnly = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearStatsOnly {
+ result.hasStatsOnly = NO;
+ result.statsOnly = NO;
+ return self;
+}
+- (NSArray*) certificatesList {
+ if (result.mutableCertificatesList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableCertificatesList;
+}
+- (NSData*) certificatesAtIndex:(int32_t) index {
+ return [result certificatesAtIndex:index];
+}
+- (MPUserStats_Builder*) replaceCertificatesAtIndex:(int32_t) index with:(NSData*) value {
+ [result.mutableCertificatesList replaceObjectAtIndex:index withObject:value];
+ return self;
+}
+- (MPUserStats_Builder*) addCertificates:(NSData*) value {
+ if (result.mutableCertificatesList == nil) {
+ result.mutableCertificatesList = [NSMutableArray array];
+ }
+ [result.mutableCertificatesList addObject:value];
+ return self;
+}
+- (MPUserStats_Builder*) addAllCertificates:(NSArray*) values {
+ if (result.mutableCertificatesList == nil) {
+ result.mutableCertificatesList = [NSMutableArray array];
+ }
+ [result.mutableCertificatesList addObjectsFromArray:values];
+ return self;
+}
+- (MPUserStats_Builder*) clearCertificatesList {
+ result.mutableCertificatesList = nil;
+ return self;
+}
+- (BOOL) hasFromClient {
+ return result.hasFromClient;
+}
+- (MPUserStats_Stats*) fromClient {
+ return result.fromClient;
+}
+- (MPUserStats_Builder*) setFromClient:(MPUserStats_Stats*) value {
+ result.hasFromClient = YES;
+ result.fromClient = value;
+ return self;
+}
+- (MPUserStats_Builder*) setFromClientBuilder:(MPUserStats_Stats_Builder*) builderForValue {
+ return [self setFromClient:[builderForValue build]];
+}
+- (MPUserStats_Builder*) mergeFromClient:(MPUserStats_Stats*) value {
+ if (result.hasFromClient &&
+ result.fromClient != [MPUserStats_Stats defaultInstance]) {
+ result.fromClient =
+ [[[MPUserStats_Stats builderWithPrototype:result.fromClient] mergeFrom:value] buildPartial];
+ } else {
+ result.fromClient = value;
+ }
+ result.hasFromClient = YES;
+ return self;
+}
+- (MPUserStats_Builder*) clearFromClient {
+ result.hasFromClient = NO;
+ result.fromClient = [MPUserStats_Stats defaultInstance];
+ return self;
+}
+- (BOOL) hasFromServer {
+ return result.hasFromServer;
+}
+- (MPUserStats_Stats*) fromServer {
+ return result.fromServer;
+}
+- (MPUserStats_Builder*) setFromServer:(MPUserStats_Stats*) value {
+ result.hasFromServer = YES;
+ result.fromServer = value;
+ return self;
+}
+- (MPUserStats_Builder*) setFromServerBuilder:(MPUserStats_Stats_Builder*) builderForValue {
+ return [self setFromServer:[builderForValue build]];
+}
+- (MPUserStats_Builder*) mergeFromServer:(MPUserStats_Stats*) value {
+ if (result.hasFromServer &&
+ result.fromServer != [MPUserStats_Stats defaultInstance]) {
+ result.fromServer =
+ [[[MPUserStats_Stats builderWithPrototype:result.fromServer] mergeFrom:value] buildPartial];
+ } else {
+ result.fromServer = value;
+ }
+ result.hasFromServer = YES;
+ return self;
+}
+- (MPUserStats_Builder*) clearFromServer {
+ result.hasFromServer = NO;
+ result.fromServer = [MPUserStats_Stats defaultInstance];
+ return self;
+}
+- (BOOL) hasUdpPackets {
+ return result.hasUdpPackets;
+}
+- (int32_t) udpPackets {
+ return result.udpPackets;
+}
+- (MPUserStats_Builder*) setUdpPackets:(int32_t) value {
+ result.hasUdpPackets = YES;
+ result.udpPackets = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearUdpPackets {
+ result.hasUdpPackets = NO;
+ result.udpPackets = 0;
+ return self;
+}
+- (BOOL) hasTcpPackets {
+ return result.hasTcpPackets;
+}
+- (int32_t) tcpPackets {
+ return result.tcpPackets;
+}
+- (MPUserStats_Builder*) setTcpPackets:(int32_t) value {
+ result.hasTcpPackets = YES;
+ result.tcpPackets = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearTcpPackets {
+ result.hasTcpPackets = NO;
+ result.tcpPackets = 0;
+ return self;
+}
+- (BOOL) hasUdpPingAvg {
+ return result.hasUdpPingAvg;
+}
+- (Float32) udpPingAvg {
+ return result.udpPingAvg;
+}
+- (MPUserStats_Builder*) setUdpPingAvg:(Float32) value {
+ result.hasUdpPingAvg = YES;
+ result.udpPingAvg = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearUdpPingAvg {
+ result.hasUdpPingAvg = NO;
+ result.udpPingAvg = 0;
+ return self;
+}
+- (BOOL) hasUdpPingVar {
+ return result.hasUdpPingVar;
+}
+- (Float32) udpPingVar {
+ return result.udpPingVar;
+}
+- (MPUserStats_Builder*) setUdpPingVar:(Float32) value {
+ result.hasUdpPingVar = YES;
+ result.udpPingVar = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearUdpPingVar {
+ result.hasUdpPingVar = NO;
+ result.udpPingVar = 0;
+ return self;
+}
+- (BOOL) hasTcpPingAvg {
+ return result.hasTcpPingAvg;
+}
+- (Float32) tcpPingAvg {
+ return result.tcpPingAvg;
+}
+- (MPUserStats_Builder*) setTcpPingAvg:(Float32) value {
+ result.hasTcpPingAvg = YES;
+ result.tcpPingAvg = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearTcpPingAvg {
+ result.hasTcpPingAvg = NO;
+ result.tcpPingAvg = 0;
+ return self;
+}
+- (BOOL) hasTcpPingVar {
+ return result.hasTcpPingVar;
+}
+- (Float32) tcpPingVar {
+ return result.tcpPingVar;
+}
+- (MPUserStats_Builder*) setTcpPingVar:(Float32) value {
+ result.hasTcpPingVar = YES;
+ result.tcpPingVar = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearTcpPingVar {
+ result.hasTcpPingVar = NO;
+ result.tcpPingVar = 0;
+ return self;
+}
+- (BOOL) hasVersion {
+ return result.hasVersion;
+}
+- (MPVersion*) version {
+ return result.version;
+}
+- (MPUserStats_Builder*) setVersion:(MPVersion*) value {
+ result.hasVersion = YES;
+ result.version = value;
+ return self;
+}
+- (MPUserStats_Builder*) setVersionBuilder:(MPVersion_Builder*) builderForValue {
+ return [self setVersion:[builderForValue build]];
+}
+- (MPUserStats_Builder*) mergeVersion:(MPVersion*) value {
+ if (result.hasVersion &&
+ result.version != [MPVersion defaultInstance]) {
+ result.version =
+ [[[MPVersion builderWithPrototype:result.version] mergeFrom:value] buildPartial];
+ } else {
+ result.version = value;
+ }
+ result.hasVersion = YES;
+ return self;
+}
+- (MPUserStats_Builder*) clearVersion {
+ result.hasVersion = NO;
+ result.version = [MPVersion defaultInstance];
+ return self;
+}
+- (NSArray*) celtVersionsList {
+ if (result.mutableCeltVersionsList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableCeltVersionsList;
+}
+- (int32_t) celtVersionsAtIndex:(int32_t) index {
+ return [result celtVersionsAtIndex:index];
+}
+- (MPUserStats_Builder*) replaceCeltVersionsAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableCeltVersionsList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPUserStats_Builder*) addCeltVersions:(int32_t) value {
+ if (result.mutableCeltVersionsList == nil) {
+ result.mutableCeltVersionsList = [NSMutableArray array];
+ }
+ [result.mutableCeltVersionsList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPUserStats_Builder*) addAllCeltVersions:(NSArray*) values {
+ if (result.mutableCeltVersionsList == nil) {
+ result.mutableCeltVersionsList = [NSMutableArray array];
+ }
+ [result.mutableCeltVersionsList addObjectsFromArray:values];
+ return self;
+}
+- (MPUserStats_Builder*) clearCeltVersionsList {
+ result.mutableCeltVersionsList = nil;
+ return self;
+}
+- (BOOL) hasAddress {
+ return result.hasAddress;
+}
+- (NSData*) address {
+ return result.address;
+}
+- (MPUserStats_Builder*) setAddress:(NSData*) value {
+ result.hasAddress = YES;
+ result.address = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearAddress {
+ result.hasAddress = NO;
+ result.address = [NSData data];
+ return self;
+}
+- (BOOL) hasBandwidth {
+ return result.hasBandwidth;
+}
+- (int32_t) bandwidth {
+ return result.bandwidth;
+}
+- (MPUserStats_Builder*) setBandwidth:(int32_t) value {
+ result.hasBandwidth = YES;
+ result.bandwidth = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearBandwidth {
+ result.hasBandwidth = NO;
+ result.bandwidth = 0;
+ return self;
+}
+- (BOOL) hasOnlinesecs {
+ return result.hasOnlinesecs;
+}
+- (int32_t) onlinesecs {
+ return result.onlinesecs;
+}
+- (MPUserStats_Builder*) setOnlinesecs:(int32_t) value {
+ result.hasOnlinesecs = YES;
+ result.onlinesecs = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearOnlinesecs {
+ result.hasOnlinesecs = NO;
+ result.onlinesecs = 0;
+ return self;
+}
+- (BOOL) hasIdlesecs {
+ return result.hasIdlesecs;
+}
+- (int32_t) idlesecs {
+ return result.idlesecs;
+}
+- (MPUserStats_Builder*) setIdlesecs:(int32_t) value {
+ result.hasIdlesecs = YES;
+ result.idlesecs = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearIdlesecs {
+ result.hasIdlesecs = NO;
+ result.idlesecs = 0;
+ return self;
+}
+- (BOOL) hasStrongCertificate {
+ return result.hasStrongCertificate;
+}
+- (BOOL) strongCertificate {
+ return result.strongCertificate;
+}
+- (MPUserStats_Builder*) setStrongCertificate:(BOOL) value {
+ result.hasStrongCertificate = YES;
+ result.strongCertificate = value;
+ return self;
+}
+- (MPUserStats_Builder*) clearStrongCertificate {
+ result.hasStrongCertificate = NO;
+ result.strongCertificate = NO;
+ return self;
+}
+@end
+
+@interface MPRequestBlob ()
+@property (retain) NSMutableArray* mutableSessionTextureList;
+@property (retain) NSMutableArray* mutableSessionCommentList;
+@property (retain) NSMutableArray* mutableChannelDescriptionList;
+@end
+
+@implementation MPRequestBlob
+
+@synthesize mutableSessionTextureList;
+@synthesize mutableSessionCommentList;
+@synthesize mutableChannelDescriptionList;
+- (void) dealloc {
+ self.mutableSessionTextureList = nil;
+ self.mutableSessionCommentList = nil;
+ self.mutableChannelDescriptionList = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ }
+ return self;
+}
+static MPRequestBlob* defaultMPRequestBlobInstance = nil;
++ (void) initialize {
+ if (self == [MPRequestBlob class]) {
+ defaultMPRequestBlobInstance = [[MPRequestBlob alloc] init];
+ }
+}
++ (MPRequestBlob*) defaultInstance {
+ return defaultMPRequestBlobInstance;
+}
+- (MPRequestBlob*) defaultInstance {
+ return defaultMPRequestBlobInstance;
+}
+- (NSArray*) sessionTextureList {
+ return mutableSessionTextureList;
+}
+- (int32_t) sessionTextureAtIndex:(int32_t) index {
+ id value = [mutableSessionTextureList objectAtIndex:index];
+ return [value intValue];
+}
+- (NSArray*) sessionCommentList {
+ return mutableSessionCommentList;
+}
+- (int32_t) sessionCommentAtIndex:(int32_t) index {
+ id value = [mutableSessionCommentList objectAtIndex:index];
+ return [value intValue];
+}
+- (NSArray*) channelDescriptionList {
+ return mutableChannelDescriptionList;
+}
+- (int32_t) channelDescriptionAtIndex:(int32_t) index {
+ id value = [mutableChannelDescriptionList objectAtIndex:index];
+ return [value intValue];
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ for (NSNumber* value in self.mutableSessionTextureList) {
+ [output writeUInt32:1 value:[value intValue]];
+ }
+ for (NSNumber* value in self.mutableSessionCommentList) {
+ [output writeUInt32:2 value:[value intValue]];
+ }
+ for (NSNumber* value in self.mutableChannelDescriptionList) {
+ [output writeUInt32:3 value:[value intValue]];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableSessionTextureList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableSessionTextureList.count;
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableSessionCommentList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableSessionCommentList.count;
+ }
+ {
+ int32_t dataSize = 0;
+ for (NSNumber* value in self.mutableChannelDescriptionList) {
+ dataSize += computeUInt32SizeNoTag([value intValue]);
+ }
+ size += dataSize;
+ size += 1 * self.mutableChannelDescriptionList.count;
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (MPRequestBlob*) parseFromData:(NSData*) data {
+ return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromData:data] build];
+}
++ (MPRequestBlob*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (MPRequestBlob*) parseFromInputStream:(NSInputStream*) input {
+ return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromInputStream:input] build];
+}
++ (MPRequestBlob*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPRequestBlob*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromCodedInputStream:input] build];
+}
++ (MPRequestBlob*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (MPRequestBlob*)[[[MPRequestBlob builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (MPRequestBlob_Builder*) builder {
+ return [[[MPRequestBlob_Builder alloc] init] autorelease];
+}
++ (MPRequestBlob_Builder*) builderWithPrototype:(MPRequestBlob*) prototype {
+ return [[MPRequestBlob builder] mergeFrom:prototype];
+}
+- (MPRequestBlob_Builder*) builder {
+ return [MPRequestBlob builder];
+}
+@end
+
+@interface MPRequestBlob_Builder()
+@property (retain) MPRequestBlob* result;
+@end
+
+@implementation MPRequestBlob_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[MPRequestBlob alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (MPRequestBlob_Builder*) clear {
+ self.result = [[[MPRequestBlob alloc] init] autorelease];
+ return self;
+}
+- (MPRequestBlob_Builder*) clone {
+ return [MPRequestBlob builderWithPrototype:result];
+}
+- (MPRequestBlob*) defaultInstance {
+ return [MPRequestBlob defaultInstance];
+}
+- (MPRequestBlob*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (MPRequestBlob*) buildPartial {
+ MPRequestBlob* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (MPRequestBlob_Builder*) mergeFrom:(MPRequestBlob*) other {
+ if (other == [MPRequestBlob defaultInstance]) {
+ return self;
+ }
+ if (other.mutableSessionTextureList.count > 0) {
+ if (result.mutableSessionTextureList == nil) {
+ result.mutableSessionTextureList = [NSMutableArray array];
+ }
+ [result.mutableSessionTextureList addObjectsFromArray:other.mutableSessionTextureList];
+ }
+ if (other.mutableSessionCommentList.count > 0) {
+ if (result.mutableSessionCommentList == nil) {
+ result.mutableSessionCommentList = [NSMutableArray array];
+ }
+ [result.mutableSessionCommentList addObjectsFromArray:other.mutableSessionCommentList];
+ }
+ if (other.mutableChannelDescriptionList.count > 0) {
+ if (result.mutableChannelDescriptionList == nil) {
+ result.mutableChannelDescriptionList = [NSMutableArray array];
+ }
+ [result.mutableChannelDescriptionList addObjectsFromArray:other.mutableChannelDescriptionList];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (MPRequestBlob_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (MPRequestBlob_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ [self addSessionTexture:[input readUInt32]];
+ break;
+ }
+ case 16: {
+ [self addSessionComment:[input readUInt32]];
+ break;
+ }
+ case 24: {
+ [self addChannelDescription:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (NSArray*) sessionTextureList {
+ if (result.mutableSessionTextureList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableSessionTextureList;
+}
+- (int32_t) sessionTextureAtIndex:(int32_t) index {
+ return [result sessionTextureAtIndex:index];
+}
+- (MPRequestBlob_Builder*) replaceSessionTextureAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableSessionTextureList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPRequestBlob_Builder*) addSessionTexture:(int32_t) value {
+ if (result.mutableSessionTextureList == nil) {
+ result.mutableSessionTextureList = [NSMutableArray array];
+ }
+ [result.mutableSessionTextureList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPRequestBlob_Builder*) addAllSessionTexture:(NSArray*) values {
+ if (result.mutableSessionTextureList == nil) {
+ result.mutableSessionTextureList = [NSMutableArray array];
+ }
+ [result.mutableSessionTextureList addObjectsFromArray:values];
+ return self;
+}
+- (MPRequestBlob_Builder*) clearSessionTextureList {
+ result.mutableSessionTextureList = nil;
+ return self;
+}
+- (NSArray*) sessionCommentList {
+ if (result.mutableSessionCommentList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableSessionCommentList;
+}
+- (int32_t) sessionCommentAtIndex:(int32_t) index {
+ return [result sessionCommentAtIndex:index];
+}
+- (MPRequestBlob_Builder*) replaceSessionCommentAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableSessionCommentList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPRequestBlob_Builder*) addSessionComment:(int32_t) value {
+ if (result.mutableSessionCommentList == nil) {
+ result.mutableSessionCommentList = [NSMutableArray array];
+ }
+ [result.mutableSessionCommentList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPRequestBlob_Builder*) addAllSessionComment:(NSArray*) values {
+ if (result.mutableSessionCommentList == nil) {
+ result.mutableSessionCommentList = [NSMutableArray array];
+ }
+ [result.mutableSessionCommentList addObjectsFromArray:values];
+ return self;
+}
+- (MPRequestBlob_Builder*) clearSessionCommentList {
+ result.mutableSessionCommentList = nil;
+ return self;
+}
+- (NSArray*) channelDescriptionList {
+ if (result.mutableChannelDescriptionList == nil) {
+ return [NSArray array];
+ }
+ return result.mutableChannelDescriptionList;
+}
+- (int32_t) channelDescriptionAtIndex:(int32_t) index {
+ return [result channelDescriptionAtIndex:index];
+}
+- (MPRequestBlob_Builder*) replaceChannelDescriptionAtIndex:(int32_t) index with:(int32_t) value {
+ [result.mutableChannelDescriptionList replaceObjectAtIndex:index withObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPRequestBlob_Builder*) addChannelDescription:(int32_t) value {
+ if (result.mutableChannelDescriptionList == nil) {
+ result.mutableChannelDescriptionList = [NSMutableArray array];
+ }
+ [result.mutableChannelDescriptionList addObject:[NSNumber numberWithInt:value]];
+ return self;
+}
+- (MPRequestBlob_Builder*) addAllChannelDescription:(NSArray*) values {
+ if (result.mutableChannelDescriptionList == nil) {
+ result.mutableChannelDescriptionList = [NSMutableArray array];
+ }
+ [result.mutableChannelDescriptionList addObjectsFromArray:values];
+ return self;
+}
+- (MPRequestBlob_Builder*) clearChannelDescriptionList {
+ result.mutableChannelDescriptionList = nil;
+ return self;
+}
+@end
+
diff --git a/proto/Mumble.proto b/proto/Mumble.proto
new file mode 100644
index 0000000..3e55331
--- /dev/null
+++ b/proto/Mumble.proto
@@ -0,0 +1,276 @@
+import "google/protobuf/objectivec-descriptor.proto";
+option (google.protobuf.objectivec_file_options).class_prefix = "MP";
+package MumbleProto;
+
+option optimize_for = SPEED;
+
+message Version {
+ optional uint32 version = 1;
+ optional string release = 2;
+ optional string os = 3;
+ optional string os_version = 4;
+}
+
+message UDPTunnel {
+ required bytes packet = 1;
+}
+
+message Authenticate {
+ optional string username = 1;
+ optional string password = 2;
+ repeated string tokens = 3;
+ repeated int32 celt_versions = 4;
+}
+
+message Ping {
+ optional uint64 timestamp = 1;
+ optional uint32 good = 2;
+ optional uint32 late = 3;
+ optional uint32 lost = 4;
+ optional uint32 resync = 5;
+ optional uint32 udp_packets = 6;
+ optional uint32 tcp_packets = 7;
+ optional float udp_ping_avg = 8;
+ optional float udp_ping_var = 9;
+ optional float tcp_ping_avg = 10;
+ optional float tcp_ping_var = 11;
+}
+
+message Reject {
+ enum RejectType {
+ None = 0;
+ WrongVersion = 1;
+ InvalidUsername = 2;
+ WrongUserPW = 3;
+ WrongServerPW = 4;
+ UsernameInUse = 5;
+ ServerFull = 6;
+ NoCertificate = 7;
+ }
+ optional RejectType type = 1;
+ optional string reason = 2;
+}
+
+message ServerConfig {
+ optional uint32 max_bandwidth = 1;
+ optional string welcome_text = 2;
+ optional bool allow_html = 3;
+ optional uint32 message_length = 4;
+ optional uint32 image_message_length = 5;
+}
+
+message ServerSync {
+ optional uint32 session = 1;
+ optional uint32 max_bandwidth = 2;
+ optional string welcome_text = 3;
+ optional uint64 permissions = 4;
+}
+
+message ChannelRemove {
+ required uint32 channel_id = 1;
+}
+
+message ChannelState {
+ optional uint32 channel_id = 1;
+ optional uint32 parent = 2;
+ optional string name = 3;
+ repeated uint32 links = 4;
+ optional string description = 5;
+ repeated uint32 links_add = 6;
+ repeated uint32 links_remove = 7;
+ optional bool temporary = 8 [default = false];
+ optional int32 position = 9 [default = 0];
+ optional bytes description_hash = 10;
+}
+
+message UserRemove {
+ required uint32 session = 1;
+ optional uint32 actor = 2;
+ optional string reason = 3;
+ optional bool ban = 4;
+}
+
+message UserState {
+ optional uint32 session = 1;
+ optional uint32 actor = 2;
+ optional string name = 3;
+ optional uint32 user_id = 4;
+ optional uint32 channel_id = 5;
+ optional bool mute = 6;
+ optional bool deaf = 7;
+ optional bool suppress = 8;
+ optional bool self_mute = 9;
+ optional bool self_deaf = 10;
+ optional bytes texture = 11;
+ optional bytes plugin_context = 12;
+ optional string plugin_identity = 13;
+ optional string comment = 14;
+ optional string hash = 15;
+ optional bytes comment_hash = 16;
+ optional bytes texture_hash = 17;
+}
+
+message BanList {
+ message BanEntry {
+ required bytes address = 1;
+ required uint32 mask = 2;
+ optional string name = 3;
+ optional string hash = 4;
+ optional string reason = 5;
+ optional string start = 6;
+ optional uint32 duration = 7;
+ }
+ repeated BanEntry bans = 1;
+ optional bool query = 2 [default = false];
+}
+
+message TextMessage {
+ optional uint32 actor = 1;
+ repeated uint32 session = 2;
+ repeated uint32 channel_id = 3;
+ repeated uint32 tree_id = 4;
+ required string message = 5;
+}
+
+message PermissionDenied {
+ enum DenyType {
+ Text = 0;
+ Permission = 1;
+ SuperUser = 2;
+ ChannelName = 3;
+ TextTooLong = 4;
+ H9K = 5;
+ TemporaryChannel = 6;
+ MissingCertificate = 7;
+ UserName = 8;
+ ChannelFull = 9;
+ }
+ optional uint32 permission = 1;
+ optional uint32 channel_id = 2;
+ optional uint32 session = 3;
+ optional string reason = 4;
+ optional DenyType type = 5;
+ optional string name = 6;
+}
+
+message ACL {
+ message ChanGroup {
+ required string name = 1;
+ optional bool inherited = 2 [default = true];
+ optional bool inherit = 3 [default = true];
+ optional bool inheritable = 4 [default = true];
+ repeated uint32 add = 5;
+ repeated uint32 remove = 6;
+ repeated uint32 inherited_members = 7;
+ }
+ message ChanACL {
+ optional bool apply_here = 1 [default = true];
+ optional bool apply_subs = 2 [default = true];
+ optional bool inherited = 3 [default = true];
+ optional uint32 user_id = 4;
+ optional string group = 5;
+ optional uint32 grant = 6;
+ optional uint32 deny = 7;
+ }
+ required uint32 channel_id = 1;
+ optional bool inherit_acls = 2 [default = true];
+ repeated ChanGroup groups = 3;
+ repeated ChanACL acls = 4;
+ optional bool query = 5 [default = false];
+}
+
+message QueryUsers {
+ repeated uint32 ids = 1;
+ repeated string names = 2;
+}
+
+message CryptSetup {
+ optional bytes key = 1;
+ optional bytes client_nonce = 2;
+ optional bytes server_nonce = 3;
+}
+
+message ContextActionAdd {
+ enum Context {
+ Server = 0x01;
+ Channel = 0x02;
+ User = 0x04;
+ }
+ required string action = 1;
+ required string text = 2;
+ optional uint32 context = 3;
+}
+
+message ContextAction {
+ optional uint32 session = 1;
+ optional uint32 channel_id = 2;
+ required string action = 3;
+}
+
+message UserList {
+ message User {
+ required uint32 user_id = 1;
+ optional string name = 2;
+ }
+ repeated User users = 1;
+}
+
+message VoiceTarget {
+ message Target {
+ repeated uint32 session = 1;
+ optional uint32 channel_id = 2;
+ optional string group = 3;
+ optional bool links = 4 [default = false];
+ optional bool children = 5 [default = false];
+ }
+ optional uint32 id = 1;
+ repeated Target targets = 2;
+}
+
+message PermissionQuery {
+ optional uint32 channel_id = 1;
+ optional uint32 permissions = 2;
+ optional bool flush = 3 [default = false];
+}
+
+message CodecVersion {
+ required int32 alpha = 1;
+ required int32 beta = 2;
+ required bool prefer_alpha = 3 [default = true];
+}
+
+message UserStats {
+ message Stats {
+ optional uint32 good = 1;
+ optional uint32 late = 2;
+ optional uint32 lost = 3;
+ optional uint32 resync = 4;
+ }
+
+ optional uint32 session = 1;
+ optional bool stats_only = 2 [default = false];
+ repeated bytes certificates = 3;
+ optional Stats from_client = 4;
+ optional Stats from_server = 5;
+
+ optional uint32 udp_packets = 6;
+ optional uint32 tcp_packets = 7;
+ optional float udp_ping_avg = 8;
+ optional float udp_ping_var = 9;
+ optional float tcp_ping_avg = 10;
+ optional float tcp_ping_var = 11;
+
+ optional Version version = 12;
+ repeated int32 celt_versions = 13;
+ optional bytes address = 14;
+ optional uint32 bandwidth = 15;
+ optional uint32 onlinesecs = 16;
+ optional uint32 idlesecs = 17;
+ optional bool strong_certificate = 18 [default = false];
+}
+
+message RequestBlob {
+ repeated uint32 session_texture = 1;
+ repeated uint32 session_comment = 2;
+ repeated uint32 channel_description = 3;
+}
diff --git a/proto/Mumble.proto.objc b/proto/Mumble.proto.objc
new file mode 100644
index 0000000..bfa263d
--- /dev/null
+++ b/proto/Mumble.proto.objc
@@ -0,0 +1,2 @@
+import "google/protobuf/objectivec-descriptor.proto";
+option (google.protobuf.objectivec_file_options).class_prefix = "MP";
diff --git a/proto/ObjectivecDescriptor.pb.h b/proto/ObjectivecDescriptor.pb.h
new file mode 100644
index 0000000..9d31db9
--- /dev/null
+++ b/proto/ObjectivecDescriptor.pb.h
@@ -0,0 +1,109 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+#import "ProtocolBuffers.h"
+
+#import "Descriptor.pb.h"
+
+@class ObjectiveCFileOptions;
+@class ObjectiveCFileOptions_Builder;
+@class PBDescriptorProto;
+@class PBDescriptorProto_Builder;
+@class PBDescriptorProto_ExtensionRange;
+@class PBDescriptorProto_ExtensionRange_Builder;
+@class PBEnumDescriptorProto;
+@class PBEnumDescriptorProto_Builder;
+@class PBEnumOptions;
+@class PBEnumOptions_Builder;
+@class PBEnumValueDescriptorProto;
+@class PBEnumValueDescriptorProto_Builder;
+@class PBEnumValueOptions;
+@class PBEnumValueOptions_Builder;
+@class PBFieldDescriptorProto;
+@class PBFieldDescriptorProto_Builder;
+@class PBFieldOptions;
+@class PBFieldOptions_Builder;
+@class PBFileDescriptorProto;
+@class PBFileDescriptorProto_Builder;
+@class PBFileDescriptorSet;
+@class PBFileDescriptorSet_Builder;
+@class PBFileOptions;
+@class PBFileOptions_Builder;
+@class PBMessageOptions;
+@class PBMessageOptions_Builder;
+@class PBMethodDescriptorProto;
+@class PBMethodDescriptorProto_Builder;
+@class PBMethodOptions;
+@class PBMethodOptions_Builder;
+@class PBServiceDescriptorProto;
+@class PBServiceDescriptorProto_Builder;
+@class PBServiceOptions;
+@class PBServiceOptions_Builder;
+@class PBUninterpretedOption;
+@class PBUninterpretedOption_Builder;
+@class PBUninterpretedOption_NamePart;
+@class PBUninterpretedOption_NamePart_Builder;
+
+@interface ObjectivecDescriptorRoot : NSObject {
+}
++ (PBExtensionRegistry*) extensionRegistry;
++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry;
++ (id<PBExtensionField>) objectivecFileOptions;
+@end
+
+@interface ObjectiveCFileOptions : PBGeneratedMessage {
+@private
+ BOOL hasPackage_:1;
+ BOOL hasClassPrefix_:1;
+ NSString* package;
+ NSString* classPrefix;
+}
+- (BOOL) hasPackage;
+- (BOOL) hasClassPrefix;
+@property (readonly, retain) NSString* package;
+@property (readonly, retain) NSString* classPrefix;
+
++ (ObjectiveCFileOptions*) defaultInstance;
+- (ObjectiveCFileOptions*) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (ObjectiveCFileOptions_Builder*) builder;
++ (ObjectiveCFileOptions_Builder*) builder;
++ (ObjectiveCFileOptions_Builder*) builderWithPrototype:(ObjectiveCFileOptions*) prototype;
+
++ (ObjectiveCFileOptions*) parseFromData:(NSData*) data;
++ (ObjectiveCFileOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (ObjectiveCFileOptions*) parseFromInputStream:(NSInputStream*) input;
++ (ObjectiveCFileOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (ObjectiveCFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (ObjectiveCFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface ObjectiveCFileOptions_Builder : PBGeneratedMessage_Builder {
+@private
+ ObjectiveCFileOptions* result;
+}
+
+- (ObjectiveCFileOptions*) defaultInstance;
+
+- (ObjectiveCFileOptions_Builder*) clear;
+- (ObjectiveCFileOptions_Builder*) clone;
+
+- (ObjectiveCFileOptions*) build;
+- (ObjectiveCFileOptions*) buildPartial;
+
+- (ObjectiveCFileOptions_Builder*) mergeFrom:(ObjectiveCFileOptions*) other;
+- (ObjectiveCFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (ObjectiveCFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasPackage;
+- (NSString*) package;
+- (ObjectiveCFileOptions_Builder*) setPackage:(NSString*) value;
+- (ObjectiveCFileOptions_Builder*) clearPackage;
+
+- (BOOL) hasClassPrefix;
+- (NSString*) classPrefix;
+- (ObjectiveCFileOptions_Builder*) setClassPrefix:(NSString*) value;
+- (ObjectiveCFileOptions_Builder*) clearClassPrefix;
+@end
+
diff --git a/proto/ObjectivecDescriptor.pb.m b/proto/ObjectivecDescriptor.pb.m
new file mode 100644
index 0000000..35127bc
--- /dev/null
+++ b/proto/ObjectivecDescriptor.pb.m
@@ -0,0 +1,253 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+#import "ObjectivecDescriptor.pb.h"
+
+@implementation ObjectivecDescriptorRoot
+static id<PBExtensionField> ObjectivecDescriptorRoot_objectivecFileOptions = nil;
+static PBExtensionRegistry* extensionRegistry = nil;
++ (PBExtensionRegistry*) extensionRegistry {
+ return extensionRegistry;
+}
+
++ (void) initialize {
+ if (self == [ObjectivecDescriptorRoot class]) {
+ ObjectivecDescriptorRoot_objectivecFileOptions =
+ [[PBConcreteExtensionField extensionWithType:PBExtensionTypeMessage
+ extendedClass:[PBFileOptions class]
+ fieldNumber:1002
+ defaultValue:[ObjectiveCFileOptions defaultInstance]
+ messageOrGroupClass:[ObjectiveCFileOptions class]
+ isRepeated:NO
+ isPacked:NO
+ isMessageSetWireFormat:NO] retain];
+ PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry];
+ [self registerAllExtensions:registry];
+ [PBDescriptorRoot registerAllExtensions:registry];
+ extensionRegistry = [registry retain];
+ }
+}
++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry {
+ [registry addExtension:ObjectivecDescriptorRoot_objectivecFileOptions];
+}
++ (id<PBExtensionField>) objectivecFileOptions {
+ return ObjectivecDescriptorRoot_objectivecFileOptions;
+}
+@end
+
+@interface ObjectiveCFileOptions ()
+@property (retain) NSString* package;
+@property (retain) NSString* classPrefix;
+@end
+
+@implementation ObjectiveCFileOptions
+
+- (BOOL) hasPackage {
+ return !!hasPackage_;
+}
+- (void) setHasPackage:(BOOL) value {
+ hasPackage_ = !!value;
+}
+@synthesize package;
+- (BOOL) hasClassPrefix {
+ return !!hasClassPrefix_;
+}
+- (void) setHasClassPrefix:(BOOL) value {
+ hasClassPrefix_ = !!value;
+}
+@synthesize classPrefix;
+- (void) dealloc {
+ self.package = nil;
+ self.classPrefix = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.package = @"";
+ self.classPrefix = @"";
+ }
+ return self;
+}
+static ObjectiveCFileOptions* defaultObjectiveCFileOptionsInstance = nil;
++ (void) initialize {
+ if (self == [ObjectiveCFileOptions class]) {
+ defaultObjectiveCFileOptionsInstance = [[ObjectiveCFileOptions alloc] init];
+ }
+}
++ (ObjectiveCFileOptions*) defaultInstance {
+ return defaultObjectiveCFileOptionsInstance;
+}
+- (ObjectiveCFileOptions*) defaultInstance {
+ return defaultObjectiveCFileOptionsInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasPackage) {
+ [output writeString:1 value:self.package];
+ }
+ if (self.hasClassPrefix) {
+ [output writeString:2 value:self.classPrefix];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (int32_t) serializedSize {
+ int32_t size = memoizedSerializedSize;
+ if (size != -1) {
+ return size;
+ }
+
+ size = 0;
+ if (self.hasPackage) {
+ size += computeStringSize(1, self.package);
+ }
+ if (self.hasClassPrefix) {
+ size += computeStringSize(2, self.classPrefix);
+ }
+ size += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size;
+ return size;
+}
++ (ObjectiveCFileOptions*) parseFromData:(NSData*) data {
+ return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromData:data] build];
+}
++ (ObjectiveCFileOptions*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (ObjectiveCFileOptions*) parseFromInputStream:(NSInputStream*) input {
+ return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromInputStream:input] build];
+}
++ (ObjectiveCFileOptions*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (ObjectiveCFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromCodedInputStream:input] build];
+}
++ (ObjectiveCFileOptions*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (ObjectiveCFileOptions*)[[[ObjectiveCFileOptions builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (ObjectiveCFileOptions_Builder*) builder {
+ return [[[ObjectiveCFileOptions_Builder alloc] init] autorelease];
+}
++ (ObjectiveCFileOptions_Builder*) builderWithPrototype:(ObjectiveCFileOptions*) prototype {
+ return [[ObjectiveCFileOptions builder] mergeFrom:prototype];
+}
+- (ObjectiveCFileOptions_Builder*) builder {
+ return [ObjectiveCFileOptions builder];
+}
+@end
+
+@interface ObjectiveCFileOptions_Builder()
+@property (retain) ObjectiveCFileOptions* result;
+@end
+
+@implementation ObjectiveCFileOptions_Builder
+@synthesize result;
+- (void) dealloc {
+ self.result = nil;
+ [super dealloc];
+}
+- (id) init {
+ if ((self = [super init])) {
+ self.result = [[[ObjectiveCFileOptions alloc] init] autorelease];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return result;
+}
+- (ObjectiveCFileOptions_Builder*) clear {
+ self.result = [[[ObjectiveCFileOptions alloc] init] autorelease];
+ return self;
+}
+- (ObjectiveCFileOptions_Builder*) clone {
+ return [ObjectiveCFileOptions builderWithPrototype:result];
+}
+- (ObjectiveCFileOptions*) defaultInstance {
+ return [ObjectiveCFileOptions defaultInstance];
+}
+- (ObjectiveCFileOptions*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (ObjectiveCFileOptions*) buildPartial {
+ ObjectiveCFileOptions* returnMe = [[result retain] autorelease];
+ self.result = nil;
+ return returnMe;
+}
+- (ObjectiveCFileOptions_Builder*) mergeFrom:(ObjectiveCFileOptions*) other {
+ if (other == [ObjectiveCFileOptions defaultInstance]) {
+ return self;
+ }
+ if (other.hasPackage) {
+ [self setPackage:other.package];
+ }
+ if (other.hasClassPrefix) {
+ [self setClassPrefix:other.classPrefix];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (ObjectiveCFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (ObjectiveCFileOptions_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ int32_t tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setPackage:[input readString]];
+ break;
+ }
+ case 18: {
+ [self setClassPrefix:[input readString]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasPackage {
+ return result.hasPackage;
+}
+- (NSString*) package {
+ return result.package;
+}
+- (ObjectiveCFileOptions_Builder*) setPackage:(NSString*) value {
+ result.hasPackage = YES;
+ result.package = value;
+ return self;
+}
+- (ObjectiveCFileOptions_Builder*) clearPackage {
+ result.hasPackage = NO;
+ result.package = @"";
+ return self;
+}
+- (BOOL) hasClassPrefix {
+ return result.hasClassPrefix;
+}
+- (NSString*) classPrefix {
+ return result.classPrefix;
+}
+- (ObjectiveCFileOptions_Builder*) setClassPrefix:(NSString*) value {
+ result.hasClassPrefix = YES;
+ result.classPrefix = value;
+ return self;
+}
+- (ObjectiveCFileOptions_Builder*) clearClassPrefix {
+ result.hasClassPrefix = NO;
+ result.classPrefix = @"";
+ return self;
+}
+@end
+
diff --git a/proto/README b/proto/README
new file mode 100644
index 0000000..6076f34
--- /dev/null
+++ b/proto/README
@@ -0,0 +1,39 @@
+(Last-Updated: Jan 5 2010)
+
+The Mumble protobuf protocol
+============================
+
+Mumble uses Protocol Buffers for its command-channel communication
+in version 1.2 and greater.
+
+This directory contains the ObjC-output from the protobuf compiler,
+and a Mumble.proto protocol description fetched from the desktop
+Mumble client's git repository.
+
+
+Updating the protocol decription
+================================
+
+Simply run the `update-proto.sh' script in this directory to update
+the protocol description. Note however that you need a protoc exe-
+cutable that can output Objective-C.
+
+Please refer to the next section of this document if you don't have
+a Obj-C capable protoc.
+
+
+Generating the Objective-C from Mumble.proto
+============================================
+
+To get a protobuf compiler that can output Objective-C, it is
+recommended that you build the one found in the protobuf submodule:
+
+ 3rdparty/protobuf/
+
+To build a working protobuf compiler, simply execute:
+
+ $ ./build-protoc.sh
+
+And you should have a working protoc executable in
+
+ 3rdparty/protobuf/src/protoc
diff --git a/proto/build-protoc.sh b/proto/build-protoc.sh
new file mode 100755
index 0000000..40c67e5
--- /dev/null
+++ b/proto/build-protoc.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+cd ../3rdparty/protobuf/
+./configure
+make -j5
diff --git a/proto/update-proto.sh b/proto/update-proto.sh
new file mode 100755
index 0000000..97f950e
--- /dev/null
+++ b/proto/update-proto.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+#
+# Grab the latest Mumble.proto file from desktop Mumble.
+#
+curl "http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=blob_plain;f=src/Mumble.proto;hb=HEAD" > Mumble.proto.clean
+cat Mumble.proto.objc Mumble.proto.clean > Mumble.proto
+../3rdparty/protobuf/src/protoc --objc_out=. \
+ -I../3rdparty/protobuf/src/ \
+ -I. \
+ Mumble.proto \
+ ../3rdparty/protobuf/src/google/protobuf/descriptor.proto \
+ ../3rdparty/protobuf/src/google/protobuf/objectivec-descriptor.proto
+rm Mumble.proto.clean
+
+#
+# Patch the generated Descriptor.pb.m if needed.
+#
+if [ "`grep ProtocolBuffers.h Descriptor.pb.m`" != "" ]; then exit; fi
+cat >Descriptor.pb.m.patch <<EOF
+--- ./Descriptor.pb.m
++++ ./Descriptor.pb.m
+@@ -1,3 +1,4 @@
+ // Generated by the protocol buffer compiler. DO NOT EDIT!
+
++#include "ProtocolBuffers.h"
+ #import "Descriptor.pb.h"
+
+EOF
+patch --no-backup-if-mismatch -p0 < Descriptor.pb.m.patch
+rm Descriptor.pb.m.patch
diff --git a/src/MKAudio.m b/src/MKAudio.m
new file mode 100644
index 0000000..19c1d3f
--- /dev/null
+++ b/src/MKAudio.m
@@ -0,0 +1,199 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKUtils.h>
+#import <MumbleKit/MKAudio.h>
+#import <MumbleKit/MKAudioInput.h>
+#import <MumbleKit/MKAudioOutput.h>
+
+static MKAudio *audioSingleton = nil;
+
+static void AudioInterruptionListenerCallback(void *udata, UInt32 interruptionState) {
+ MK_UNUSED MKAudio *audio = (MKAudio *) udata;
+ NSLog(@"Audio: Interruption state callback called.");
+}
+
+static void AudioSessionPropertyListenerCallback(void *udata, AudioSessionPropertyID property, UInt32 len, void *data) {
+ MK_UNUSED MKAudio *audio = (MKAudio *) udata;
+ BOOL audioInputAvailable;
+ UInt32 *u32;
+
+ switch (property) {
+ case kAudioSessionProperty_AudioInputAvailable: {
+ u32 = data;
+ audioInputAvailable = (BOOL)*u32;
+ if (audioInputAvailable == NO) {
+ NSLog(@"Audio: Audio Input now unavailable.");
+ } else {
+ NSLog(@"Audio: Audio Input now available.");
+ }
+
+ NSLog(@"Audio: AudioInputAvailable changed...");
+ break;
+ }
+ }
+}
+
+@implementation MKAudio
+
++ (void) initializeAudio {
+ NSLog(@"Audio: Initializing...");
+ audioSingleton = [[MKAudio alloc] init];
+ [[MKAudio audioOutput] setupDevice];
+ [[MKAudio audioInput] setupDevice];
+}
+
++ (MKAudioInput *) audioInput {
+ return [audioSingleton audioInput];
+}
+
++ (MKAudioOutput *) audioOutput {
+ return [audioSingleton audioOutput];
+}
+
++ (MKAudio *) audio {
+ return audioSingleton;
+}
+
+- (id) init {
+ OSStatus err;
+ UInt32 val;
+ Float64 fval;
+ UInt32 valSize;
+ BOOL audioInputAvailable;
+
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ /*
+ * Initialize Audio Session.
+ */
+ err = AudioSessionInitialize(CFRunLoopGetMain(), kCFRunLoopDefaultMode, AudioInterruptionListenerCallback, self);
+ if (err != kAudioSessionNoError) {
+ NSLog(@"Audio: Unable to initialize AudioSession.");
+ return nil;
+ }
+
+ /*
+ * To properly determine the right category property (at this time), we need to check
+ * whether we have a microphone available. This will always be the case on an iPhone,
+ * but for the iPod touch, we need the headphones plugged in.
+ */
+ valSize = sizeof(UInt32);
+ err = AudioSessionGetProperty(kAudioSessionProperty_AudioInputAvailable, &valSize, &val);
+ if (err != kAudioSessionNoError || valSize != sizeof(UInt32)) {
+ NSLog(@"Audio: Unable to query for input availability.");
+ }
+
+ audioInputAvailable = (BOOL) val;
+ if (audioInputAvailable == NO) {
+ NSLog(@"Audio: Audio Input not available.");
+ val = kAudioSessionCategory_MediaPlayback;
+ } else {
+ NSLog(@"Audio: Audio Input available.");
+ val = kAudioSessionCategory_PlayAndRecord;
+ }
+
+ err = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(val), &val);
+ if (err != kAudioSessionNoError) {
+ NSLog(@"Audio: Unable to set AudioCategory property.");
+ return nil;
+ }
+
+ /*
+ * Override whether we want to allow to be mixed with other applications. We want this to be
+ * a user choice. Some users may want their iPod app to play in the background.
+ */
+ val = TRUE;
+ err = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(val), &val);
+ if (err != kAudioSessionNoError) {
+ NSLog(@"Audio: Unable to set MixWithOthers property.");
+ return nil;
+ }
+
+ /*
+ * Set the preferred hardware sample rate.
+ * fixme(mkrautz): The AudioSession *can* reject this, in which case we need
+ * to be able to handle whatever input sampling rate is chosen
+ * for us. This is apparently 8KHz on a 1st gen iPhone.
+ */
+ fval = SAMPLE_RATE;
+ err = AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareSampleRate, sizeof(Float64), &fval);
+ if (err != kAudioSessionNoError) {
+ NSLog(@"Audio: Unable to set preferred hardware sample rate.");
+ return nil;
+ }
+
+ /*
+ * Activate our Audio Session.
+ */
+ err = AudioSessionSetActive(TRUE);
+ if (err != kAudioSessionNoError) {
+ NSLog(@"Audio: Unable to set session as active.");
+ return nil;
+ }
+
+ /*
+ * Query for the actual sample rate we are to cope with.
+ */
+ valSize = sizeof(Float64);
+ err = AudioSessionGetProperty(kAudioSessionProperty_CurrentHardwareSampleRate, &valSize, &fval);
+ if (err != kAudioSessionNoError) {
+ NSLog(@"Audio: Unable to query for current hardware sample rate.");
+ return nil;
+ }
+
+ NSLog(@"Audio: Current hardware sample rate = %.2fHz.", fval);
+
+ if (audioInputAvailable) {
+ ai = [[MKAudioInput alloc] init];
+ }
+
+ ao = [[MKAudioOutput alloc] init];
+
+ return self;
+}
+
+- (void) dealloc {
+ [super dealloc];
+ [ai release];
+ [ao release];
+}
+
+- (MKAudioInput *) audioInput {
+ return ai;
+}
+
+- (MKAudioOutput *) audioOutput {
+ return ao;
+}
+
+@end
diff --git a/src/MKAudioInput.m b/src/MKAudioInput.m
new file mode 100644
index 0000000..a2a1cdb
--- /dev/null
+++ b/src/MKAudioInput.m
@@ -0,0 +1,396 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+ Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKAudioInput.h>
+#import <MumbleKit/MKPacketDataStream.h>
+
+static OSStatus inputCallback(void *udata, AudioUnitRenderActionFlags *flags, const AudioTimeStamp *ts,
+ UInt32 busnum, UInt32 nframes, AudioBufferList *buflist) {
+ MKAudioInput *i = (MKAudioInput *)udata;
+ OSStatus err;
+
+ if (! i->buflist.mBuffers->mData) {
+ NSLog(@"AudioInput: No buffer allocated.");
+ i->buflist.mNumberBuffers = 1;
+ AudioBuffer *b = i->buflist.mBuffers;
+ b->mNumberChannels = i->numMicChannels;
+ b->mDataByteSize = i->micSampleSize * nframes;
+ b->mData = calloc(1, b->mDataByteSize);
+ }
+
+ if (i->buflist.mBuffers->mDataByteSize < (nframes/i->micSampleSize)) {
+ NSLog(@"AudioInput: Buffer too small. Allocating more space.");
+ AudioBuffer *b = i->buflist.mBuffers;
+ free(b->mData);
+ b->mDataByteSize = i->micSampleSize * nframes;
+ b->mData = calloc(1, b->mDataByteSize);
+ }
+
+ err = AudioUnitRender(i->audioUnit, flags, ts, busnum, nframes, &i->buflist);
+ if (err != noErr) {
+#if 0
+ NSLog(@"AudioInput: AudioUnitRender failed. err = %i", err);
+#endif
+ return err;
+ }
+
+ short *buf = (short *)i->buflist.mBuffers->mData;
+ [i addMicrophoneDataWithBuffer:buf amount:nframes];
+
+ return noErr;
+}
+
+@implementation MKAudioInput
+
+- (id) init {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ frameCounter = 0;
+ preprocessorState = NULL;
+
+ /*
+ * Adjust bandwidth:
+ * Depending on the max quality the client has set, determine iAudioQuality and iAudioFrames.
+ */
+ cfType = CELT;
+
+ numAudioFrames = 10;
+ if (cfType == CELT) {
+ sampleRate = SAMPLE_RATE;
+ frameSize = SAMPLE_RATE / 100;
+ NSLog(@"AudioInput: %i bits/s, %d Hz, %d sample CELT", audioQuality, sampleRate, frameSize);
+ } else {
+ sampleRate = 32000;
+ /* Speex. */
+ NSLog(@"AudioInput: Speex input support not yet implemented.");
+ return self;
+ }
+
+ doResetPreprocessor = YES;
+ previousVoice = NO;
+
+ preprocessorState = NULL;
+
+ psMic = malloc(sizeof(short) * frameSize);
+
+ numMicChannels = 0;
+ bitrate = 0;
+
+ /*
+ if (g.uiSession)
+ setMaxBandwidth(g.iMaxBandwidth);
+ */
+
+ /* Allocate buffer list. */
+ frameList = [[NSMutableArray alloc] initWithCapacity: 20]; /* should be iAudioFrames. */
+
+ udpMessageType = UDPVoiceCELTAlphaMessage;
+
+ return self;
+}
+
+- (void) dealloc {
+ [frameList release];
+
+ if (psMic)
+ free(psMic);
+
+ [super dealloc];
+}
+
+- (void) initializeMixer {
+ NSLog(@"AudioInput: initializeMixer -- iMicFreq=%u, iSampleRate=%u", micFrequency, sampleRate);
+
+ micLength = (frameSize * micFrequency) / sampleRate;
+
+ if (psMic)
+ free(psMic);
+
+ psMic = malloc(micLength * sizeof(short));
+ micSampleSize = numMicChannels * sizeof(short);
+ doResetPreprocessor = YES;
+
+ NSLog(@"AudioInput: Initialized mixer for %i channel %i Hz and %i channel %i Hz echo", numMicChannels, micFrequency, 0, 0);
+}
+
+- (BOOL) setupDevice {
+ UInt32 len;
+ UInt32 val;
+ OSStatus err;
+ AudioComponent comp;
+ AudioComponentDescription desc;
+ AudioStreamBasicDescription fmt;
+
+ desc.componentType = kAudioUnitType_Output;
+ desc.componentSubType = kAudioUnitSubType_RemoteIO;
+ desc.componentManufacturer = kAudioUnitManufacturer_Apple;
+ desc.componentFlags = 0;
+ desc.componentFlagsMask = 0;
+
+ comp = AudioComponentFindNext(NULL, &desc);
+ if (! comp) {
+ NSLog(@"AudioInput: Unable to find AudioUnit.");
+ return NO;
+ }
+
+ err = AudioComponentInstanceNew(comp, (AudioComponentInstance *) &audioUnit);
+ if (err != noErr) {
+ NSLog(@"AudioInput: Unable to instantiate new AudioUnit.");
+ return NO;
+ }
+
+ /* fixme(mkrautz): Backport some of this to the desktop CoreAudio backend? */
+
+ val = 1;
+ err = AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input, 1, &val, sizeof(UInt32));
+ if (err != noErr) {
+ NSLog(@"AudioInput: Unable to configure input scope on AudioUnit.");
+ return NO;
+ }
+
+ val = 0;
+ err = AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output, 0, &val, sizeof(UInt32));
+ if (err != noErr) {
+ NSLog(@"AudioInput: Unable to configure output scope on AudioUnit.");
+ return NO;
+ }
+
+ AURenderCallbackStruct cb;
+ cb.inputProc = inputCallback;
+ cb.inputProcRefCon = self;
+ len = sizeof(AURenderCallbackStruct);
+ err = AudioUnitSetProperty(audioUnit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, 0, &cb, len);
+ if (err != noErr) {
+ NSLog(@"AudioInput: Unable to setup callback.");
+ return NO;
+ }
+
+ err = AudioUnitInitialize(audioUnit);
+ if (err != noErr) {
+ NSLog(@"AudioInput: Unable to initialize AudioUnit.");
+ return NO;
+ }
+
+ len = sizeof(AudioStreamBasicDescription);
+ err = AudioUnitGetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 1, &fmt, &len);
+ if (err != noErr) {
+ NSLog(@"CoreAudioInput: Unable to query device for stream info.");
+ return NO;
+ }
+
+ if (fmt.mChannelsPerFrame > 1) {
+ NSLog(@"AudioInput: Input device with more than one channel detected. Defaulting to 1.");
+ }
+
+ micFrequency = (int) 48000;
+ numMicChannels = 1;
+ [self initializeMixer];
+
+ fmt.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
+ fmt.mBitsPerChannel = sizeof(short) * 8;
+ fmt.mFormatID = kAudioFormatLinearPCM;
+ fmt.mSampleRate = micFrequency;
+ fmt.mChannelsPerFrame = numMicChannels;
+ fmt.mBytesPerFrame = micSampleSize;
+ fmt.mBytesPerPacket = micSampleSize;
+ fmt.mFramesPerPacket = 1;
+
+ len = sizeof(AudioStreamBasicDescription);
+ err = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 1, &fmt, len);
+ if (err != noErr) {
+ NSLog(@"AudioInput: Unable to set stream format for output device. (output scope)");
+ return NO;
+ }
+
+ len = sizeof(AudioStreamBasicDescription);
+ err = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &fmt, len);
+ if (err != noErr) {
+ NSLog(@"AudioInput: Unable to set stream format for output device. (input scope)");
+ return NO;
+ }
+
+ err = AudioOutputUnitStart(audioUnit);
+ if (err != noErr) {
+ NSLog(@"AudioInput: Unable to start AudioUnit.");
+ return NO;
+ }
+
+ return YES;
+}
+
+- (void) addMicrophoneDataWithBuffer:(short *)input amount:(NSUInteger)nsamp {
+ int i;
+
+ while (nsamp > 0) {
+ unsigned int left = MIN(nsamp, micLength - micFilled);
+
+ short *output = psMic + micFilled;
+
+ for (i = 0; i < left; i++) {
+ output[i] = input[i];
+ }
+
+ input += left;
+ micFilled += left;
+ nsamp -= left;
+
+ if (micFilled == micLength) {
+ micFilled = 0;
+ [self encodeAudioFrame];
+ }
+ }
+}
+
+- (void) resetPreprocessor {
+ int iArg;
+
+ if (preprocessorState)
+ speex_preprocess_state_destroy(preprocessorState);
+
+ preprocessorState = speex_preprocess_state_init(frameSize, sampleRate);
+
+ iArg = 1;
+ speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_VAD, &iArg);
+ speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_AGC, &iArg);
+ speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_DENOISE, &iArg);
+ speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_DEREVERB, &iArg);
+
+ iArg = 30000;
+ speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_AGC_TARGET, &iArg);
+
+// float v = 30000.0f / (float) 0.0f; // iMinLoudness
+// iArg = iroundf(floorf(20.0f * log10f(v)));
+// speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_AGC_MAX_GAIN, &iArg);
+
+// iArg = 0;//g.s.iNoiseSuppress;
+// speex_preprocess_ctl(preprocessorState, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &iArg);
+}
+
+- (void) encodeAudioFrame {
+
+ frameCounter++;
+
+ if (doResetPreprocessor) {
+ [self resetPreprocessor];
+ doResetPreprocessor = NO;
+ }
+
+ int isSpeech = speex_preprocess_run(preprocessorState, psMic);
+
+ {
+ unsigned char buffer[1024];
+ int len = 0;
+
+ if (celtEncoder == nil) {
+ CELTMode *mode = celt_mode_create(SAMPLE_RATE, SAMPLE_RATE / 100, NULL);
+ celtEncoder = celt_encoder_create(mode, 1, NULL);
+ }
+
+ audioQuality = 24000;
+
+ if (!previousVoice) {
+ celt_encoder_ctl(celtEncoder, CELT_RESET_STATE);
+ NSLog(@"AudioInput: Reset CELT state.");
+ }
+
+ celt_encoder_ctl(celtEncoder, CELT_SET_PREDICTION(0));
+ celt_encoder_ctl(celtEncoder, CELT_SET_VBR_RATE(audioQuality));
+ len = celt_encode(celtEncoder, psMic, NULL, buffer, MIN(audioQuality / 800, 127));
+
+ bitrate = len * 100 * 8;
+
+ NSData *outputBuffer = [[NSData alloc] initWithBytes:buffer length:len];
+ [self flushCheck:outputBuffer terminator:NO];
+ [outputBuffer release];
+
+ previousVoice = YES;
+ }
+}
+
+/*
+ * Flush check.
+ *
+ * Queue up frames, and send them to the server when enough frames have been
+ * queued up.
+ */
+- (void) flushCheck:(NSData *)codedSpeech terminator:(BOOL)terminator {
+ [frameList addObject:codedSpeech];
+
+ if (! terminator && [frameList count] < numAudioFrames) {
+ return;
+ }
+
+ int flags = 0;
+ if (terminator)
+ flags = 0; /* g.iPrevTarget. */
+
+ /*
+ * Server loopback:
+ * flags = 0x1f;
+ */
+ flags |= (udpMessageType << 5);
+
+ unsigned char data[1024];
+ data[0] = (unsigned char )(flags & 0xff);
+
+ MKPacketDataStream *pds = [[MKPacketDataStream alloc] initWithBuffer:(data+1) length:1023];
+ [pds addVarint:(frameCounter - [frameList count])];
+
+ /* fix terminator stuff here. */
+
+ int i, nframes = [frameList count];
+ for (i = 0; i < nframes; i++) {
+ NSData *frame = [frameList objectAtIndex:i];
+ unsigned char head = (unsigned char)[frame length];
+ if (i < nframes-1)
+ head |= 0x80;
+ [pds appendValue:head];
+ [pds appendBytes:(unsigned char *)[frame bytes] length:[frame length]];
+ }
+ [frameList removeAllObjects];
+
+ NSUInteger len = [pds size] + 1;
+ [pds release];
+
+#if 0
+ Connection *conn = [[[UIApplication sharedApplication] delegate] connection];
+
+ if ([conn connected]) {
+ NSData *msgData = [[NSData alloc] initWithBytes:data length:len];
+ [conn sendMessageWithType:UDPTunnelMessage data:msgData];
+ [msgData release];
+ }
+#endif
+}
+
+@end
diff --git a/src/MKAudioOutput.m b/src/MKAudioOutput.m
new file mode 100644
index 0000000..fdab150
--- /dev/null
+++ b/src/MKAudioOutput.m
@@ -0,0 +1,280 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+ Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKUtils.h>
+#import <MumbleKit/MKAudioOutput.h>
+#import <MumbleKit/MKAudioOutputSpeech.h>
+
+/*
+ * Output callback.
+ */
+static OSStatus outputCallback(void *udata, AudioUnitRenderActionFlags *flags, const AudioTimeStamp *ts,
+ UInt32 busnum, UInt32 nframes, AudioBufferList *buflist) {
+ MKAudioOutput *ao = (MKAudioOutput *) udata;
+ AudioBuffer *buf = buflist->mBuffers;
+ MK_UNUSED OSStatus err;
+ BOOL done;
+
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+ done = [ao mixFrames:buf->mData amount:nframes];
+ if (! done) {
+ /*
+ * Not very obvious from the documentation, but CoreAudio simply wants you to set your buffer
+ * size to 0, and return a non-zero value when you don't have anything to feed it. It will call
+ * you back later.
+ */
+ buf->mDataByteSize = 0;
+ return -1;
+ }
+
+ [pool release];
+
+ return noErr;
+}
+
+@implementation MKAudioOutput
+
+- (id) init {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ sampleSize = 0;
+ frameSize = SAMPLE_RATE / 100;
+ mixerFrequency = 0;
+
+ outputLock = [[MKReadWriteLock alloc] init];
+ outputs = [[NSMutableDictionary alloc] init];
+
+ return self;
+}
+
+- (void) dealloc {
+ [super dealloc];
+ [outputLock release];
+ [outputs release];
+}
+
+- (BOOL) setupDevice {
+ UInt32 len;
+ OSStatus err;
+ AudioComponent comp;
+ AudioComponentDescription desc;
+ AudioStreamBasicDescription fmt;
+
+ desc.componentType = kAudioUnitType_Output;
+ desc.componentSubType = kAudioUnitSubType_RemoteIO;
+ desc.componentManufacturer = kAudioUnitManufacturer_Apple;
+ desc.componentFlags = 0;
+ desc.componentFlagsMask = 0;
+
+ comp = AudioComponentFindNext(NULL, &desc);
+ if (! comp) {
+ NSLog(@"AudioOutput: Unable to find AudioUnit.");
+ return NO;
+ }
+
+ err = AudioComponentInstanceNew(comp, (AudioComponentInstance *) &audioUnit);
+ if (err != noErr) {
+ NSLog(@"AudioOutput: Unable to instantiate new AudioUnit.");
+ return NO;
+ }
+
+ err = AudioUnitInitialize(audioUnit);
+ if (err != noErr) {
+ NSLog(@"AudioOutput: Unable to initialize AudioUnit.");
+ return NO;
+ }
+
+ len = sizeof(AudioStreamBasicDescription);
+ err = AudioUnitGetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 0, &fmt, &len);
+ if (err != noErr) {
+ NSLog(@"AudioOuptut: Unable to get output stream format from AudioUnit.");
+ return NO;
+ }
+
+ mixerFrequency = (int) 48000;
+ numChannels = (int) fmt.mChannelsPerFrame;
+ sampleSize = numChannels * sizeof(short);
+
+ if (speakerVolume) {
+ free(speakerVolume);
+ }
+ speakerVolume = malloc(sizeof(float)*numChannels);
+
+ int i;
+ for (i = 0; i < numChannels; ++i) {
+ speakerVolume[i] = 1.0f;
+ }
+
+ fmt.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
+ fmt.mBitsPerChannel = sizeof(short) * 8;
+
+ NSLog(@"AudioOutput: Output device currently configured as %iHz sample rate, %i channels, %i sample size", mixerFrequency, numChannels, sampleSize);
+
+ fmt.mFormatID = kAudioFormatLinearPCM;
+ fmt.mSampleRate = mixerFrequency;
+ fmt.mBytesPerFrame = sampleSize;
+ fmt.mBytesPerPacket = sampleSize;
+ fmt.mFramesPerPacket = 1;
+
+ len = sizeof(AudioStreamBasicDescription);
+ err = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &fmt, len);
+ if (err != noErr) {
+ NSLog(@"AudioOutput: Unable to set stream format for output device.");
+ return NO;
+ }
+
+ AURenderCallbackStruct cb;
+ cb.inputProc = outputCallback;
+ cb.inputProcRefCon = self;
+ len = sizeof(AURenderCallbackStruct);
+ err = AudioUnitSetProperty(audioUnit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Global, 0, &cb, len);
+ if (err != noErr) {
+ NSLog(@"AudioOutput: Could not set render callback.");
+ return NO;
+ }
+
+ /* On desktop we call AudioDeviceSetProperty() with kAudioDevicePropertyBufferFrameSize to set our frame size up. */
+
+ err = AudioOutputUnitStart(audioUnit);
+ if (err != noErr) {
+ NSLog(@"AudioOutput: Unable to start AudioUnit");
+ return NO;
+ }
+
+ return YES;
+}
+
+- (BOOL) mixFrames:(void *)frames amount:(unsigned int)nsamp {
+ unsigned int i, s;
+ BOOL retVal = NO;
+
+ /*
+ * The real mixer:
+ */
+ NSMutableArray *mix = [[NSMutableArray alloc] init];
+ NSMutableArray *del = [[NSMutableArray alloc] init];
+ unsigned int nchan = numChannels;
+
+ /* if volume is too low, skip. */
+
+ [outputLock readLock];
+ for (NSNumber *sessionKey in outputs) {
+ MKAudioOutputUser *ou = [outputs objectForKey:sessionKey];
+ if (! [ou needSamples:nsamp]) {
+ [del addObject:ou];
+ } else {
+ [mix addObject:ou];
+ }
+ }
+
+ float *mixBuffer = alloca(sizeof(float)*numChannels*nsamp);
+ memset(mixBuffer, 0, sizeof(float)*numChannels*nsamp);
+
+ if ([mix count] > 0) {
+ for (MKAudioOutputUser *ou in mix) {
+ const float * restrict userBuffer = [ou buffer];
+ for (s = 0; s < nchan; ++s) {
+ const float str = speakerVolume[s];
+ float * restrict o = (float *)mixBuffer + s;
+ for (i = 0; i < nsamp; ++i) {
+ o[i*nchan] += userBuffer[i] * str;
+ }
+ }
+ }
+
+ short *outputBuffer = (short *)frames;
+ for (i = 0; i < nsamp * numChannels; ++i) {
+ if (mixBuffer[i] > 1.0f) {
+ outputBuffer[i] = 32768;
+ } else if (mixBuffer[i] < -1.0f) {
+ outputBuffer[i] = -32768;
+ } else {
+ outputBuffer[i] = mixBuffer[i] * 32768.0f;
+ }
+ }
+ } else {
+ memset((short *)frames, 0, nsamp * numChannels);
+ }
+
+ [outputLock unlock];
+
+ for (MKAudioOutputUser *ou in del) {
+ [self removeBuffer:ou];
+ }
+
+ retVal = [mix count] > 0;
+
+ [mix release];
+ [del release];
+
+ return retVal;
+}
+
+- (void) removeBuffer:(MKAudioOutputUser *)u {
+ [outputLock writeLock];
+
+ MKUser *user = [u user];
+ NSUInteger session = [user session];
+ [outputs removeObjectForKey:[NSNumber numberWithUnsignedInt:session]];
+
+ [outputLock unlock];
+}
+
+- (void) addFrameToBufferWithUser:(MKUser *)user data:(NSData *)data sequence:(NSUInteger)seq type:(MKMessageType)msgType {
+ if (numChannels == 0)
+ return;
+
+ [outputLock readLock];
+ NSInteger session = [user session];
+ MKAudioOutputSpeech *outputUser = [outputs objectForKey:[NSNumber numberWithUnsignedInt:session]];
+ if (outputUser == nil || [outputUser messageType] != msgType) {
+ [outputLock unlock];
+
+ if (outputUser != nil) {
+ [self removeBuffer:outputUser];
+ }
+
+ NSLog(@"AudioOutput: No AudioOutputSpeech for user, allocating.");
+
+ [outputLock writeLock];
+ outputUser = [[MKAudioOutputSpeech alloc] initWithUser:user sampleRate:mixerFrequency messageType:msgType];
+ [outputs setObject:outputUser forKey:[NSNumber numberWithUnsignedInt:session]];
+ [outputUser release];
+ }
+
+ [outputUser addFrame:data forSequence:seq];
+ [outputLock unlock];
+}
+
+@end
diff --git a/src/MKAudioOutputSpeech.m b/src/MKAudioOutputSpeech.m
new file mode 100644
index 0000000..fba6481
--- /dev/null
+++ b/src/MKAudioOutputSpeech.m
@@ -0,0 +1,339 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+ Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKAudioOutputSpeech.h>
+#import <MumbleKit/MKPacketDataStream.h>
+
+#include <pthread.h>
+
+@implementation MKAudioOutputSpeech
+
+- (id) initWithUser:(MKUser *)u sampleRate:(NSUInteger)freq messageType:(MKMessageType)type {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ user = u;
+ messageType = type;
+
+ NSUInteger sampleRate;
+
+ if (type != UDPVoiceSpeexMessage) {
+ sampleRate = SAMPLE_RATE;
+ frameSize = sampleRate / 100;
+ } else {
+ sampleRate = 32000;
+ NSLog(@"AudioOutputSpeech: No Speex support (yet).");
+ }
+
+ if (freq != sampleRate) {
+ NSLog(@"AudioOutputSpeech: freq != sampleRate");
+ }
+
+ outputSize = frameSize;
+ bufferOffset = bufferFilled = lastConsume = 0;
+
+ lastAlive = TRUE;
+
+ missCount = 0;
+ missedFrames = 0;
+
+ flags = 0xff;
+
+ jitter = jitter_buffer_init(frameSize);
+ int margin = /* g.s.iJitterBufferSize */ 10 * frameSize;
+ jitter_buffer_ctl(jitter, JITTER_BUFFER_SET_MARGIN, &margin);
+
+ fadeIn = malloc(sizeof(float)*frameSize);
+ fadeOut = malloc(sizeof(float)*frameSize);
+
+ float mul = (float)(M_PI / (2.0 * (float)frameSize));
+ NSUInteger i;
+ for (i = 0; i < frameSize; ++i) {
+ fadeIn[i] = fadeOut[frameSize-i-1] = sinf((float)i * mul);
+ }
+
+ frames = [[NSMutableArray alloc] init];
+ celtMode = celt_mode_create(SAMPLE_RATE, SAMPLE_RATE/100, NULL);
+ celtDecoder = celt_decoder_create(celtMode, 1, NULL);
+
+ int err = pthread_mutex_init(&jitterMutex, NULL);
+ if (err != 0) {
+ NSLog(@"AudioOutputSpeech: pthread_mutex_init() failed.");
+ return nil;
+ }
+
+ return self;
+}
+
+- (void) dealloc {
+ [super dealloc];
+
+ if (celtDecoder)
+ celt_decoder_destroy(celtDecoder);
+ if (celtMode)
+ celt_mode_destroy(celtMode);
+}
+
+- (MKUser *) user {
+ return user;
+}
+
+- (MKMessageType) messageType {
+ return messageType;
+}
+
+- (void) addFrame:(NSData *)data forSequence:(NSUInteger)seq {
+ int err = pthread_mutex_lock(&jitterMutex);
+ if (err != 0) {
+ NSLog(@"AudioOutputSpeech: pthread_mutex_lock() failed.");
+ return;
+ }
+
+ if ([data length] < 2) {
+ pthread_mutex_unlock(&jitterMutex);
+ return;
+ }
+
+ MKPacketDataStream *pds = [[MKPacketDataStream alloc] initWithData:data];
+ [pds next];
+
+ int nframes = 0;
+ unsigned int header = 0;
+ do {
+ header = (unsigned int)[pds next];
+ ++nframes;
+ [pds skip:(header & 0x7f)];
+ } while ((header & 0x80) && [pds valid]);
+
+ if (! [pds valid]) {
+ [pds release];
+ NSLog(@"addFrame:: Invalid pds.");
+ pthread_mutex_unlock(&jitterMutex);
+ return;
+ }
+
+ JitterBufferPacket jbp;
+ jbp.data = (char *)[data bytes];
+ jbp.len = [data length];
+ jbp.span = frameSize * nframes;
+ jbp.timestamp = frameSize * seq;
+
+ jitter_buffer_put(jitter, &jbp);
+
+ [pds release];
+
+ err = pthread_mutex_unlock(&jitterMutex);
+ if (err != 0) {
+ NSLog(@"AudioOutputSpeech: Unable to unlock() jitter mutex.");
+ return;
+ }
+}
+
+- (BOOL) needSamples:(NSUInteger)nsamples {
+ NSUInteger i;
+
+ for (i = lastConsume; i < bufferFilled; ++i) {
+ buffer[i-lastConsume] = buffer[i];
+ }
+ bufferFilled -= lastConsume;
+
+ lastConsume = nsamples;
+
+ if (bufferFilled >= nsamples) {
+ NSLog(@"AudioOutputSpeech: bufferFilled >= nsamples... returning lastAlive.");
+ return lastAlive;
+ }
+
+ float *output = NULL;
+ BOOL nextAlive = lastAlive;
+
+ while (bufferFilled < nsamples) {
+ [self resizeBuffer:(bufferFilled + outputSize)];
+ output = buffer + bufferFilled;
+
+ if (! lastAlive) {
+ memset(output, 0, frameSize * sizeof(float));
+ } else {
+ int avail = 0;
+ int ts = jitter_buffer_get_pointer_timestamp(jitter);
+ jitter_buffer_ctl(jitter, JITTER_BUFFER_GET_AVAILABLE_COUNT, &avail);
+
+ if (user && (ts == 0)) {
+ int want = (int)averageAvailable; // fixme(mkrautz): Was iroundf.
+ if (avail < want) {
+ ++missCount;
+ if (missCount < 20) {
+ memset(output, 0, frameSize * sizeof(float));
+ goto nextframe;
+ }
+ }
+ }
+
+ if ([frames count] == 0) {
+ int err = pthread_mutex_lock(&jitterMutex);
+ if (err != 0) {
+ NSLog(@"AudioOutputSpeech: unable to lock() mutex.");
+ }
+
+ // lock jitter mutex
+ char data[4096];
+
+ JitterBufferPacket jbp;
+ jbp.data = data;
+ jbp.len = 4096;
+
+ spx_int32_t startofs = 0;
+
+ if (jitter_buffer_get(jitter, &jbp, frameSize, &startofs) == JITTER_BUFFER_OK) {
+ MKPacketDataStream *pds = [[MKPacketDataStream alloc] initWithBuffer:(unsigned char *)jbp.data length:jbp.len];
+
+ missCount = 0;
+ flags = (unsigned char)[pds next];
+ hasTerminator = NO;
+
+ unsigned int header = 0;
+ do {
+ header = (unsigned int)[pds next];
+ if (header) {
+ NSData *block = [pds copyDataBlock:(header & 0x7f)];
+ [frames addObject:block];
+ [block release];
+ } else {
+ hasTerminator = YES;
+ }
+ } while ((header & 0x80) && [pds valid]);
+
+ if ([pds left]) {
+ pos[0] = [pds getFloat];
+ pos[1] = [pds getFloat];
+ pos[2] = [pds getFloat];
+ } else {
+ pos[0] = pos[1] = pos[2] = 0.0f;
+ }
+
+ [pds release];
+
+ float a = (float) avail;
+ if (a >= averageAvailable) {
+ averageAvailable = a;
+ } else {
+ averageAvailable *= 0.99f;
+ }
+ } else {
+ NSLog(@"AudioOutputSpeech: Nothing in jitter buffer...");
+ jitter_buffer_update_delay(jitter, &jbp, NULL);
+
+ ++missCount;
+ if (missCount > 10) {
+ nextAlive = NO;
+ }
+ }
+
+ err = pthread_mutex_unlock(&jitterMutex);
+ if (err != 0) {
+ NSLog(@"AudioOutputSpeech: Unable to unlock mutex.");
+ }
+ }
+
+ if ([frames count] > 0) {
+ NSData *frameData = [frames objectAtIndex:0];
+
+ if (messageType != UDPVoiceSpeexMessage) {
+ if ([frameData length] != 0) {
+ celt_decode_float(celtDecoder, [frameData bytes], [frameData length], output);
+ } else {
+ celt_decode_float(celtDecoder, NULL, 0, output);
+ }
+ } else {
+ NSLog(@"AudioOutputSpeech: Don't know how to decode Speex.");
+ }
+
+ [frames removeObjectAtIndex:0];
+
+ BOOL update = YES;
+
+ float pow = 0.0f;
+ for (i = 0; i < frameSize; ++i) {
+ pow += output[i] * output[i];
+ }
+ pow = sqrtf(pow / frameSize);
+ if (pow > powerMax) {
+ powerMax = pow;
+ } else {
+ if (pow <= powerMin) {
+ powerMin = pow;
+ } else {
+ powerMax = 0.99f * powerMax;
+ powerMin += 0.0001f * pow;
+ }
+ }
+
+ update = (pow < (powerMin + 0.01f * (powerMax - powerMin)));
+
+ if ([frames count] == 0 && update) {
+ jitter_buffer_update_delay(jitter, NULL, NULL);
+ }
+
+ if ([frames count] == 0 && hasTerminator) {
+ nextAlive = NO;
+ }
+ } else {
+ if (messageType != UDPVoiceSpeexMessage) {
+ celt_decode_float(celtDecoder, NULL, 0, output);
+ } else {
+ NSLog(@"AudioOutputSpeech: I don't handle Speex.");
+ }
+ }
+
+ if (! nextAlive) {
+ for (i = 0; i < frameSize; i++) {
+ output[i] *= fadeOut[i];
+ }
+ } else if (ts == 0) {
+ for (i = 0; i < frameSize; i++) {
+ output[i] *= fadeIn[i];
+ }
+ }
+
+ jitter_buffer_tick(jitter);
+ }
+
+nextframe:
+ bufferFilled += outputSize;
+ }
+
+ BOOL tmp = lastAlive;
+ lastAlive = nextAlive;
+ return tmp;
+}
+
+@end
diff --git a/src/MKAudioOutputUser.m b/src/MKAudioOutputUser.m
new file mode 100644
index 0000000..672d7a0
--- /dev/null
+++ b/src/MKAudioOutputUser.m
@@ -0,0 +1,87 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+ Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKAudioOutputUser.h>
+
+@implementation MKAudioOutputUser
+
+- (id) init {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ bufferSize = 0;
+ buffer = NULL;
+ volume = NULL;
+
+ pos[0] = pos[1] = pos[2] = 0.0f;
+
+ return self;
+}
+
+- (void) dealloc {
+ [super dealloc];
+
+ if (buffer)
+ free(buffer);
+ if (volume)
+ free(volume);
+}
+
+- (MKUser *) user {
+ return nil;
+}
+
+- (float *) buffer {
+ return buffer;
+}
+
+- (NSUInteger) bufferLength {
+ return bufferSize;
+}
+
+- (void) resizeBuffer:(NSUInteger)newSize {
+ if (newSize > bufferSize) {
+ float *n = malloc(sizeof(float)*newSize);
+ if (buffer) {
+ memcpy(n, buffer, sizeof(float)*bufferSize);
+ free(buffer);
+ }
+ buffer = n;
+ bufferSize = newSize;
+ }
+}
+
+- (BOOL) needSamples:(NSUInteger)nsamples {
+ return NO;
+}
+
+@end
diff --git a/src/MKChannel.m b/src/MKChannel.m
new file mode 100644
index 0000000..e9faca4
--- /dev/null
+++ b/src/MKChannel.m
@@ -0,0 +1,173 @@
+/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKChannel.h>
+#import <MumbleKit/MKUser.h>
+
+@implementation MKChannel
+
+- (id) init {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ inheritACL = YES;
+ channelList = [[NSMutableArray alloc] init];
+ userList = [[NSMutableArray alloc] init];
+ ACLList = [[NSMutableArray alloc] init];
+
+ return self;
+}
+
+- (void) dealloc {
+ [channelName release];
+
+ [userList release];
+ [channelList release];
+ [ACLList release];
+
+ [super dealloc];
+}
+
+#pragma mark -
+
+- (NSUInteger) treeDepth {
+ return depth;
+}
+
+- (void) setTreeDepth:(NSUInteger)treeDepth {
+ depth = treeDepth;
+}
+
+#pragma mark -
+
+- (void) addChannel:(MKChannel *)chan {
+ [chan setParent:self];
+ [channelList addObject:chan];
+}
+
+- (void) removeChannel:(MKChannel *)chan {
+ [chan setParent:nil];
+ [channelList removeObject:chan];
+}
+
+- (void) addUser:(MKUser *)user {
+ MKChannel *chan = [user channel];
+ [chan removeUser:user];
+ [user setChannel:self];
+ [userList addObject:user];
+}
+
+- (void) removeUser:(MKUser *)user {
+ [userList removeObject:user];
+}
+
+- (NSUInteger) numChildren {
+ NSUInteger count = 0;
+ for (MKChannel *c in channelList) {
+ count += 1 + [c numChildren];
+ }
+ return count + [userList count];
+}
+
+#pragma mark -
+
+- (BOOL) linkedToChannel:(MKChannel *)chan {
+ for (MKChannel *c in linkedList) {
+ if (c == chan) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
+- (void) linkToChannel:(MKChannel *)chan {
+ if ([self linkedToChannel:chan])
+ return;
+
+ [linkedList addObject:chan];
+ [chan->linkedList addObject:self];
+}
+
+- (void) unlinkFromChannel:(MKChannel *)chan {
+ [linkedList removeObject:chan];
+ [chan->linkedList removeObject:self];
+}
+
+- (void) unlinkAll {
+ for (MKChannel *chan in linkedList) {
+ [self unlinkFromChannel:chan];
+ }
+}
+
+#pragma mark -
+
+- (void) setChannelName:(NSString *)name {
+ [channelName release];
+ channelName = [name copy];
+}
+
+- (NSString *) channelName {
+ return channelName;
+}
+
+- (void) setParent:(MKChannel *)chan {
+ channelParent = chan;
+}
+
+- (MKChannel *) parent {
+ return channelParent;
+}
+
+- (void) setChannelId:(NSUInteger)chanId {
+ channelId = chanId;
+}
+
+- (NSUInteger) channelId {
+ return channelId;
+}
+
+- (void) setTemporary:(BOOL)flag {
+ temporary = flag;
+}
+
+- (BOOL) temporary {
+ return temporary;
+}
+
+- (NSInteger) position {
+ return position;
+}
+
+- (void) setPosition:(NSInteger)pos {
+ position = pos;
+}
+
+@end
diff --git a/src/MKConnection.m b/src/MKConnection.m
new file mode 100644
index 0000000..001841d
--- /dev/null
+++ b/src/MKConnection.m
@@ -0,0 +1,599 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKUtils.h>
+#import <MumbleKit/MKConnection.h>
+#import <MumbleKit/MKPacketDataStream.h>
+#import <MumbleKit/MKUser.h>
+#import <MumbleKit/MKAudioOutput.h>
+
+#import <CFNetwork/CFNetwork.h>
+
+#import "NSInvocation(MumbleKitAdditions).h"
+
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+
+/*
+ * The SecureTransport.h header is not available on the iPhone, so
+ * these constants are lifted from the Mac OS X version of the header.
+ */
+#define errSSLProtocol -9800
+#define errSSLXCertChainInvalid -9807
+#define errSSLLast -9849
+
+@implementation MKConnection
+
+- (id) init {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ packetLength = -1;
+ _connectionEstablished = NO;
+ _socket = -1;
+ _ignoreSSLVerification = NO;
+
+ return self;
+}
+
+- (void) dealloc {
+ [self closeStreams];
+
+ [super dealloc];
+}
+
+- (void) connectToHost:(NSString *)hostName port:(NSUInteger)portNumber {
+
+ packetLength = -1;
+ _connectionEstablished = NO;
+
+ hostname = hostName;
+ port = portNumber;
+
+ CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault,
+ (CFStringRef)hostname, port,
+ (CFReadStreamRef *) &_inputStream,
+ (CFWriteStreamRef *) &_outputStream);
+
+ if (_inputStream == nil || _outputStream == nil) {
+ NSLog(@"MKConnection: Unable to create stream pair.");
+ return;
+ }
+
+ [_inputStream setDelegate:self];
+ [_outputStream setDelegate:self];
+
+ [_inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+ [_outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
+
+ [self _setupSsl];
+
+ [_inputStream open];
+ [_outputStream open];
+}
+
+- (void) closeStreams {
+ NSLog(@"MKConnection: Closing streams.");
+
+ if (_inputStream) {
+ [_inputStream close];
+ [_inputStream release];
+ _inputStream = nil;
+ }
+
+ if (_outputStream) {
+ [_outputStream close];
+ [_outputStream release];
+ _outputStream = nil;
+ }
+
+ [_pingTimer invalidate];
+ _pingTimer = nil;
+}
+
+- (void) reconnect {
+ [self closeStreams];
+
+ NSLog(@"MKConnection: Reconnecting...");
+ [self connectToHost:hostname port:port];
+}
+
+- (BOOL) connected {
+ return _connectionEstablished;
+}
+
+#pragma mark NSStream event handlers
+
+- (void) stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode {
+
+ if (stream == _inputStream) {
+ if (eventCode == NSStreamEventHasBytesAvailable)
+ [self dataReady];
+ return;
+ }
+
+ switch (eventCode) {
+ case NSStreamEventOpenCompleted: {
+ /*
+ * The OpenCompleted is a bad indicator of 'ready to use' for a
+ * TLS socket, since it will fire even before the TLS handshake
+ * has even begun. Instead, we rely on the first CanAcceptBytes
+ * event we receive to determine that a connection was established.
+ *
+ * We only use this event to extract our underlying socket.
+ */
+ CFDataRef nativeHandle = CFWriteStreamCopyProperty((CFWriteStreamRef) _outputStream, kCFStreamPropertySocketNativeHandle);
+ if (nativeHandle) {
+ _socket = *(int *)CFDataGetBytePtr(nativeHandle);
+ CFRelease(nativeHandle);
+ } else {
+ NSLog(@"MKConnection: Unable to get socket file descriptor from stream. Breakage may occur.");
+ }
+
+ if (_socket != -1) {
+ int val = 1;
+ setsockopt(_socket, IPPROTO_TCP, TCP_NODELAY, &val, sizeof(val));
+ NSLog(@"MKConnection: TCP_NODELAY=1");
+ }
+ break;
+ }
+
+ case NSStreamEventHasSpaceAvailable: {
+ if (! _connectionEstablished) {
+ _connectionEstablished = YES;
+
+ /* First, schedule our ping timer. */
+ NSInvocation *timerInvocation = [NSInvocation invocationWithTarget:self selector:@selector(_pingTimerFired)];
+ _pingTimer = [NSTimer timerWithTimeInterval:MKConnectionPingInterval invocation:timerInvocation repeats:YES];
+ [[NSRunLoop currentRunLoop] addTimer:_pingTimer forMode:NSRunLoopCommonModes];
+
+ /* Invoke connectionOpened: on our delegate. */
+ NSInvocation *delegateInvoker = [NSInvocation invocationWithTarget:_delegate selector:@selector(connectionOpened:)];
+ [delegateInvoker setArgument:&self atIndex:2];
+ [delegateInvoker invokeOnMainThread];
+ }
+ break;
+ }
+
+ case NSStreamEventErrorOccurred: {
+ NSLog(@"MKConnection: ErrorOccurred");
+ NSError *err = [_outputStream streamError];
+ [self handleError:err];
+ break;
+ }
+
+ case NSStreamEventEndEncountered:
+ NSLog(@"MKConnection: EndEncountered");
+ break;
+
+ default:
+ NSLog(@"MKConnection: Unknown event (%u)", eventCode);
+ break;
+ }
+}
+
+#pragma mark -
+
+- (void) setDelegate:(id<MKConnectionDelegate>)delegate {
+ _delegate = delegate;
+}
+
+- (id<MKConnectionDelegate>) delegate {
+ return _delegate;
+}
+
+- (void) setMessageHandler:(id<MKMessageHandler>)messageHandler {
+ _msgHandler = messageHandler;
+}
+
+- (id<MKMessageHandler>) messageHandler {
+ return _msgHandler;
+}
+
+#pragma mark -
+
+/*
+ * Setup our CFStreams for SSL.
+ */
+- (void) _setupSsl {
+ CFMutableDictionaryRef sslDictionary = CFDictionaryCreateMutable(kCFAllocatorDefault, 0,
+ &kCFTypeDictionaryKeyCallBacks,
+ &kCFTypeDictionaryValueCallBacks);
+
+ if (sslDictionary) {
+ CFDictionaryAddValue(sslDictionary, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelTLSv1);
+ /*
+ * The CFNetwork headers dictates that using the following properties:
+ *
+ * - kCFStreamSSLAllowsExpiredCertificates
+ * - kCFStreamSSLAllowsExpiredRoots
+ * - kCFSTreamSSLAllowsAnyRoot
+ *
+ * has been deprecated in favor of using kCFStreamSSLValidatesCertificateChain.
+ */
+ CFDictionaryAddValue(sslDictionary, kCFStreamSSLValidatesCertificateChain, _ignoreSSLVerification ? kCFBooleanFalse : kCFBooleanTrue);
+ }
+
+ CFWriteStreamSetProperty((CFWriteStreamRef) _outputStream, kCFStreamPropertySSLSettings, sslDictionary);
+ CFReadStreamSetProperty((CFReadStreamRef) _inputStream, kCFStreamPropertySSLSettings, sslDictionary);
+
+ CFRelease(sslDictionary);
+}
+
+- (void) setIgnoreSSLVerification:(BOOL)flag {
+ _ignoreSSLVerification = flag;
+}
+
+- (NSArray *) certificates {
+ NSArray *certs = (NSArray *) CFWriteStreamCopyProperty((CFWriteStreamRef) _outputStream, kCFStreamPropertySSLPeerCertificates);
+ return [certs autorelease];
+}
+
+- (void) sendMessageWithType:(MKMessageType)messageType buffer:(unsigned char *)buf length:(NSUInteger)len {
+ UInt16 type = CFSwapInt16HostToBig((UInt16)messageType);
+ UInt32 length = CFSwapInt32HostToBig(len);
+
+ [_outputStream write:(unsigned char *)&type maxLength:sizeof(UInt16)];
+ [_outputStream write:(unsigned char *)&length maxLength:sizeof(UInt32)];
+ [_outputStream write:buf maxLength:len];
+}
+
+- (void) sendMessageWithType:(MKMessageType)messageType data:(NSData *)data {
+ [self sendMessageWithType:messageType buffer:(unsigned char *)[data bytes] length:[data length]];
+}
+
+-(void) dataReady {
+ unsigned char buffer[6];
+
+ if (! packetBuffer) {
+ packetBuffer = [[NSMutableData alloc] initWithLength:0];
+ }
+
+ /* We aren't currently retrieveing a packet. */
+ if (packetLength == -1) {
+ NSInteger availableBytes = [_inputStream read:&buffer[0] maxLength:6];
+ if (availableBytes < 6) {
+ return;
+ }
+
+ packetType = (MKMessageType) CFSwapInt16BigToHost(*(UInt16 *)(&buffer[0]));
+ packetLength = (int) CFSwapInt32BigToHost(*(UInt32 *)(&buffer[2]));
+
+ packetBufferOffset = 0;
+ [packetBuffer setLength:packetLength];
+ }
+
+ /* We're recv'ing a packet. */
+ if (packetLength > 0) {
+ UInt8 *packetBytes = [packetBuffer mutableBytes];
+ if (! packetBytes) {
+ NSLog(@"MKConnection: NSMutableData is stubborn.");
+ return;
+ }
+
+ NSInteger availableBytes = [_inputStream read:packetBytes + packetBufferOffset maxLength:packetLength];
+ packetLength -= availableBytes;
+ packetBufferOffset += availableBytes;
+ }
+
+ /* Done! */
+ if (packetLength == 0) {
+ [self messageRecieved:packetBuffer];
+ [packetBuffer setLength:0]; // fixme(mkrautz): Is this one needed?
+ packetLength = -1;
+ }
+}
+
+/*
+ * Ping timer fired.
+ */
+- (void) _pingTimerFired {
+ NSData *data;
+ MPPing_Builder *ping = [MPPing builder];
+
+ [ping setTimestamp:0];
+ [ping setGood:0];
+ [ping setLate:0];
+ [ping setLost:0];
+ [ping setResync:0];
+
+ [ping setUdpPingAvg:0.0f];
+ [ping setUdpPingVar:0.0f];
+ [ping setUdpPackets:0];
+ [ping setTcpPingAvg:0.0f];
+ [ping setTcpPingVar:0.0f];
+ [ping setTcpPackets:0];
+
+ data = [[ping build] data];
+ [self sendMessageWithType:PingMessage data:data];
+
+ NSLog(@"MKConnection: Sent ping message.");
+}
+
+- (void) _pingResponseFromServer:(MPPing *)pingMessage {
+ NSLog(@"MKConnection: pingResponseFromServer");
+}
+
+- (void) handleError:(NSError *)streamError {
+ NSInteger errorCode = [streamError code];
+
+ /* Is the error an SSL-related error? (OSStatus errors are negative, so the
+ * greater than and less than signs are sort-of reversed here. */
+ if (errorCode <= errSSLProtocol && errorCode > errSSLLast) {
+ [self handleSslError:streamError];
+ }
+
+ NSLog(@"MKConnection: Error: %@", streamError);
+}
+
+- (void) handleSslError:(NSError *)streamError {
+
+ if ([streamError code] == errSSLXCertChainInvalid) {
+ SecTrustRef trust = (SecTrustRef) CFWriteStreamCopyProperty((CFWriteStreamRef) _outputStream, kCFStreamPropertySSLPeerTrust);
+ SecTrustResultType trustResult;
+ if (SecTrustEvaluate(trust, &trustResult) != noErr) {
+ /* Unable to evaluate trust. */
+ }
+
+ switch (trustResult) {
+ /* Invalid setting or result. Indicates the SecTrustEvaluate() did not finish completely. */
+ case kSecTrustResultInvalid:
+ /* May be trusted for the purposes designated. ('Always Trust' in Keychain) */
+ case kSecTrustResultProceed:
+ /* User confirmation is required before proceeding. ('Ask Permission' in Keychain) */
+ case kSecTrustResultConfirm:
+ /* This certificate is not trusted. ('Never Trust' in Keychain) */
+ case kSecTrustResultDeny:
+ /* No trust setting specified. ('Use System Policy' in Keychain) */
+ case kSecTrustResultUnspecified:
+ /* Fatal trust failure. Trust cannot be established without replacing the certificate.
+ * This error is thrown when the certificate is corrupt. */
+ case kSecTrustResultFatalTrustFailure:
+ /* A non-trust related error. Possibly internal error in SecTrustEvaluate(). */
+ case kSecTrustResultOtherError:
+ break;
+
+ /* A recoverable trust failure. */
+ case kSecTrustResultRecoverableTrustFailure: {
+ NSArray *certificates = [self certificates];
+ NSInvocation *invocation = [NSInvocation invocationWithTarget:_delegate selector:@selector(connection:trustFailureInCertificateChain:)];
+ [invocation setArgument:&self atIndex:2];
+ [invocation setArgument:&certificates atIndex:3];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ }
+
+ CFRelease(trust);
+ }
+}
+
+- (void) messageRecieved: (NSData *)data {
+ NSInvocation *invocation;
+
+ /* No message handler has been assigned. Don't propagate. */
+ if (! _msgHandler)
+ return;
+
+ switch (packetType) {
+ case VersionMessage: {
+ MPVersion *v = [MPVersion parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleVersionMessage:)];
+ [invocation setArgument:&v atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case AuthenticateMessage: {
+ MPAuthenticate *a = [MPAuthenticate parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleAuthenticateMessage:)];
+ [invocation setArgument:&a atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case RejectMessage: {
+ MPReject *r = [MPReject parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleRejectMessage:)];
+ [invocation setArgument:&r atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case ServerSyncMessage: {
+ MPServerSync *ss = [MPServerSync parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleServerSyncMessage:)];
+ [invocation setArgument:&ss atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case ChannelRemoveMessage: {
+ MPChannelRemove *chrm = [MPChannelRemove parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleChannelRemoveMessage:)];
+ [invocation setArgument:&chrm atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case ChannelStateMessage: {
+ MPChannelState *chs = [MPChannelState parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleChannelStateMessage:)];
+ [invocation setArgument:&chs atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case UserRemoveMessage: {
+ MPUserRemove *urm = [MPUserRemove parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleUserRemoveMessage:)];
+ [invocation setArgument:&urm atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case UserStateMessage: {
+ MPUserState *us = [MPUserState parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleUserStateMessage:)];
+ [invocation setArgument:&us atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case BanListMessage: {
+ MPBanList *bl = [MPBanList parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleBanListMessage:)];
+ [invocation setArgument:&bl atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case TextMessageMessage: {
+ MPTextMessage *tm = [MPTextMessage parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleTextMessageMessage:)];
+ [invocation setArgument:&tm atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case PermissionDeniedMessage: {
+ MPPermissionDenied *pm = [MPPermissionDenied parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handlePermissionDeniedMessage:)];
+ [invocation setArgument:&pm atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case ACLMessage: {
+ MPACL *acl = [MPACL parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleACLMessage:)];
+ [invocation setArgument:&acl atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case QueryUsersMessage: {
+ MPQueryUsers *qu = [MPQueryUsers parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleQueryUsersMessage:)];
+ [invocation setArgument:&qu atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case CryptSetupMessage: {
+ MPCryptSetup *cs = [MPCryptSetup parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleCryptSetupMessage:)];
+ [invocation setArgument:&cs atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case ContextActionAddMessage: {
+ MPContextActionAdd *caa = [MPContextActionAdd parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleContextActionAddMessage:)];
+ [invocation setArgument:&caa atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case ContextActionMessage: {
+ MPContextAction *ca = [MPContextAction parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleContextActionMessage:)];
+ [invocation setArgument:&ca atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case UserListMessage: {
+ MPUserList *ul = [MPUserList parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleUserListMessage:)];
+ [invocation setArgument:&ul atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case VoiceTargetMessage: {
+ MPVoiceTarget *vt = [MPVoiceTarget parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleVoiceTargetMessage:)];
+ [invocation setArgument:&vt atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case PermissionQueryMessage: {
+ MPPermissionQuery *pq = [MPPermissionQuery parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handlePermissionQueryMessage:)];
+ [invocation setArgument:&pq atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case CodecVersionMessage: {
+ MPCodecVersion *cvm = [MPCodecVersion parseFromData:data];
+ invocation = [NSInvocation invocationWithTarget:_msgHandler selector:@selector(handleCodecVersionMessage:)];
+ [invocation setArgument:&cvm atIndex:2];
+ [invocation invokeOnMainThread];
+ break;
+ }
+ case UDPTunnelMessage: {
+ unsigned char *buf = (unsigned char *)[data bytes];
+ MKUDPMessageType messageType = ((buf[0] >> 5) & 0x7);
+ unsigned int messageFlags = buf[0] & 0x1f;
+ MKPacketDataStream *pds = [[MKPacketDataStream alloc] initWithBuffer:buf+1 length:[data length]-1]; // fixme(-1)?
+
+ switch (messageType) {
+ case UDPVoiceCELTAlphaMessage:
+ case UDPVoiceCELTBetaMessage:
+ case UDPVoiceSpeexMessage:
+ [self handleVoicePacketOfType:messageType flags:messageFlags datastream:pds];
+ break;
+ default:
+ NSLog(@"MKConnection: Unknown UDPTunnel packet received. Discarding...");
+ break;
+ }
+
+ [pds release];
+ break;
+ }
+ case PingMessage: {
+ MPPing *p = [MPPing parseFromData:data];
+ [self _pingResponseFromServer:p];
+ break;
+ }
+ default: {
+ NSLog(@"MKConnection: Unknown packet type recieved. Discarding.");
+ break;
+ }
+ }
+}
+
+- (void) handleVoicePacketOfType:(MKUDPMessageType)msgType flags:(NSUInteger)msgflags datastream:(MKPacketDataStream *)pds {
+ MK_UNUSED NSUInteger session = [pds getUnsignedInt];
+ NSUInteger seq = [pds getUnsignedInt];
+
+ NSMutableData *voicePacketData = [[NSMutableData alloc] initWithCapacity:[pds left]+1];
+ [voicePacketData setLength:[pds left]+1];
+
+ unsigned char *bytes = [voicePacketData mutableBytes];
+ bytes[0] = (unsigned char)msgflags;
+ memcpy(bytes+1, [pds dataPtr], [pds left]);
+
+ MKUser *user = nil;//[User lookupBySession:session];
+ MKAudioOutput *ao = [MKAudio audioOutput];
+ [ao addFrameToBufferWithUser:user data:voicePacketData sequence:seq type:msgType];
+
+ [voicePacketData release];
+}
+
+@end
diff --git a/src/MKCryptState.m b/src/MKCryptState.m
new file mode 100644
index 0000000..fabb190
--- /dev/null
+++ b/src/MKCryptState.m
@@ -0,0 +1,87 @@
+/* Copyright (C) 2005-2009, Thorvald Natvig <thorvald@natvig.com>
+ Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ * This code implements OCB-AES128.
+ * In the US, OCB is covered by patents. The inventor has given a license
+ * to all programs distributed under the GPL.
+ * Mumble is BSD (revised) licensed, meaning you can use the code in a
+ * closed-source program. If you do, you'll have to either replace
+ * OCB with something else or get yourself a license.
+ */
+
+#import <MumbleKit/MKCryptState.h>
+
+@implementation MKCryptState
+
+- (id) init {
+ int i;
+
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ for (i = 0; i < 0x100; i++)
+ decryptHistory[i] = 0;
+
+ initialized = NO;
+ numGood = numLost = numResync = 0;
+
+ return self;
+}
+
+- (void) dealloc {
+ [super dealloc];
+ NSLog(@"CryptState: Dealloc.");
+}
+
+- (BOOL) valid {
+ return initialized;
+}
+
+- (void) generateKey {
+}
+
+- (void) setKey:(NSData *)key eiv:(NSData *)enc div:(NSData *)dec {
+}
+
+- (void) setDecryptIV:(NSData *)dec {
+}
+
+- (NSData *) encryptData:(NSData *)data {
+ return nil;
+}
+
+- (NSData *) decryptData:(NSData *)data {
+ return nil;
+}
+
+@end
diff --git a/src/MKPacketDataStream.m b/src/MKPacketDataStream.m
new file mode 100644
index 0000000..ee36faa
--- /dev/null
+++ b/src/MKPacketDataStream.m
@@ -0,0 +1,325 @@
+/* Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+ Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKPacketDataStream.h>
+
+@implementation MKPacketDataStream
+
+- (id) initWithData:(NSData *)ourContainer {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ immutableData = ourContainer;
+ [immutableData retain];
+
+ data = (unsigned char *)[immutableData bytes];
+ offset = 0;
+ overshoot = 0;
+ maxSize = [immutableData length];
+ ok = YES;
+
+ return self;
+}
+
+- (id) initWithMutableData:(NSMutableData *)ourContainer {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ mutableData = ourContainer;
+ [mutableData retain];
+
+ data = [mutableData mutableBytes];
+ offset = 0;
+ overshoot = 0;
+ maxSize = [mutableData capactiy]; // fixme(mkrautz)
+ ok = YES;
+
+ return self;
+}
+
+- (id) initWithBuffer:(unsigned char *)buffer length:(NSUInteger)len {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ mutableData = nil;
+ data = buffer;
+ offset = 0;
+ overshoot = 0;
+ maxSize = len;
+ ok = YES;
+
+ return self;
+}
+
+- (void) dealloc {
+ [super dealloc];
+ [mutableData release];
+ [immutableData release];
+}
+
+- (NSUInteger) size {
+ return offset;
+}
+
+- (NSUInteger) capactiy {
+ return maxSize;
+}
+
+- (NSUInteger) left {
+ return maxSize - offset;
+}
+
+- (BOOL) valid {
+ return ok;
+}
+
+- (void) appendValue:(uint64_t)value {
+ assert(value <= 0xff);
+
+ if (offset < maxSize)
+ data[offset++] = (unsigned char)value;
+ else {
+ ok = NO;
+ overshoot++;
+ }
+}
+
+- (void) appendBytes:(unsigned char *)buffer length:(NSUInteger)len {
+ if ([self left] >= len) {
+ memcpy(&data[offset], buffer, len);
+ offset += len;
+ } else {
+ int l = [self left];
+ memset(&data[offset], 0, l);
+ overshoot += len - l;
+ ok = NO;
+ }
+}
+
+- (void) skip:(NSUInteger)amount {
+ if ([self left] >= amount) {
+ offset += amount;
+ } else
+ ok = NO;
+}
+
+- (uint64_t) next {
+ if (offset < maxSize) {
+ return data[offset++];
+ } else {
+ ok = NO;
+ return 0;
+ }
+}
+
+- (uint8_t) next8 {
+ if (offset < maxSize) {
+ return data[offset++];
+ } else {
+ ok = NO;
+ return 0;
+ }
+}
+
+- (void) rewind {
+ offset = 0;
+}
+
+- (void) truncate {
+ maxSize = offset;
+}
+
+- (unsigned char *) dataPtr {
+ return (unsigned char *)&data[offset];
+}
+
+- (char *) charPtr {
+ return (char *)&data[offset];
+}
+
+- (NSData *) data {
+ return (NSData *)mutableData;
+}
+
+- (NSMutableData *) mutableData {
+ return mutableData;
+}
+
+- (void) addVarint:(uint64_t)value {
+ uint64_t i = value;
+
+ if ((i & 0x8000000000000000LL) && (~i < 0x100000000LL)) {
+ // Signed number.
+ i = ~i;
+ if (i <= 0x3) {
+ // Shortcase for -1 to -4
+ [self appendValue:(0xFC | i)];
+ } else {
+ [self appendValue:(0xF8)];
+ }
+ }
+ if (i < 0x80) {
+ // Need top bit clear
+ [self appendValue:i];
+ } else if (i < 0x4000) {
+ // Need top two bits clear
+ [self appendValue:((i >> 8) | 0x80)];
+ [self appendValue:(i & 0xFF)];
+ } else if (i < 0x200000) {
+ // Need top three bits clear
+ [self appendValue:((i >> 16) | 0xC0)];
+ [self appendValue:((i >> 8) & 0xFF)];
+ [self appendValue:(i & 0xFF)];
+ } else if (i < 0x10000000) {
+ // Need top four bits clear
+ [self appendValue:((i >> 24) | 0xE0)];
+ [self appendValue:((i >> 16) & 0xFF)];
+ [self appendValue:((i >> 8) & 0xFF)];
+ [self appendValue:(i & 0xFF)];
+ } else if (i < 0x100000000LL) {
+ // It's a full 32-bit integer.
+ [self appendValue:(0xF0)];
+ [self appendValue:((i >> 24) & 0xFF)];
+ [self appendValue:((i >> 16) & 0xFF)];
+ [self appendValue:((i >> 8) & 0xFF)];
+ [self appendValue:(i & 0xFF)];
+ } else {
+ // It's a 64-bit value.
+ [self appendValue:(0xF4)];
+ [self appendValue:((i >> 56) & 0xFF)];
+ [self appendValue:((i >> 48) & 0xFF)];
+ [self appendValue:((i >> 40) & 0xFF)];
+ [self appendValue:((i >> 32) & 0xFF)];
+ [self appendValue:((i >> 24) & 0xFF)];
+ [self appendValue:((i >> 16) & 0xFF)];
+ [self appendValue:((i >> 8) & 0xFF)];
+ [self appendValue:(i & 0xFF)];
+ }
+}
+
+- (uint64_t) getVarint {
+ uint64_t i = 0;
+ uint64_t v = [self next];
+
+ if ((v & 0x80) == 0x00) {
+ i = (v & 0x7F);
+ } else if ((v & 0xC0) == 0x80) {
+ i = (v & 0x3F) << 8 | [self next];
+ } else if ((v & 0xF0) == 0xF0) {
+ switch (v & 0xFC) {
+ case 0xF0:
+ i=[self next] << 24 | [self next] << 16 | [self next] << 8 | [self next];
+ break;
+ case 0xF4:
+ i = [self next] << 56 | [self next] << 48 | [self next] << 40 | [self next] << 32 | [self next] << 24 | [self next] << 16 | [self next] << 8 | [self next];
+ break;
+ case 0xF8:
+ i = [self getVarint];
+ i = ~i;
+ break;
+ case 0xFC:
+ i = v & 0x03;
+ i = ~i;
+ break;
+ default:
+ ok = NO;
+ i = 0;
+ break;
+ }
+ } else if ((v & 0xF0) == 0xE0) {
+ i = (v & 0x0F) << 24 | [self next] << 16 | [self next] << 8 | [self next];
+ } else if ((v & 0xE0) == 0xC0) {
+ i = (v & 0x1F) << 16 | [self next] << 8 | [self next];
+ }
+ return i;
+}
+
+- (unsigned int) getUnsignedInt {
+ return (unsigned int) [self getVarint];
+}
+
+- (int) getInt {
+ return (int) [self getVarint];
+}
+
+- (short) getShort {
+ return (short) [self getVarint];
+}
+
+- (unsigned short) getUnsignedShort {
+ return (unsigned short) [self getVarint];
+}
+
+- (char) getChar {
+ return (char) [self getVarint];
+}
+
+- (unsigned char) getUnsignedChar {
+ return (unsigned char) [self getVarint];
+}
+
+- (float) getFloat {
+ float32u u;
+
+ if ([self left] < 4) {
+ ok = NO;
+ return 0.0f;
+ }
+
+ u.b[0] = [self next8];
+ u.b[1] = [self next8];
+ u.b[2] = [self next8];
+ u.b[3] = [self next8];
+
+ return u.f;
+}
+
+- (double) getDouble {
+ NSLog(@"PacketDataStream: getDouble not implemented yet.");
+ return 0.0f;
+}
+
+- (NSData *) copyDataBlock:(NSUInteger)len {
+ if ([self left] >= len) {
+ NSData *db = [[NSData alloc] initWithBytes:[self dataPtr] length:len];
+ offset += len;
+ return db;
+ } else {
+ NSLog(@"PacketDataStream: Unable to copyDataBlock. Requsted=%u, avail=%u", len, [self left]);
+ ok = NO;
+ return nil;
+ }
+}
+
+@end
diff --git a/src/MKReadWriteLock.m b/src/MKReadWriteLock.m
new file mode 100644
index 0000000..38a4044
--- /dev/null
+++ b/src/MKReadWriteLock.m
@@ -0,0 +1,129 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ * MKReadWriteLock - Simple ObjC wrapper around the pthreads read/write lock.
+ */
+
+#import <MumbleKit/MKReadWriteLock.h>
+
+@implementation MKReadWriteLock
+
+- (id) init {
+ int err;
+
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ err = pthread_rwlock_init(&rwlock, NULL);
+ if (err != 0) {
+ NSLog(@"RWLock: Unable to initialize rwlock. Error=%i", err);
+ return nil;
+ }
+
+ return self;
+}
+
+- (void) dealloc {
+ int err;
+
+ [super dealloc];
+
+ err = pthread_rwlock_destroy(&rwlock);
+ if (err != 0) {
+ NSLog(@"RWLock: Unable to destroy rwlock.");
+ }
+}
+
+/*
+ * Try to acquire a write lock. Returns immediately.
+ */
+- (BOOL) tryWriteLock {
+ int err;
+
+ err = pthread_rwlock_trywrlock(&rwlock);
+ if (err != 0) {
+ NSLog(@"RWLock: tryWriteLock failed: %i (%s).", err, strerror(err));
+ return NO;
+ }
+
+ return YES;
+}
+
+/*
+ * Acquire a write lock. Block until we can get it.
+ */
+- (void) writeLock {
+ int err;
+
+ err = pthread_rwlock_wrlock(&rwlock);
+ if (err != 0) {
+ NSLog(@"writeLock failed: %i (%s)", err, strerror(err));
+ }
+
+ assert(err == 0);
+}
+
+/*
+ * Try to acquire a read lock. Returns immediately.
+ */
+- (BOOL) tryReadLock {
+ int err;
+
+ err = pthread_rwlock_tryrdlock(&rwlock);
+ if (err != 0) {
+ return NO;
+ }
+
+ return YES;
+}
+
+/*
+ * Acquire a read lock. Block until it succeeds.
+ */
+- (void) readLock {
+ int err;
+
+ err = pthread_rwlock_rdlock(&rwlock);
+ assert(err == 0);
+}
+
+/*
+ * Unlock.
+ */
+- (void) unlock {
+ int err;
+
+ err = pthread_rwlock_unlock(&rwlock);
+ assert(err == 0);
+}
+
+@end
diff --git a/src/MKServerModel.m b/src/MKServerModel.m
new file mode 100644
index 0000000..7aa3cc2
--- /dev/null
+++ b/src/MKServerModel.m
@@ -0,0 +1,253 @@
+/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKServerModel.h>
+
+#define STUB \
+ NSLog(@"%@: %s", [self class], __FUNCTION__)
+
+static NSInteger stringSort(NSString *str1, NSString *str2, void *reverse) {
+ if (reverse)
+ return [str2 compare:str1];
+ else
+ return [str1 compare:str2];
+}
+
+static NSInteger channelSort(MKChannel *chan1, MKChannel *chan2, void *reverse) {
+ if ([chan1 position] != [chan2 position]) {
+ return reverse ? ([chan1 position] > [chan2 position]) : ([chan2 position] > [chan1 position]);
+ } else {
+ return stringSort([chan1 channelName], [chan2 channelName], reverse);
+ }
+}
+
+@implementation MKServerModel
+
+- (id) init {
+ self = [super init];
+ if (self == nil)
+ return nil;
+
+ userMapLock = [[MKReadWriteLock alloc] init];
+ userMap = [[NSMutableDictionary alloc] init];
+
+ channelMapLock = [[MKReadWriteLock alloc] init];
+ channelMap = [[NSMutableDictionary alloc] init];
+
+ array = [[NSMutableArray alloc] init];
+
+ root = [[MKChannel alloc] init];
+ [root setChannelId:0];
+ [root setChannelName:@"Root"];
+ [channelMap setObject:root forKey:[NSNumber numberWithUnsignedInt:0]];
+
+ return self;
+}
+
+- (void) dealloc {
+ /* dealloc all. */
+ [super dealloc];
+}
+
+- (void) updateModelArray {
+ [array removeAllObjects];
+ [self addChannelTreeToArray:root depth:0];
+}
+
+- (void) addChannelTreeToArray:(MKChannel *)tree depth:(NSUInteger)currentDepth {
+ [array addObject:tree];
+
+ for (MKChannel *c in tree->channelList) {
+ [c setTreeDepth:currentDepth+1];
+ [array addObject:c];
+ [self addChannelTreeToArray:c depth:currentDepth+1];
+ }
+ for (MKUser *u in tree->userList) {
+ [array addObject:u];
+ [u setTreeDepth:currentDepth+1];
+ }
+}
+
+- (NSUInteger) count {
+ return [array count];
+}
+
+- (id) objectAtIndex:(NSUInteger)idx {
+ return [array objectAtIndex:idx];
+}
+
+#pragma mark -
+
+/*
+ * Add a new user.
+ *
+ * @param userSession The session of the new user.
+ * @param userName The username of the new user.
+ *
+ * @return
+ * Returns the allocated User on success. Returns nil on failure. The returned User
+ * is owned by the User module itself, and should not be retained or otherwise fiddled
+ * with.
+ */
+- (MKUser *) addUserWithSession:(NSUInteger)userSession name:(NSString *)userName {
+ MKUser *user = [[MKUser alloc] init];
+ [user setSession:userSession];
+ [user setUserName:userName];
+
+ [userMapLock writeLock];
+ [userMap setObject:user forKey:[NSNumber numberWithUnsignedInt:userSession]];
+ [userMapLock unlock];
+ [root addUser:user];
+
+ [self updateModelArray];
+
+ return user;
+}
+
+- (MKUser *) userWithSession:(NSUInteger)session {
+ [userMapLock readLock];
+ MKUser *u = [userMap objectForKey:[NSNumber numberWithUnsignedInt:session]];
+ [userMapLock unlock];
+ return u;
+}
+
+- (MKUser *) userWithHash:(NSString *)hash {
+ NSLog(@"userWithHash: notimpl.");
+ return nil;
+}
+
+- (void) renameUser:(MKUser *)user to:(NSString *)newName {
+ STUB;
+}
+
+- (void) setIdForUser:(MKUser *)user to:(NSUInteger)newId {
+ STUB;
+}
+
+- (void) setHashForUser:(MKUser *)user to:(NSString *)newHash {
+ STUB;
+}
+
+- (void) setFriendNameForUser:(MKUser *)user to:(NSString *)newFriendName {
+ STUB;
+}
+
+- (void) setCommentForUser:(MKUser *) to:(NSString *)newComment {
+ STUB;
+}
+
+- (void) setSeenCommentForUser:(MKUser *)user {
+ STUB;
+}
+
+/*
+ * Move a user to a channel.
+ *
+ * @param user The user to move.
+ * @param chan The channel to move the user to.
+ */
+- (void) moveUser:(MKUser *)user toChannel:(MKChannel *)chan {
+ STUB;
+}
+
+/*
+ * Remove a user from the model (in case a user leaves).
+ * This cleans up all references of the user in the model.
+ */
+- (void) removeUser:(MKUser *)user {
+ STUB;
+}
+
+#pragma mark -
+
+- (MKChannel *) rootChannel {
+ return root;
+}
+
+/*
+ * Add a channel.
+ */
+- (MKChannel *) addChannelWithId:(NSUInteger)chanId name:(NSString *)chanName parent:(MKChannel *)parent {
+ MKChannel *chan = [[MKChannel alloc] init];
+ [chan setChannelId:chanId];
+ [chan setChannelName:chanName];
+ [chan setParent:parent];
+
+ [channelMapLock writeLock];
+ [channelMap setObject:chan forKey:[NSNumber numberWithUnsignedInt:chanId]];
+ [channelMapLock unlock];
+
+ [parent addChannel:chan];
+
+ [self updateModelArray];
+
+ return chan;
+}
+
+- (MKChannel *) channelWithId:(NSUInteger)chanId {
+ [channelMapLock readLock];
+ MKChannel *c = [channelMap objectForKey:[NSNumber numberWithUnsignedInt:chanId]];
+ [channelMapLock unlock];
+ return c;
+}
+
+- (void) renameChannel:(MKChannel *)chan to:(NSString *)newName {
+ STUB;
+}
+
+- (void) repositionChannel:(MKChannel *)chan to:(NSInteger)pos {
+ STUB;
+}
+
+- (void) setCommentForChannel:(MKChannel *)chan to:(NSString *)newComment {
+ STUB;
+}
+
+- (void) moveChannel:(MKChannel *)chan toChannel:(MKChannel *)newParent {
+ STUB;
+}
+
+- (void) removeChannel:(MKChannel *)chan {
+ STUB;
+}
+
+- (void) linkChannel:(MKChannel *)chan withChannels:(NSArray *)channelLinks {
+ STUB;
+}
+
+- (void) unlinkChannel:(MKChannel *)chan fromChannels:(NSArray *)channelLinks {
+ STUB;
+}
+
+- (void) unlinkAllFromChannel:(MKChannel *)chan {
+ STUB;
+}
+
+@end
diff --git a/src/MKServices.m b/src/MKServices.m
new file mode 100644
index 0000000..bbb35eb
--- /dev/null
+++ b/src/MKServices.m
@@ -0,0 +1,54 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKServices.h>
+
+@implementation MKServices
+
++ (NSString *) regionalServicesHost {
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
+ NSString *locale = [languages objectAtIndex:0];
+ return [NSString stringWithFormat:@"http://%@.mumble.info", locale];
+}
+
+/*
+ * Public server list
+ */
+
++ (NSString *) regionalServerList {
+ return [NSString stringWithFormat:@"%@/list2.cgi", [MKServices regionalServicesHost]];
+}
+
++ (NSURL *) regionalServerListURL {
+ return [NSURL URLWithString:[MKServices regionalServerList]];
+}
+
+@end
diff --git a/src/MKUser.m b/src/MKUser.m
new file mode 100644
index 0000000..4691988
--- /dev/null
+++ b/src/MKUser.m
@@ -0,0 +1,138 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKUser.h>
+#import <MumbleKit/MKReadWriteLock.h>
+#import <MumbleKit/MKChannel.h>
+
+@implementation MKUser
+
+- (void) dealloc {
+ if (userName)
+ [userName release];
+ [super dealloc];
+}
+
+#pragma mark -
+
+- (NSUInteger) treeDepth {
+ return depth;
+}
+
+- (void) setTreeDepth:(NSUInteger)treeDepth {
+ depth = treeDepth;
+}
+
+#pragma mark -
+
+- (void) setSession:(NSUInteger)session {
+ userSession = session;
+}
+
+- (NSUInteger) session {
+ return userSession;
+}
+
+- (void) setUserName:(NSString *)name {
+ if (userName)
+ [userName release];
+ userName = [name copy];
+}
+
+- (NSString *) userName {
+ return userName;
+}
+
+- (void) setTalking:(MKTalkingState)flag {
+ talkState = flag;
+}
+
+- (MKTalkingState) talkingState {
+ return talkState;
+}
+
+- (void) setMute:(BOOL)flag {
+ muteState = flag;
+}
+
+- (BOOL) muted {
+ return muteState;
+}
+
+- (void) setDeaf:(BOOL)flag {
+ deafState = flag;
+}
+
+- (BOOL) deafened {
+ return deafState;
+}
+
+- (void) setSuppress:(BOOL)flag {
+ suppressState = flag;
+}
+
+- (BOOL) suppressed {
+ return suppressState;
+}
+
+- (void) setLocalMute:(BOOL)flag {
+ localMuteState = flag;
+}
+
+- (BOOL) localMuted {
+ return localMuteState;
+}
+
+- (void) setSelfMute:(BOOL)flag {
+ selfMuteState = flag;
+}
+
+- (BOOL) selfMuted {
+ return selfMuteState;
+}
+
+- (void) setSelfDeaf:(BOOL)flag {
+ selfDeafState = flag;
+}
+
+- (BOOL) selfDeafened {
+ return selfDeafState;
+}
+
+- (void) setChannel:(MKChannel *)chan {
+ channel = chan;
+}
+
+- (MKChannel *) channel {
+ return channel;
+}
+
+
+@end
diff --git a/src/MumbleKit.pch b/src/MumbleKit.pch
new file mode 100644
index 0000000..bfb7394
--- /dev/null
+++ b/src/MumbleKit.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
+//
+
+#ifdef __OBJC__
+ #import <Foundation/Foundation.h>
+#endif
diff --git a/src/MumbleKit/MKAudio.h b/src/MumbleKit/MKAudio.h
new file mode 100644
index 0000000..2896621
--- /dev/null
+++ b/src/MumbleKit/MKAudio.h
@@ -0,0 +1,57 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+@class MKAudioInput;
+@class MKAudioOutput;
+
+#define SAMPLE_RATE 48000
+
+typedef enum {
+ Speex,
+ CELT,
+} MKCodecFormat;
+
+@interface MKAudio : NSObject {
+ MKAudioInput *ai;
+ MKAudioOutput *ao;
+}
+
++ (void) initializeAudio;
++ (MKAudioInput *) audioInput;
++ (MKAudioOutput *) audioOutput;
++ (MKAudio *) audio;
+
+/* 'private' methods. */
+- (id) init;
+- (void) dealloc;
+- (MKAudioInput *) audioInput;
+- (MKAudioOutput *) audioOutput;
+
+@end
diff --git a/src/MumbleKit/MKAudioInput.h b/src/MumbleKit/MKAudioInput.h
new file mode 100644
index 0000000..c5465f8
--- /dev/null
+++ b/src/MumbleKit/MKAudioInput.h
@@ -0,0 +1,90 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKAudio.h>
+#import <MumbleKit/MKConnection.h>
+#import <AudioUnit/AudioUnit.h>
+#import <AudioUnit/AUComponent.h>
+#import <AudioToolbox/AudioToolbox.h>
+
+#include <MumbleKit/speex/speex.h>
+#include <MumbleKit/speex/speex_preprocess.h>
+#include <MumbleKit/speex/speex_echo.h>
+#include <MumbleKit/speex/speex_resampler.h>
+#include <MumbleKit/speex/speex_jitter.h>
+#include <MumbleKit/speex/speex_types.h>
+#include <MumbleKit/celt/celt.h>
+
+@interface MKAudioInput : NSObject {
+
+ @public
+ AudioUnit audioUnit;
+ AudioBufferList buflist;
+ int micSampleSize;
+ int numMicChannels;
+
+ @protected
+ int frameSize;
+ int micFrequency;
+ int sampleRate;
+
+ int micFilled;
+ int micLength;
+ BOOL previousVoice;
+ SpeexPreprocessState *preprocessorState;
+ int audioQuality;
+ int numAudioFrames;
+ int bitrate;
+ int frameCounter;
+
+ BOOL doResetPreprocessor;
+
+ short *psMic;
+
+ MKCodecFormat cfType;
+
+ MKUDPMessageType udpMessageType;
+ CELTEncoder *celtEncoder;
+ NSMutableArray *frameList;
+}
+
+- (id) init;
+- (void) dealloc;
+
+- (BOOL) setupDevice;
+- (void) initializeMixer;
+
+- (void) resetPreprocessor;
+- (void) addMicrophoneDataWithBuffer:(short *)input amount:(NSUInteger)nsamp;
+- (void) encodeAudioFrame;
+- (void) flushCheck:(NSData *)outputBuffer terminator:(BOOL)terminator;
+
+
+@end
diff --git a/src/MumbleKit/MKAudioOutput.h b/src/MumbleKit/MKAudioOutput.h
new file mode 100644
index 0000000..7420e8f
--- /dev/null
+++ b/src/MumbleKit/MKAudioOutput.h
@@ -0,0 +1,65 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+ Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKAudio.h>
+#import <MumbleKit/MKAudioOutputUser.h>
+#import <MumbleKit/MKReadWriteLock.h>
+#import <MumbleKit/MKUser.h>
+#import <MumbleKit/MKConnection.h>
+
+#import <AudioUnit/AudioUnit.h>
+#import <AudioUnit/AUComponent.h>
+#import <AudioToolbox/AudioToolbox.h>
+
+@class MKUser;
+
+@interface MKAudioOutput : NSObject {
+ AudioUnit audioUnit;
+ int sampleSize;
+ int frameSize;
+ int mixerFrequency;
+ int numChannels;
+ float *speakerVolume;
+
+ MKReadWriteLock *outputLock;
+ NSMutableDictionary *outputs;
+}
+
+- (id) init;
+- (void) dealloc;
+
+- (BOOL) setupDevice;
+
+- (void) removeBuffer:(MKAudioOutputUser *)u;
+- (BOOL) mixFrames: (void *)frames amount:(unsigned int)nframes;
+- (void) addFrameToBufferWithUser:(MKUser *)user data:(NSData *)data sequence:(NSUInteger)seq type:(MKMessageType)msgType;
+
+@end
diff --git a/src/MumbleKit/MKAudioOutputSpeech.h b/src/MumbleKit/MKAudioOutputSpeech.h
new file mode 100644
index 0000000..e76eac9
--- /dev/null
+++ b/src/MumbleKit/MKAudioOutputSpeech.h
@@ -0,0 +1,83 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+ Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKConnection.h>
+#import <MumbleKit/MKAudio.h>
+#import <MumbleKit/MKUser.h>
+#import <MumbleKit/MKAudioOutputUser.h>
+
+#include <MumbleKit/speex/speex.h>
+#include <MumbleKit/speex/speex_preprocess.h>
+#include <MumbleKit/speex/speex_echo.h>
+#include <MumbleKit/speex/speex_resampler.h>
+#include <MumbleKit/speex/speex_jitter.h>
+#include <MumbleKit/speex/speex_types.h>
+#include <MumbleKit/celt/celt.h>
+
+@interface MKAudioOutputSpeech : MKAudioOutputUser {
+ MKUDPMessageType messageType;
+ NSUInteger bufferOffset;
+ NSUInteger bufferFilled;
+ NSUInteger outputSize;
+ NSUInteger lastConsume;
+ NSUInteger frameSize;
+ BOOL lastAlive;
+ BOOL hasTerminator;
+
+ float *fadeIn;
+ float *fadeOut;
+
+ JitterBuffer *jitter;
+ NSInteger missCount;
+ NSInteger missedFrames;
+
+ NSMutableArray *frames;
+ unsigned char flags;
+
+ MKUser *user;
+ float powerMin, powerMax;
+ float averageAvailable;
+
+ CELTMode *celtMode;
+ CELTDecoder *celtDecoder;
+
+ pthread_mutex_t jitterMutex;
+}
+
+- (id) initWithUser:(MKUser *)user sampleRate:(NSUInteger)freq messageType:(MKMessageType)type;
+- (void) dealloc;
+
+- (MKUser *) user;
+- (MKMessageType) messageType;
+
+- (void) addFrame:(NSData *)data forSequence:(NSUInteger)seq;
+
+@end
diff --git a/src/MumbleKit/MKAudioOutputUser.h b/src/MumbleKit/MKAudioOutputUser.h
new file mode 100644
index 0000000..376a222
--- /dev/null
+++ b/src/MumbleKit/MKAudioOutputUser.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+ Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKUser.h>
+#import <MumbleKit/MKAudioOutputUser.h>
+
+@interface MKAudioOutputUser : NSObject {
+ NSString *name;
+ NSUInteger bufferSize;
+ float *buffer;
+ float *volume;
+ float pos[3];
+}
+
+- (id) init;
+- (void) dealloc;
+
+- (MKUser *) user;
+- (float *) buffer;
+- (NSUInteger) bufferLength;
+
+
+- (BOOL) needSamples:(NSUInteger)nsamples;
+- (void) resizeBuffer:(NSUInteger)newSize;
+
+@end
diff --git a/src/MumbleKit/MKChannel.h b/src/MumbleKit/MKChannel.h
new file mode 100644
index 0000000..0b51f17
--- /dev/null
+++ b/src/MumbleKit/MKChannel.h
@@ -0,0 +1,91 @@
+/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+@class MKUser;
+
+@interface MKChannel : NSObject {
+ MKChannel *channelParent;
+
+ NSUInteger channelId;
+ NSString *channelName;
+ NSInteger position;
+
+ BOOL inheritACL;
+ BOOL temporary;
+
+ @public
+ NSMutableArray *channelList;
+ NSMutableArray *userList;
+ NSMutableArray *ACLList;
+ NSMutableArray *linkedList;
+ NSUInteger depth;
+}
+
+- (id) init;
+- (void) dealloc;
+
+#pragma mark -
+
+- (void) addChannel:(MKChannel *)chan;
+- (void) removeChannel:(MKChannel *)chan;
+- (void) addUser:(MKUser *)user;
+- (void) removeUser:(MKUser *)user;
+- (NSUInteger) numChildren;
+
+#pragma mark -
+
+- (NSUInteger) treeDepth;
+- (void) setTreeDepth:(NSUInteger)depth;
+
+#pragma mark -
+
+- (BOOL) linkedToChannel:(MKChannel *)chan;
+- (void) linkToChannel:(MKChannel *)chan;
+- (void) unlinkFromChannel:(MKChannel *)chan;
+- (void) unlinkAll;
+
+#pragma mark -
+
+- (NSString *) channelName;
+- (void) setChannelName:(NSString *)name;
+
+- (void) setParent:(MKChannel *)chan;
+- (MKChannel *) parent;
+
+- (void) setChannelId:(NSUInteger)chanId;
+- (NSUInteger) channelId;
+
+- (void) setTemporary:(BOOL)flag;
+- (BOOL) temporary;
+
+- (NSInteger) position;
+- (void) setPosition:(NSInteger)pos;
+
+@end
diff --git a/src/MumbleKit/MKConnection.h b/src/MumbleKit/MKConnection.h
new file mode 100644
index 0000000..0816430
--- /dev/null
+++ b/src/MumbleKit/MKConnection.h
@@ -0,0 +1,156 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import "Mumble.pb.h"
+
+#define MKConnectionPingInterval 5.0f
+
+@class MKConnection;
+@class MKPacketDataStream;
+
+typedef enum {
+ UDPVoiceCELTAlphaMessage = 0,
+ UDPPingMessage,
+ UDPVoiceSpeexMessage,
+ UDPVoiceCELTBetaMessage
+} MKUDPMessageType;
+
+typedef enum {
+ VersionMessage = 0,
+ UDPTunnelMessage,
+ AuthenticateMessage,
+ PingMessage,
+ RejectMessage,
+ ServerSyncMessage,
+ ChannelRemoveMessage,
+ ChannelStateMessage,
+ UserRemoveMessage,
+ UserStateMessage,
+ BanListMessage,
+ TextMessageMessage,
+ PermissionDeniedMessage,
+ ACLMessage,
+ QueryUsersMessage,
+ CryptSetupMessage,
+ ContextActionAddMessage,
+ ContextActionMessage,
+ UserListMessage,
+ VoiceTargetMessage,
+ PermissionQueryMessage,
+ CodecVersionMessage
+} MKMessageType;
+
+/*
+ * MKConnectionDelegate
+ */
+@protocol MKConnectionDelegate
+- (void) connectionOpened:(MKConnection *)conn;
+- (void) connectionClosed:(MKConnection *)conn;
+- (void) connection:(MKConnection *)conn trustFailureInCertificateChain:(NSArray *)chain;
+@end
+
+/*
+ * MKMessageHandler
+ */
+@protocol MKMessageHandler
+- (void) handleAuthenticateMessage: (MPAuthenticate *)msg;
+- (void) handleBanListMessage: (MPBanList *)msg;
+- (void) handleRejectMessage: (MPReject *)msg;
+- (void) handleServerSyncMessage: (MPServerSync *)msg;
+- (void) handlePermissionDeniedMessage: (MPPermissionDenied *)msg;
+- (void) handleUserStateMessage: (MPUserState *)msg;
+- (void) handleUserRemoveMessage: (MPUserRemove *)msg;
+- (void) handleChannelStateMessage: (MPChannelState *)msg;
+- (void) handleChannelRemoveMessage: (MPChannelRemove *)msg;
+- (void) handleTextMessageMessage: (MPTextMessage *)msg;
+- (void) handleACLMessage: (MPACL *)msg;
+- (void) handleQueryUsersMessage: (MPQueryUsers *)msg;
+- (void) handleCryptSetupMessage: (MPCryptSetup *)msg;
+- (void) handleContextActionMessage: (MPContextAction *)msg;
+- (void) handleContextActionAddMessage: (MPContextActionAdd *)add;
+- (void) handleVersionMessage: (MPVersion *)msg;
+- (void) handleUserListMessage: (MPUserList *)msg;
+- (void) handleVoiceTargetMessage: (MPVoiceTarget *)msg;
+- (void) handlePermissionQueryMessage: (MPPermissionQuery *)msg;
+- (void) handleCodecVersionMessage: (MPCodecVersion *)msg;
+@end
+
+@interface MKConnection : NSObject {
+ MKMessageType packetType;
+ int packetLength;
+ int packetBufferOffset;
+ NSMutableData *packetBuffer;
+ NSString *hostname;
+ NSUInteger port;
+
+ NSTimer *_pingTimer;
+ NSOutputStream *_outputStream;
+ NSInputStream *_inputStream;
+ BOOL _connectionEstablished;
+ BOOL _ignoreSSLVerification;
+ id _msgHandler;
+ id _delegate;
+ int _socket;
+}
+
+- (id) init;
+- (void) dealloc;
+
+- (void) connectToHost:(NSString *)hostName port:(NSUInteger)port;
+- (void) reconnect;
+- (void) closeStreams;
+- (BOOL) connected;
+
+- (void) setMessageHandler: (id<MKMessageHandler>)messageHandler;
+- (id) messageHandler;
+- (void) setDelegate: (id<MKConnectionDelegate>)delegate;
+- (id) delegate;
+
+- (void) setIgnoreSSLVerification:(BOOL)flag;
+- (NSArray *) certificates;
+
+- (void) sendMessageWithType:(MKMessageType)messageType buffer:(unsigned char *)buf length:(NSUInteger)len;
+- (void) sendMessageWithType:(MKMessageType)messageType data:(NSData *)data;
+
+- (void) dataReady;
+- (void) messageRecieved: (NSData *)data;
+
+- (void) _setupSsl;
+
+- (void) _pingTimerFired;
+- (void) _pingResponseFromServer:(MPPing *)pingMessage;
+
+
+- (void) handleError: (NSError *)streamError;
+- (void) handleSslError: (NSError *)streamError;
+
+- (void) handleVoicePacketOfType:(MKUDPMessageType)messageType flags:(NSUInteger)messageFlags datastream:(MKPacketDataStream *)pds;
+
+@end
diff --git a/src/MumbleKit/MKCryptState.h b/src/MumbleKit/MKCryptState.h
new file mode 100644
index 0000000..03ece4e
--- /dev/null
+++ b/src/MumbleKit/MKCryptState.h
@@ -0,0 +1,55 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+@interface MKCryptState : NSObject {
+ NSUInteger numGood;
+ NSUInteger numLate;
+ NSUInteger numLost;
+ NSUInteger numResync;
+ NSUInteger numRemoteGood;
+ NSUInteger numRemoteLate;
+ NSUInteger numRemoteLost;
+ NSUInteger numRemoteResync;
+ unsigned char decryptHistory[0x100];
+
+ BOOL initialized;
+}
+
+- (id) init;
+- (void) dealloc;
+
+- (BOOL) valid;
+- (void) generateKey;
+- (void) setKey:(NSData *)key eiv:(NSData *)enc div:(NSData *)dec;
+- (void) setDecryptIV:(NSData *)dec;
+- (NSData *) encryptData:(NSData *)data;
+- (NSData *) decryptData:(NSData *)data;
+
+@end
diff --git a/src/MumbleKit/MKPacketDataStream.h b/src/MumbleKit/MKPacketDataStream.h
new file mode 100644
index 0000000..aad085e
--- /dev/null
+++ b/src/MumbleKit/MKPacketDataStream.h
@@ -0,0 +1,88 @@
+/* Copyright (C) 2005-2010 Thorvald Natvig <thorvald@natvig.com>
+ Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+typedef union _float32u {
+ uint8_t b[4];
+ float f;
+} float32u;
+
+@interface MKPacketDataStream : NSObject {
+ NSMutableData *mutableData;
+ NSData *immutableData;
+ unsigned char *data;
+ NSUInteger maxSize;
+ NSUInteger offset;
+ NSUInteger overshoot;
+ BOOL ok;
+}
+
+- (id) initWithData:(NSData *)data;
+- (id) initWithMutableData:(NSMutableData *)data;
+- (id) initWithBuffer:(unsigned char *)buffer length:(NSUInteger)len;
+- (void) dealloc;
+
+- (NSUInteger) size;
+- (NSUInteger) capactiy;
+- (NSUInteger) left;
+- (BOOL) valid;
+
+- (void) rewind;
+- (void) truncate;
+
+- (unsigned char *) dataPtr;
+- (char *) charPtr;
+- (NSData *) data;
+- (NSMutableData *) mutableData;
+
+- (void) appendValue:(uint64_t)value;
+- (void) appendBytes:(unsigned char *)buffer length:(NSUInteger)len;
+
+- (void) skip:(NSUInteger)amount;
+- (uint64_t) next;
+- (uint8_t) next8;
+
+/* Adders. */
+- (void) addVarint:(uint64_t)value;
+
+/* Getters. */
+- (uint64_t) getVarint;
+- (int) getInt;
+- (unsigned int) getUnsignedInt;
+- (short) getShort;
+- (unsigned short) getUnsignedShort;
+- (char) getChar;
+- (unsigned char) getUnsignedChar;
+- (float) getFloat;
+- (double) getDouble;
+
+- (NSData *) copyDataBlock:(NSUInteger)len;
+
+@end
diff --git a/src/MumbleKit/MKReadWriteLock.h b/src/MumbleKit/MKReadWriteLock.h
new file mode 100644
index 0000000..d316d65
--- /dev/null
+++ b/src/MumbleKit/MKReadWriteLock.h
@@ -0,0 +1,48 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <pthread.h>
+
+@interface MKReadWriteLock : NSObject {
+ pthread_rwlock_t rwlock;
+}
+
+- (id) init;
+- (void) dealloc;
+
+- (BOOL) tryWriteLock;
+- (void) writeLock;
+
+- (BOOL) tryReadLock;
+- (void) readLock;
+
+- (void) unlock;
+
+@end
diff --git a/src/MumbleKit/MKServerModel.h b/src/MumbleKit/MKServerModel.h
new file mode 100644
index 0000000..7ac58ee
--- /dev/null
+++ b/src/MumbleKit/MKServerModel.h
@@ -0,0 +1,83 @@
+/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <MumbleKit/MKUser.h>
+#import <MumbleKit/MKChannel.h>
+#import <MumbleKit/MKReadWriteLock.h>
+
+@interface MKServerModel : NSObject {
+ MKChannel *root;
+ NSMutableArray *array;
+
+ MKReadWriteLock *userMapLock;
+ NSMutableDictionary *userMap;
+
+ MKReadWriteLock *channelMapLock;
+ NSMutableDictionary *channelMap;
+}
+
+- (id) init;
+- (void) dealloc;
+
+- (void) updateModelArray;
+- (void) addChannelTreeToArray:(MKChannel *)tree depth:(NSUInteger)currentDepth;
+
+- (NSUInteger) count;
+- (id) objectAtIndex:(NSUInteger)idx;
+
+#pragma mark -
+
+- (MKUser *) addUserWithSession:(NSUInteger)userSession name:(NSString *)userName;
+- (MKUser *) userWithSession:(NSUInteger)session;
+- (MKUser *) userWithHash:(NSString *)hash;
+- (void) renameUser:(MKUser *)user to:(NSString *)newName;
+- (void) setIdForUser:(MKUser *)user to:(NSUInteger)newId;
+- (void) setHashForUser:(MKUser *)user to:(NSString *)newHash;
+- (void) setFriendNameForUser:(MKUser *)user to:(NSString *)newFriendName;
+- (void) setCommentForUser:(MKUser *) to:(NSString *)newComment;
+- (void) setSeenCommentForUser:(MKUser *)user;
+- (void) moveUser:(MKUser *)user toChannel:(MKChannel *)chan;
+- (void) removeUser:(MKUser *)user;
+
+#pragma mark -
+
+- (MKChannel *) rootChannel;
+- (MKChannel *) addChannelWithId:(NSUInteger)chanId name:(NSString *)chanName parent:(MKChannel *)p;
+- (MKChannel *) channelWithId:(NSUInteger)chanId;
+- (void) renameChannel:(MKChannel *)chan to:(NSString *)newName;
+- (void) repositionChannel:(MKChannel *)chan to:(NSInteger)pos;
+- (void) setCommentForChannel:(MKChannel *)chan to:(NSString *)newComment;
+- (void) moveChannel:(MKChannel *)chan toChannel:(MKChannel *)newParent;
+- (void) removeChannel:(MKChannel *)chan;
+- (void) linkChannel:(MKChannel *)chan withChannels:(NSArray *)channelLinks;
+- (void) unlinkChannel:(MKChannel *)chan fromChannels:(NSArray *)channelLinks;
+- (void) unlinkAllFromChannel:(MKChannel *)chan;
+
+@end
diff --git a/src/MumbleKit/MKServices.h b/src/MumbleKit/MKServices.h
new file mode 100644
index 0000000..765c748
--- /dev/null
+++ b/src/MumbleKit/MKServices.h
@@ -0,0 +1,35 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+@interface MKServices : NSObject
++ (NSString *) regionalServicesHost;
++ (NSString *) regionalServerList;
++ (NSURL *) regionalServerListURL;
+@end
diff --git a/src/MumbleKit/MKUser.h b/src/MumbleKit/MKUser.h
new file mode 100644
index 0000000..81666d5
--- /dev/null
+++ b/src/MumbleKit/MKUser.h
@@ -0,0 +1,98 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+@class MKChannel;
+
+typedef enum _TalkingState {
+ TalkingStateOff = 0,
+ TalkingStateTalking,
+ TalkingStateWhisperChannel,
+ TalkingStateWhisperTalk,
+} MKTalkingState;
+
+@interface MKUser : NSObject {
+ @protected
+ BOOL muteState;
+ BOOL deafState;
+ BOOL suppressState;
+ BOOL localMuteState;
+ BOOL selfMuteState;
+ BOOL selfDeafState;
+ MKTalkingState talkState;
+ NSUInteger userSession;
+ NSString *userName;
+ NSUInteger depth;
+ MKChannel *channel;
+
+ @public
+ int sequence;
+ int frames;
+}
+
+- (void) dealloc;
+
+#pragma mark -
+
+- (NSUInteger) treeDepth;
+- (void) setTreeDepth:(NSUInteger)depth;
+
+#pragma mark -
+
+- (void) setSession:(NSUInteger)session;
+- (NSUInteger) session;
+
+- (void) setUserName:(NSString *)name;
+- (NSString *) userName;
+
+- (void) setTalking:(MKTalkingState)flag;
+- (MKTalkingState) talkingState;
+
+- (void) setMute:(BOOL)flag;
+- (BOOL) muted;
+
+- (void) setDeaf:(BOOL)flag;
+- (BOOL) deafened;
+
+- (void) setSuppress:(BOOL)flag;
+- (BOOL) suppressed;
+
+- (void) setLocalMute:(BOOL)flag;
+- (BOOL) localMuted;
+
+- (void) setSelfMute:(BOOL)flag;
+- (BOOL) selfMuted;
+
+- (void) setSelfDeaf:(BOOL)flag;
+- (BOOL) selfDeafened;
+
+- (void) setChannel:(MKChannel *)chan;
+- (MKChannel *) channel;
+
+@end
diff --git a/src/MumbleKit/MKUtils.h b/src/MumbleKit/MKUtils.h
new file mode 100644
index 0000000..da18465
--- /dev/null
+++ b/src/MumbleKit/MKUtils.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#define MK_UNUSED __attribute__((unused))
diff --git a/src/NSInvocation(MumbleKitAdditions).h b/src/NSInvocation(MumbleKitAdditions).h
new file mode 100644
index 0000000..286a58f
--- /dev/null
+++ b/src/NSInvocation(MumbleKitAdditions).h
@@ -0,0 +1,37 @@
+/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import <Foundation/Foundation.h>
+
+@interface NSInvocation (MumbleKitAdditions)
++ (NSInvocation *) invocationWithTarget:(id)target selector:(SEL)selector;
++ (void **) nilPointerLocation;
+- (void) invokeOnMainThread;
+@end \ No newline at end of file
diff --git a/src/NSInvocation(MumbleKitAdditions).m b/src/NSInvocation(MumbleKitAdditions).m
new file mode 100644
index 0000000..19b5142
--- /dev/null
+++ b/src/NSInvocation(MumbleKitAdditions).m
@@ -0,0 +1,61 @@
+/* Copyright (C) 2010 Mikkel Krautz <mikkel@krautz.dk>
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Neither the name of the Mumble Developers nor the names of its
+ contributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#import "NSInvocation(MumbleKitAdditions).h"
+
+@implementation NSInvocation (MumbleKitAdditions)
+
+static void *_nilPointerLocation = nil;
+
++ (NSInvocation *) invocationWithTarget:(id)target selector:(SEL)selector {
+ NSInvocation *invocation = nil;
+
+ if ([target respondsToSelector:selector]) {
+ NSMethodSignature *ms = [target methodSignatureForSelector:selector];
+ invocation = [NSInvocation invocationWithMethodSignature:ms];
+ [invocation setTarget:target];
+ [invocation setSelector:selector];
+ } else {
+ NSLog(@"NSInvocation(MumbleKitAdditions): Target %@ (%p) does not respond to selector %@. Returning nil.",
+ NSStringFromClass(target), target, NSStringFromSelector(selector));
+ }
+
+ return invocation;
+}
+
++ (void **) nilPointerLocation {
+ return &_nilPointerLocation;
+}
+
+- (void) invokeOnMainThread {
+ [self performSelectorOnMainThread:@selector(invoke) withObject:nil waitUntilDone:NO];
+}
+
+@end